parTable() lavTestScore() interpretation

77 views
Skip to first unread message

Sara Esposito

unread,
Nov 27, 2021, 8:49:12 AM11/27/21
to lavaan

I am working on measurement invariance and I got stuck in the strong invariance testing: [...] group="group", group.equal=c("loadings", "intercepts")). Both configural and weak invariance pass the test, however the strong invariance model is worst than the weak invariance model. Therefore, I am looking for partial invariance.

I am not sure what parTable() is suggesting me to do. From lavTestScore(), the largest X2 is 10.109 (< .001). This correspond to .p29. = = .p146. in the columns lhs, op,  rhs.

 Then, I look at parTable() and the .p29. == .p146. labels (in columns label, plabel) correspond to X =~ x4 in the lhs, op, rhs columns. What does it mean? x4 was already loading on X. Is it suggesting me to release x4 (group.partial = c("x4 ~ 1")? It seems strange to me because in that case I would have get ~1 in the op column, so I am not sure what I should do. 

Many thanks,
Sara

Terrence Jorgensen

unread,
Nov 29, 2021, 6:27:49 AM11/29/21
to lavaan
.p29. == .p146. labels correspond to X =~ x4 in the lhs, op, rhs columns. What does it mean?

Then the score test is significant, indicating that equality constraint on that pair of parameters should be freed. But your omnibus LRT was not significant? Use p.adjust() to account for multiple testing.

x4 was already loading on X. Is it suggesting me to release x4 (group.partial = c("x4 ~ 1")?

No, that is a different parameter (intercept v. loading). Best to use the release= argument to select only the constraints you are interested in.

Terrence D. Jorgensen
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Reply all
Reply to author
Forward
0 new messages