Значения AVE и Omega для факторов более высокого порядка (lavaan и semTools)
Я хочу использовать
reliability()
функция из пакета
semTools
на выходе из
sem()
(пакет
lavaan
).
Я использую такую функцию:
reliability(fit, return.total = TRUE, dropSingle = FALSE, omit.imps = c("no.conv", "no.se"))
Но получаю следующее предупреждение:
Факторы более высокого порядка игнорировались.
Вывод показывает значение только трех скрытых переменных:
VOR DID ANT
alpha 0.7144851 0.7303742 0.7381195
omega 0.7317086 0.7474582 0.7590928
omega2 0.7317086 0.7474582 0.7590928
omega3 0.7428142 0.7558317 0.7597882
avevar 0.3642473 0.3856845 0.4598487
Однако в моей модели гораздо больше переменных. Вот результат, полученный из
sem()
модель создана с
lavaan
:
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
CPT =~
CPT2 1.000 0.486 0.570
CPT3 1.270 0.239 5.312 0.000 0.618 0.840
CPT4 0.897 0.218 4.121 0.000 0.436 0.518
ANT =~
ANT1 1.000 0.399 0.564
ANT4 1.596 0.356 4.486 0.000 0.636 0.737
ANT3 1.068 0.291 3.667 0.000 0.426 0.494
ROL =~
ROL1 1.000 0.686 0.841
ROL2 0.992 0.120 8.300 0.000 0.681 0.761
ROL3 0.999 0.117 8.572 0.000 0.686 0.781
ROL4 0.794 0.113 7.009 0.000 0.545 0.664
SET =~
SET1 1.000 0.613 0.571
SET2 1.185 0.220 5.382 0.000 0.726 0.809
SET3 1.081 0.207 5.220 0.000 0.663 0.747
SET4 0.989 0.216 4.578 0.000 0.606 0.600
CTO =~
CTO1 1.000 0.903 0.752
CTO2 0.878 0.145 6.037 0.000 0.793 0.687
CTO3 1.005 0.155 6.482 0.000 0.907 0.772
RWD =~
RWD1 1.000 0.831 0.831
RWD2 1.054 0.097 10.878 0.000 0.876 0.911
RWD3 1.025 0.099 10.373 0.000 0.852 0.863
VOR =~
VOR1 1.000 0.281 0.383
VOR2 2.107 0.665 3.170 0.002 0.592 0.605
VOR3 1.994 0.615 3.245 0.001 0.560 0.653
VOR4 1.845 0.578 3.193 0.001 0.518 0.619
VOR5 1.968 0.603 3.264 0.001 0.553 0.667
DID =~
DID1 1.000 0.447 0.667
DID2 1.250 0.191 6.530 0.000 0.559 0.804
DID3 1.176 0.187 6.302 0.000 0.526 0.759
DID4 0.969 0.172 5.632 0.000 0.433 0.658
DID5 0.550 0.224 2.453 0.014 0.246 0.268
ABT =~
ABT1 1.000 0.701 0.703
ABT2 1.321 0.195 6.760 0.000 0.926 0.809
ABT3 0.578 0.135 4.291 0.000 0.405 0.475
ABT4 0.864 0.165 5.248 0.000 0.606 0.589
EMT =~
VOR 1.000 0.666 0.666
DID 1.672 0.602 2.778 0.005 0.699 0.699
ABT 3.372 1.159 2.909 0.004 0.900 0.900
Вот модель SEM, которую я использую для генерации скрытых переменных:
modelnew <- '
CPT =~ CPT2 + CPT3 + CPT4
ANT =~ ANT1 + ANT4 + ANT3
ROL =~ ROL1 + ROL2 + ROL3 + ROL4
SET =~ SET1+SET2+SET3+SET4
CTO =~ CTO1+CTO2+CTO3
RWD =~ RWD1+RWD2+RWD3
VOR =~ VOR1 + VOR2 + VOR3 +VOR4 + VOR5
DID =~ DID1 +DID2 +DID3 +DID4 +DID5
ABT =~ ABT1 +ABT2 +ABT3 +ABT4
EMT =~ VOR + DID + ABT
CPT ~~ EMT
ROL ~~ EMT
ANT ~~ EMT
CPT ~~ SET + CTO + RWD
ANT ~~ SET + CTO + RWD
ROL ~~ SET + CTO + RWD
'
Как получить значения AVE и Omega всех скрытых переменных, не игнорируя факторы высшего порядка?
1 ответ
Ваша модель является моделью более высокого порядка, поскольку в ней используются скрытые переменные (VOR
DID
и
ABT
) как зависимые (см. строку
EMT =~ VOR + DID + ABT
).
Вот как выглядит ваша модель при ее построении с помощью функции
semPaths()
в пакете
semPlot
:
Потому как
reliability()
может обрабатывать только один фактор, он игнорирует верхние переменные ("фактор высшего порядка") вашей модели.
К счастью, для этого есть решение. Просто используйте функцию
reliabilityL2()
из semTools:
reliabilityL2(fit, "EMT")
reliabilityL2(fit, "CPT")
reliabilityL2(fit, "ANT")
# and so on...
Это должно дать вам Омегу для недостающих переменных.