You are here

LGCM with Measurement Models and Latent Factor Predictor

5 posts / 0 new
Last post
MaximilianStefan's picture
Joined: 12/04/2018 - 20:46
LGCM with Measurement Models and Latent Factor Predictor
AttachmentSize
Binary Data OpenMx Forum.R4.58 KB
Plain text icon Output.txt3.72 KB
Image icon graph.png187.91 KB

Hi,

I am currently trying to fit the following model model: (picture, code and outcome attached)

I have data for 5 waves (2012-2016) on 4 observed Variables (-> x1_12, x2_12, ..., x4_16) that form a latent factor (= 5 CFAs for 5 years). (latent factor Naming: f12, f13, ..., f16)
The observed Variables have a range from 1-3, so I treated them as ordinal Variables.
I would like to fit a LGCM to those Factors.

I also have another factor (fy) measured by 3 indicators (y1, y2, y3), this factor should predict intercept and slope of the LGCM.
Those Indicators have a range from 1-5, so I treated them also as ordinal Variables.

The model does converge (with good fit, RMSEA = 0.03), however, the estimated slope variance is negative. Can someone tell me where I misspecified my model?

I fixed all unique factor variances to 1 and their covariance to 0. Would it be better to just fix those of the first measurement occasion? Should I allow any covariances?

Also, should I fix the intercept-slope covariance to 0? I have no specific theory about it.

Thanks in advance,

Maximilian

AdminRobK's picture
Offline
Joined: 01/24/2014 - 12:15
some thoughts
Can someone tell me where I misspecified my model?

I don't see anything obviously amiss in your script. Did the identification check pass?

The model does converge (with good fit, RMSEA = 0.03), however, the estimated slope variance is negative.

Would you say it's clearly negative, or merely within sampling error of zero? Note that a negative variance component is not necessarily "wrong", but it does often signal that the fitted model can be improved upon.

I fixed all unique factor variances to 1 and their covariance to 0. Would it be better to just fix those of the first measurement occasion? Should I allow any covariances?

You're doing a latent-growth curve model in which the manifest variables are ordinal. You might have better luck identifying the model with a different set of identifying constraints. That is, instead of fixing the "intercept of the intercept" (i.e., the one-headed slope from "one" to i) to zero and fixing the unique or "residual" variances to 1, fix the first two thresholds of each manifest variable to 0 and 1. Doing that will allow the mean and variance of the continua underlying the ordinal manifests to change with time.

Are, say, x12_1 and x13_1 the same variable measured at two different timepoints? If so, I suppose there could be covariance between their unique factors, and with the unique factors of x14_1, and so on.

Also, should I fix the intercept-slope covariance to 0? I have no specific theory about it.

That doesn't seem wise. But, that covariance isn't very interpretable, since it will depend on where the loadings onto the latent slope are centered. Speaking of which--I typically recommend centering those loadings so that they are orthogonal to the loadings onto the latent intercept, in order to ease convergence. In your case, that would make them c(-2, -1, 0, 1, 2), but you don't report any difficulty with convergence. Still, I guess it's possible, though quite unlikely, that OpenMx has silently failed to converge.

MaximilianStefan's picture
Joined: 12/04/2018 - 20:46
Tanks for your fast reply!!

Tanks for your fast reply!!

Did the identification check pass?
-> Yes!

Would you say it's clearly negative, or merely within sampling error of zero?
-> The Variance is -0.04 with an error of 0.004, so it is clearly negative...

You might have better luck identifying the model with a different set of identifying constraints.
-> I tried to follow your approach and freed observed Variances, and the intercept of the intercept, and fixed the Tresholds in 2012, but left the other Tresholds free to estimate. But I am not quite shure if I specified everything correctly... Identification Check passes, but I get "non-zero status code 5. The Hessian at the solution does not appear to be convex." I attached the modified Version of the script, it would be very helpful if you could tell me if I understood your proposed idea wrong.

Are, say, x12_1 and x13_1 the same variable measured at two different timepoints? If so, I suppose there could be covariance between their unique factors, and with the unique factors of x14_1, and so on.
-> Yes, they are! I saw that it is usual to allow those covariances when testing for measurement invariance. I thought, since I try to model the growth process with the slope factor, allowing covariance over time would be a misspecification.

Note that a negative variance component is not necessarily "wrong", but it does often signal that the fitted model can be improved upon.
-> Hm, but I guess the results from this model are not interpretable? Do you have any further suggestions how I could improve my model?
I tried to model an additional quadratic Growth factor, which only leads to two negative Variance estimates...
Then I fixed the first loading of the slope factor to 0, second to 1, and left the others free to estimate, which gives me loading 3 = 8.8, loading 4 = 4.5, loading 5 = 3.8. The slope Variance is still 0, but -0.008 with a standart error of 0.006, so not significantly different from 0... Since this is the most unrestricted model I can fit, should I conclude that there are no individual differences in growth? Following this, I also fitted a model with only an intercept (no slope!), it achieves an RMSEA of 0.034 (vs 0.033 before)...

Again, thanks in advance fot your time!

Maximilian

File attachments: 
MaximilianStefan's picture
Joined: 12/04/2018 - 20:46
Quick correction

Quick correction

To avoid confusion:
"The slope Variance is still 0, but -0.008 with a standart error of 0.006, so not significantly different from 0..."

Should be "The slope Variance i still negative, but ... not significantly different from 0..."

AdminRobK's picture
Offline
Joined: 01/24/2014 - 12:15
new script
I tried to follow your approach and freed observed Variances, and the intercept of the intercept, and fixed the Tresholds in 2012, but left the other Tresholds free to estimate. But I am not quite shure if I specified everything correctly... Identification Check passes, but I get "non-zero status code 5. The Hessian at the solution does not appear to be convex." I attached the modified Version of the script, it would be very helpful if you could tell me if I understood your proposed idea wrong.

The model in your new script is unidentified, and the indefinite Hessian at the solution is likely symptomatic of the unidentification. To remedy the unidentification in your new script, fix each manifest 'x' variable's thresholds to 0 and 1 at timepoints 13, 14, 15, and 16, in the same manner as you did for timepoint 12. For the sake of consistency, you might as well fix the lowest two thresholds of the 'y' variables to 0 and 1 as well.

For an ordinal variable having 2 or more thresholds, there are 3 ways that the scale of its underlying continuum can be identified:
1. Fix the mean and variance, and free all thresholds.
2. Fix 1 threshold, free the mean, fix the variance.
3. Fix 2 thresholds, free the mean, free the variance.
Option #3 is most sensible for latent growth-curve modeling. See this paper for more information.