Hello and thanks in advance for any help the group can offer.
I am working with population data of a large-scale literacy assessment.
I have run the individual CFA group models (e.g., configural, weak, strong, strict) and came up with this code to address freeing the parameters for each nested level:
model<-measurementInvariance(Q3,data=DIF, group="HL",
group.partial = c(group.partial = c("READ=~rmc07", "READ=~rmc14",
"READ=~rmc04", "WRITE =~ wmc39",
"READ=~rmc01", "READ=~rmc03",
"READ=~rmc06", "READ=~rmc23",
"READ=~rmc27", "READ=~wmc38",
"WRITE=~wmc32","WRITE=~wmc33",
"WRITE=~wmc38", "READ=~rmc02",
"WRITE=~rmc08", "WRITE=~rmc25",
"WRITE=~rmc15", "READ=~rmc24",
"WRITE=~wmc37", "READ=~rmc18", "READ=~rmc28", "rmc17~1", "rmc21~1", "rmc26~1", "rmc27~1", "rmc08~1","rmc13~1",
"rmc28~1", "wmc38~1", "wmc37~1", "wmc39~1", "rmc01~1", "rmc07~1", "rmc03~1", "rmc06~1", "rmc11~1", "rmc15~1",
"wmc34~1", "rmc14~1", "rmc23~1")))
Here is my result:
Chi Square Difference Test
Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
fit.configural 1044 639571 641263 4459.3
fit.loadings 1060 639572 641137 4491.6 32.280 16 0.009194 **
fit.intercepts 1073 639549 641011 4495.2 3.579 13 0.994901
fit.means 1075 639621 641067 4570.8 75.582 2 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Fit measures:
cfi rmsea cfi.delta rmsea.delta
fit.configural 0.949 0.018 NA NA
fit.loadings 0.948 0.018 0.000 0
fit.intercepts 0.948 0.018 0.000 0
fit.means 0.947 0.018 0.001 0
Please note that the configural CFI in entire population is > .95. I have isolated and sampled the two groups for the purpose of this study (n=20000 total) resulting in slightly worse model fit for configural than with entire population data.
Question 1: Is the fit.loadings level acceptable or does it need to have a better fit (e.g., more freed loadings)? When I say acceptable, I mean, acceptable to move on to fit.intercept. I think the model fit indices are ok for this level but I am not sure because they seem to contradict and I don't know how to interpret the p-value.
Question 2: I'd like to try to free parameters for the strict level (fit.means) -- this means freeing residuals, correct? What is the syntax for freeing residuals?
If you see any other concerns in my syntax I would very much appreciate you letting me know.
Thank you again!
Jeanne Sinclair