MI as a continuous function of age
Message/Author
 Abdel posted on Tuesday, December 07, 2010 - 2:59 am
Hi all,

I did a multigroup confirmatory factor analysis to check for Measurement Invariance across different age groups on a group of categorical items with one underlying factor (by constraining factor loadings, item thresholds and item variances to be equal across groups).
I am now trying to improve these analyses, by instead using age as a continuous measure. Is it possible in Mplus to use a continuous variable as a moderator on factor loadings, thresholds and variances?

- Abdel
 Bengt O. Muthen posted on Tuesday, December 07, 2010 - 5:38 pm
Age as a continuous moderator of:

1. a threshold is achieved by direct effect from age to the item

2. a factor loading is achieved by XWITH. Using an example with gender (binary, but that doesn't matter), the 2 items rsci and malg get gender-varying loadings as follows:

math BY malg-mprob*;
! female = 0, male = 1
gendmath | gender XWITH math;
malg ON gender gendmath;

3. When you say "variances", do you mean item residual variance? That isn't identified in a single group with a categorical item. But talking about a continuous item, you could use the Constraint = age; specification of the Variable command as in the UG example on QTL modeling (see index).

There is also a way to let the factor variance change as a function of the continuous age variable.
 Abdel posted on Monday, April 04, 2011 - 7:06 am
Dear Dr Muthen,

How do I let the factor variance change as a function of the continuous age variable? Many thanks in advance!
 Bengt O. Muthen posted on Monday, April 04, 2011 - 8:55 am
You can use the Constraint=age; approach mentioned above, or you can use the approach of UG ex 3.9. But if you have that much non-invariance, why not simply use the multiple-group approach.
 Abdel posted on Tuesday, April 05, 2011 - 2:16 am
Thank you Dr. Muthen. I actually did a multiple-group approach first. I submitted the paper, and the major complaint of the editor was:

“You have grouped a wide age range into three categories, which are subsequently investigated with respect to measurement invariance. The underlying assumption here (not stated explicitly) is that within the three age groups MI holds. This, however, is questionable. Any other grouping might provide different results regarding MI, which undermines the utility of your paper. If you categorize an age range prior to investigating MI between groups, you have to provide convincing arguments that MI within group is likely to hold. An alternative to this dilemma is to investigate MI as a continuous function of age (see a paper by M. Neale and co-authors).”

So, that is why I am now trying to investigate MI as a continuous function of age...

Unfortunately, the CONSTRAINT=Age function does not work in combination with the COMPLEX function, which I would also like to use, because I have a lot of relatives in my sample..

I also don't understand how the implementation of 3.9 (RANDOM COEFFICIENT REGRESSION?) can lead to a moderator of the latent factor variance... Should I put the random slope on the paths of all 10 items on the factor? Wouldn't this lead to the factor loadings being moderated?
 Abdel posted on Tuesday, April 05, 2011 - 2:17 am
"Should I put the random slope on the paths of all 10 items on the factor?"

Maybe I should explain this comment further: I'm investigating a 1 factor model, with 10 indicators (10 categorical items with three categories = 2 thresholds).
 Bengt O. Muthen posted on Tuesday, April 05, 2011 - 10:32 am
The random coeff approach of UG ex 3.9 would be applied to the regression of the factor on covariates in order to have the factor residual variance vary as a function of age. In ex3.9, age would correspond to x2 (see the literature referred to).

The Constraint=age approach is more straightforward although as you say it is not yet available for Type=Complex. You could try the Constraint=age approach to see if your multiple-group findings are sensitive to the age groupings you choose. You would drop Type=Complex, which means that you don't get the right SEs, but you do get the same parameter estimates.
 Abdel posted on Thursday, April 07, 2011 - 3:52 am
Thank you very much!
 Abdel posted on Sunday, April 10, 2011 - 8:44 am
Sorry Dr Muthen, but I still don't entirely understand how to apply example 3.9 to my situation. My factor does not have a residual variance, just a variance (fixed to 1), because there are no other latent variables loading onto my factor. It's just the 10 categorical items underlying the 1 common factor.
I assume that y in ex 3.9 would be my latent factor. What is x1 then? I assume that should be left out from my model (I also assume then that the CENTERING option does not apply to my model?). This would leave me with the following statements:

s | TP;
s WITH TP;
s ON Age;

I don't think this is correct, since I get the message:

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN ILL-CONDITIONED
FISHER INFORMATION MATRIX. CHANGE YOUR MODEL AND/OR STARTING VALUES.

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO A NON-POSITIVE
DEFINITE FISHER INFORMATION MATRIX. THIS MAY BE DUE TO THE STARTING VALUES
BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. THE CONDITION
NUMBER IS 0.112D-18.

THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE
COMPUTED. ... CHANGE YOUR MODEL AND/OR
STARTING VALUES. PROBLEM INVOLVING PARAMETER 13.

Could you shed some light on this for me? Many thanks!
 Bengt O. Muthen posted on Sunday, April 10, 2011 - 10:03 am
If you don't have any covariates influencing your factor(s), ex 3.9 is not applicable. The simple approach is to use Constraint=age and ignore Type=Complex (which only affects the SEs) to investigate if your age groupings are appropriate.