Вытащить индексы модификации для отклонений предметов с лаваном в R

Я запустил мультигрупповую модель CFA с пакетом "lavaan" в R и обнаружил, что при запуске модели строгой инвариантности две группы не были инвариантными (не равными). Это говорит о том, что по крайней мере для одного предмета диапазон не одинаков для двух групп, которые я сравниваю (мальчик, девочка). Чтобы выяснить, какой элемент является источником проблем, я попросил индексы модификации. но к моему удивлению modindices() Функция не показала никаких отклонений, так как не было ничего подобного x1 ~~ x1 в кадре данных modindices() создано. Это дало индексы модификации для ковариаций как x1 ~~ x2, Кто-нибудь знает, что я делаю не так (я использовал последнюю версию Lavaan)?

overall_model <- '
emotie    =~ e1 + e2 + e4 + e14 + e17 + e22 + e25
sociaal_1 =~ s1.5 + s1.16 + s1.24
sociaal_2 =~ s2.3 + s2.8 + s2.12 + s2.20
thuis     =~ t6 + t7 + t15 + t18 + t19 
lichaam   =~ l9 + l10 + l11 + l13 + l21 + l23
' 

strict_fit <- cfa(model = overall_model, 
                  data = df,
                  meanstructure = TRUE,
                  group = "gender",
                  group.equal = c("loadings", "intercepts", "residuals"))

subset(modindices(strict_fit), op == "~~")

Когда я распечатываю (полный) фрейм данных modindices (со всеми возможными опциями "op"), я также не вижу все номера строк, кажется, что он пропускает много путей из моей модели:

           lhs op   rhs block     mi      epc  sepc.lv sepc.all
1       emotie =~    e1     1  0.216   -0.070   -0.864   -0.042
8    sociaal_1 =~  s1.5     1  0.435    0.144    1.842    0.081
11   sociaal_2 =~  s2.3     1  0.004    0.016    0.143    0.007
15       thuis =~    t6     1  2.372    0.224    2.558    0.141
20     lichaam =~    l9     1  2.091    0.316    3.572    0.136
96      emotie =~    e1     2  0.297    0.083    1.348    0.058
103  sociaal_1 =~  s1.5     2  0.388   -0.136   -2.070   -0.086
106  sociaal_2 =~  s2.3     2  0.005   -0.019   -0.167   -0.009
110      thuis =~    t6     2  2.526   -0.231   -4.060   -0.180
115    lichaam =~    l9     2  2.295   -0.331   -5.842   -0.197

1 ответ

Нашел решение: добавить free.remove = FALSE внутри modindices() и вы получите все возможные строки / индексы модификации.

Другие вопросы по тегам