SEM с лавой в R, проблемы с указанием модели с коррелированными субшкалами. ВНИМАНИЕ: не удалось вычислить стандартные ошибки.
В настоящее время я работаю над анализом SEM в Lavaan, и у меня возникло несколько проблем. Перед тем, как запустить полную семантическую оценку, я намеревался запустить CFA, чтобы воспроизвести психометрическое тестирование, проведенное с помощью этой меры, которую я использую. Эта мера состоит из 24 пунктов, которые составляют 5 подшкал (скрытых переменных), которые, в свою очередь, нагружают общий фактор «более высокого порядка». Я пытаюсь оценить эту модель двумя разными способами: (1) пятифакторная модель (без фактора более высокого порядка), в которой разрешено коррелировать все 5 подшкал, и (2) модель более высокого порядка с ВСЕГО скрытой переменной, созданной вверх из этих 5 Suscales.
Первая модель имеет пять коррелированных латентных факторов (FNR, FOB...FAA) с фиксированной дисперсией 1. Эта модель сходится без ошибок и соответствует данным. Вторая модель также работает, пока я не укажу, что субшкалы (FNR, FOB..), составляющие скрытую переменную FTOTAL, коррелированы. Однако, если я укажу, что эти субшкалы коррелированы (часть #Residual correlations), модель все равно будет работать, но выдает ошибку "ПРЕДУПРЕЖДЕНИЕ: не удалось вычислить стандартные ошибки! Не удалось инвертировать информационную матрицу. Это может быть признаком того, что модель не идентифицирована ". Если я удалю корреляцию остатков из модели 2, модель будет работать без ошибок. Код R для обоих следующий:
Model1 <- "
#Measurements model
FNR =~ FNR1 + FNR2 + FNR3 +FNR4 +FNR5
FOB =~ FOB1 + FOB2 +FOB3 +FOB4
FDS =~ FDS1 +FDS2 +FDS3 + FDS4 + FDS5
FNJ =~ FNJ1 + FNJ2 + FNJ3 +FNJ4 + FNJ5
FAA =~ FAA1 + FAA2 +FAA3 + FAA4 +FAA5
#Residual correlations
FAA ~~ FNJ + FOB + FDS + FNR
FNR ~~ FNJ + FOB+ FDS
FNJ ~~ FOB + FDS
FOB ~~ FDS
"
fit5factor <- sem(Model1, data=SEMDATA, std.lv=TRUE)
Model2 <- "
#Measurements model
FNR =~ FNR1 + FNR2 + FNR3 +FNR4 +FNR5
FOB =~ FOB1 + FOB2 +FOB3 +FOB4
FDS =~ FDS1 +FDS2 +FDS3 + FDS4 + FDS5
FNJ =~ FNJ1 + FNJ2 + FNJ3 +FNJ4 + FNJ5
FAA =~ FAA1 + FAA2 +FAA3 + FAA4 +FAA5
FTOTAL =~ FNR + FOB + FDS + FNJ+ FAA
#Residual correlations
FAA ~~ FNJ + FOB + FDS + FNR
FNR ~~ FNJ + FOB+ FDS
FNJ ~~ FOB + FDS
FOB ~~ FDS
"
fitTotal <- sem(Model2, data=SEMDATA, std.lv=TRUE)
Я впервые использую SEM, и я не уверен, что делаю не так. Разве не уместно указывать, что этим субшкалам, составляющим скрытую переменную FTOTAL, разрешено коррелировать? Из литературы я понял, что именно так должна была быть указана вторая модель (с коррелированными пятью факторами), учитывая, что в первой модели коррелированы пять аспектов. Однако, возможно, это не так, и мне следует запустить модель 2 без корреляций, но я хотел бы узнать обоснование этого и почему это не подходит.
Заранее всем спасибо за помощь.
1 ответ
Вам не нужно указывать корреляции между факторами первого порядка. Параметры по умолчанию
lavaan
соотнесет их. Если вы не хотите соотносить их, вы можете использовать
orthogonal=T
внутри
cfa()
функция.
Model1 <- "
#Measurements model
FNR =~ FNR1 + FNR2 + FNR3 +FNR4 +FNR5
FOB =~ FOB1 + FOB2 +FOB3 +FOB4
FDS =~ FDS1 +FDS2 +FDS3 + FDS4 + FDS5
FNJ =~ FNJ1 + FNJ2 + FNJ3 +FNJ4 + FNJ5
FAA =~ FAA1 + FAA2 +FAA3 + FAA4 +FAA5
"
fit5factor <- sem(Model1, data=SEMDATA, std.lv=TRUE)
Что касается иерархической структуры, у вас нет корреляций между факторами первого порядка, поскольку на них воздействует одна и та же скрытая (то есть второго порядка) нагрузка:
Model2 <- "
#Measurements model
FNR =~ FNR1 + FNR2 + FNR3 +FNR4 +FNR5
FOB =~ FOB1 + FOB2 +FOB3 +FOB4
FDS =~ FDS1 +FDS2 +FDS3 + FDS4 + FDS5
FNJ =~ FNJ1 + FNJ2 + FNJ3 +FNJ4 + FNJ5
FAA =~ FAA1 + FAA2 +FAA3 + FAA4 +FAA5
FTOTAL =~ FNR + FOB + FDS + FNJ+ FAA
"
fitTotal <- sem(Model2, data=SEMDATA, std.lv=TRUE)
Если это решит вашу проблему, отметьте ее как решенную.