Вытащить индексы модификации для отклонений предметов с лаваном в 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()
и вы получите все возможные строки / индексы модификации.