Adding measurement error covariances over time? #64
-
|
Hi, First of all, big thanks for the developer of the ctsem package and the excellent accompanying tutorials, published recently. They’ve made it possible for more basic guys like me to start learning and working with continuous-time models—really impressive and much appreciated! I’m genuinely fascinated by this "world," even if I’m naturally struggling a lot and feel really humble in the face of the complexities that come with understanding dynamic systems... Lately, I’ve been working on estimating a basic bivariate ctsem model with cross-effects, auto-effects, intercepts, diffusion variances and covariances, and T0 values. For each latent variable, I have three or four indicators in the measurement model. Attached you can find the equations for the model. My question concerns the possibility of specifying associations between indicator-level measurement errors across time (e.g., indicator 1 T-->indicator 1 TΔ). For example, in longitudinal CFA, it’s common practice to allow the measurement errors of the same indicator to correlate over time (this seems theoretically a plausible assumption in many cases). I’m wondering whether there’s a way to implement something similar in ctsem. My intuition (and some supporting data patterns) is that if there are substantial correlations in item-level measurement error over time—which seems like a reasonable assumption in my case based on conducted longitudinal CFAs—but these are not modeled, particularly the auto-effects of the latent variables might be inflated, thus, biasing the estimates of whole Drift matrix. I came across Oud, Voelkle, and Driver (2018), where you mention that this kind of modeling might be possible using the MANIFESTTRAIT option ctsemOMX, but I’m struggling to figure out how to implement it in newer version. So, is there a specific way to specify only the over-time correlations in measurement error, without introducing other cross-variable trait structures? Thanks again for your work on this fantastic tool! Best regards, |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 7 replies
-
|
Hi Jaako, thanks for the nice words, they are always welcome -- and feeling humble is a really good start when it comes to making sense of dynamic systems in psychology, I think! the original ctsem (now packaged as ctsemOMX) included specific matrices to manage individual differences in the latent intercept (cint) and manifest intercept (manifestmeans). Modern ctsem allows individual differences in every parameter, and the old formulation stopped making sense, so those two specific matrices (TRAITVAR and MANIFESTTRAITVAR) were dropped in favour of the current more general setup. By default, ctsem now freely estimates the variance / correlations of individual differences in T0MEANS, CINT, and MANIFESTMEANS, whenever the parameters are estimated. You can see this in your model.pdf, you have individual differences in the latent t0 and latent intercept, and because the MANIFESTMEANS are fixed to zero, no other differences. This brings us to the first important point -- generally it's a very strong assumption to assume that the intercepts of all your measures for a single factor will be the same, in typical factor analysis these would be freely estimated. Because you are also estimating the latent intercept freely, you can't currently estimate all of them freely -- one would need to be restricted, generally to zero, and the others estimated. However, based on your (very reasonable) worries about measurement errors correlating over time, a better approach might be to fix the cint to zero (the default), and estimate all the manifestmeans (the default). This will essentially estimate the stable component of each of your measurements (and the correlation to other measurements stable factors), and ensure the remaining part of the data is fluctuating around zero (i.e., you don't need a latent intercept). This approach assumes an autocorrelation of 1 across measurement occasions -- more sophisticated approaches where you model each measurement as a separate process and estimate the autocorrelation, as well as the link to a higher level factor process, are possible, but probably beyond what you need at this point. Good luck :) |
Beta Was this translation helpful? Give feedback.
-
|
Oh, I just noticed -- do you really want to assume GAD6/7 has the same factor loading as GAD3/4? If not, you need to give them a different label! |
Beta Was this translation helpful? Give feedback.
-
|
I have seen many many wild looking models by now, I take little for granted ;) Definitely thinking of a summer school like setup here in Zurich or surrounds at some point, but for now I'm contributing to this offering (edit: which I find out is already overbooked unfortunately): Maybe next time around it can make me rich haha. |
Beta Was this translation helpful? Give feedback.
Hi Jaako, thanks for the nice words, they are always welcome -- and feeling humble is a really good start when it comes to making sense of dynamic systems in psychology, I think!
the original ctsem (now packaged as ctsemOMX) included specific matrices to manage individual differences in the latent intercept (cint) and manifest intercept (manifestmeans). Modern ctsem allows individual differences in every parameter, and the old formulation stopped making sense, so those two specific matrices (TRAITVAR and MANIFESTTRAITVAR) were dropped in favour of the current more general setup.
By default, ctsem now freely estimates the variance / correlations of individual differences in T0MEANS, CINT, …