Skip to content

Smoothness, or lack thereof, in MRP estimates over time

Matthew Loop writes:

I’m taking my first crack at MRP. We are estimating the probability of an event over 30 years, adjusting for sampling stratum using a multilevel model with varying intercepts for stratum.

When we fit the model, the marginal predicted probability vs. year is a smooth function, since the mean of the varying intercepts is 0. So far so good.

However, when we get the condition predictions in order to do post-stratification, the poststratified predicted probability vs. year is a “jagged” function. The math of this makes sense, as the mean of the random effects is now no longer 0, given you do a weighted average.

My questions are:

1. Is there a way to force the function to be smooth, like in the usual multilevel model with no poststratification?

2. If the answer to #1 is “no”, then how do we interpret the predicted probabilities? It seems like they no longer have the simple interpretation of marginal probabilities.

My reply: First, let me just say that you have an excellent name for someone who wants to use iterative algorithms!

More seriously, I don’t think you should expect smoothness from your inferences, unless smoothness is specified in the data. If you have a multilevel time series model with an intercept that varies by year, then you can get big year-to-year jumps, unless you control these with a spline or random walk or autoregression or some other smoothness-inducing prior distribution.

Your other question involves smooth parameter estimates that become jumpy when piped through the poststratification step—but you’ll only see that happening if the N’s are jumpy over time. If the N_j’s are smooth over time and the thetas_j are smooth over time, then sum_j(N_j*theta_j) / sum_j(N_j) will be smooth too.


  1. Z says:

    Let’s say you expect smoothness over time in your post-stratified estimates and the Ns are jumpy (e.g. different sampling schemes targeting the same population at different times, and you don’t expect that population to change quickly). Is there a way to enforce this through your model specification?

Leave a Reply to Andrew