How do I constrain the error structure of a latent growth model to account for autocorrelation?

Specifically, I am interested in fitting an AR(1) (i.e., first-order autoregressive) error structure, which assumes residual covariance between time 1 and time 2 is greater than that between time 1 and time 3, which is greater than that between time 1 and time 4... and so on.

The following describes a latent growth model with 4 measurement periods and random effects for both the intercept and slope. Here the residual covariances are freely estimated. Is it possible to constrain these in lavaan, similar to how (in)equality constraints can be specified for paths?


model <- '
i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4

# variance and covariance
i ~~ i
s ~~ s
i ~~ s

# correlated residuals
t1 ~~ t2
t1 ~~ t3
t1 ~~ t4
t2 ~~ t3
t2 ~~ t4
t3 ~~ t4

I realize that autoregressive models are easier to manage with linear mixed-effects (e.g., lme4), but the project calls for structural equation modeling.


3 Answers 3


Technically, a growth model already accounts for residual auto correlation by modeling random slopes and random intercepts in time. It is not a defacto approach to additionally include covariance structures which incorporate time aspects, and (unsolicited advice) I suspect doing so would incorporate bias. When you fit a latent growth model, though, you should still endeavor to inspect possible residual auto-correlation. If you find further autocorrelation, then the latent growth model is improperly specified.


I think what you are looking for is an autoregressive latent trait model. These are latent growth models with additional autoregression parameters (such as you would see in a time series model or a cross-lagged model).

They were introduced in a paper and a book by Curran and Bollen: http://curran.web.unc.edu/files/2015/03/BollenCurran2004.pdf is the paper. You need to lose the first measurement from the latent growth model, so you probably need at least 4 time points to start with (meaning your latent growth model has three points, and is limited to linear).


Building on @AdamO's response. It is generally not necessary or advisable to include autocorrelation structures in latent growth models in SEM. For future reference though, there are ways to impose a variety of constraints on model parameters using lavaan - see this link.

That being said, you can inspect your model to see if the data even warrant the imposition of such a restrictive error covariance structure in your growth model (one option is to examine modification indices using the modificationIndices()function).

There may be times when inclusion of some residual autocorrelation is theoretically defensible in growth models (e.g., you collect teacher reports on children's behaviors across multiple years and want to correlate the error terms within each school year). However, there also may exist other techniques that better address these sorts of data structures (i.e., multilevel growth models with various layers of nesting).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.