I’m stuck with a multigroup CFA problem. I’m trying to check if latent factors are the same across three timepoints. My model has two latent factors and seven items. Factor 1 has four items, and factor 2 has three. There are 92 observations total.
I’ve got two issues:
-
The marker variable method won’t work. I set one loading to 1 and the intercept to 0 for all groups, but the model won’t converge. Any ideas why?
-
I tried the ‘in every group’ method instead. I set latent variable means to 0 and variance to 1 for all groups. This worked, but is it okay to use? Or should I use IRT to check factor invariance?
Here’s a simplified version of my code:
# Method 1 (not working)
cfa_model1 <- 'Factor1 =~ item1 + item2 + item3 + item4
Factor2 =~ item5 + item6 + item7'
fit1 <- cfa(cfa_model1, data=mydata, group='timepoint',
group.equal=c('loadings', 'intercepts'))
# Method 2 (working)
cfa_model2 <- 'Factor1 =~ item1 + item2 + item3 + item4
Factor2 =~ item5 + item6 + item7'
fit2 <- cfa(cfa_model2, data=mydata, group='timepoint',
group.equal=c('loadings', 'intercepts'),
group.mean=c(0,0), group.var=c(1,1))
What’s the best way to handle this? Thanks for any help!
Hey ExploringOcean! Your multigroup CFA problem sounds really interesting. I’m curious about a few things:
Have you checked the distributional properties of your items across the three timepoints? Sometimes non-convergence can be due to weird distributions or outliers. Might be worth a look!
For your second method, setting means to 0 and variances to 1 is pretty common, but it does make some assumptions. Have you considered trying a partial invariance approach? It could give you more flexibility if some items aren’t fully invariant across time.
Also, I’m wondering about your sample size. 92 observations split across three timepoints seems a bit small for a 7-item, 2-factor model. Have you thought about using bootstrapping to get more stable estimates?
What kind of fit indices are you getting with your second method? Sometimes models can converge but still not fit great.
Keep us posted on what you find out! This kind of longitudinal work is super valuable.
hey there! sounds like a tricky situation. for the marker variable method, maybe try different items as markers? sometimes certain items just don’t work well.
as for the ‘in every group’ method, it’s generally fine to use. but with only 92 observations across 3 timepoints, you might run into power issues. have you considered partial invariance testing? that could help if full invariance doesn’t hold.
I’ve dealt with similar issues in my research. For your first problem, non-convergence could be due to model misspecification or small sample size. Try relaxing some constraints or using a different estimator like WLSMV if your data isn’t perfectly normal.
Regarding the second method, it’s a valid approach, especially when you’re comparing groups. However, with only 92 observations across three timepoints, you might lack power for robust invariance testing. Have you considered collapsing timepoints or using a longitudinal SEM approach instead?
IRT could be an alternative, but it has its own assumptions and challenges. Given your sample size, I’d stick with CFA for now, but perhaps explore partial invariance testing. This allows some parameters to vary across groups while constraining others, which might better reflect your data structure.
Remember, model fit is crucial. Even if it converges, poor fit suggests your model might not accurately represent your data structure.