R 中带有 lavaan 的 SEM,指定具有相关分量表的模型的问题。警告:无法计算标准错误
SEM with lavaan in R, problems specifying model with correlated subscales. WARNING: Could not compute standard errors
我目前正在 运行Lavaan 中进行 SEM 分析,我 运行 遇到了一些问题。在 运行 完成整个 sem 之前,我打算 运行 一个 CFA 来复制用我正在使用的这个测量方法完成的心理测量测试。该措施有 24 个项目,构成 5 个子量表(潜在变量),这些子量表又加载到总的“高阶”因子上。我尝试用两种不同的方式来估计这个模型:(1)一个五因子模型(没有高阶因子),其中所有 5 个子量表都允许相关,以及(2)一个具有 TOTAL 潜在变量的高阶模型这 5 个 sucales 中的一个。
第一个模型有五个相关的潜在(FNR、FOB...FAA)因子,方差固定为 1。该模型无误差地收敛并拟合数据。第二个模型也适用,只要我不指定构成 FTOTAL 潜在变量的分量表(FNR、FOB..)是相关的。但是,如果我指定这些分量表是相关的(#Residual correlations 部分),该模型仍然 运行s 但给我错误“lavaan 警告:无法计算标准错误!信息矩阵无法反转。这可能是模型未被识别的症状。”如果我从模型 2 中删除残差相关性,则模型 运行s 没有错误。两者的 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 潜在变量的这些子量表相关是不合适的吗?我从文献中了解到,这就是第二个模型应该如何指定(五个因素相关),因为在第一个模型中五个方面是相关的。然而,也许情况并非如此,我应该 运行 在没有相关性的情况下建立模型二,但我想了解这样做的理由,以及为什么这不合适。
提前感谢大家的帮助。
您不需要指定一阶因子之间的相关性。 lavaan
的默认选项将关联它们。如果不想关联它们,您可以在 cfa()
函数中使用 orthogonal=T
。
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)
如果它解决了您的问题,请将其标记为已解决。
我目前正在 运行Lavaan 中进行 SEM 分析,我 运行 遇到了一些问题。在 运行 完成整个 sem 之前,我打算 运行 一个 CFA 来复制用我正在使用的这个测量方法完成的心理测量测试。该措施有 24 个项目,构成 5 个子量表(潜在变量),这些子量表又加载到总的“高阶”因子上。我尝试用两种不同的方式来估计这个模型:(1)一个五因子模型(没有高阶因子),其中所有 5 个子量表都允许相关,以及(2)一个具有 TOTAL 潜在变量的高阶模型这 5 个 sucales 中的一个。
第一个模型有五个相关的潜在(FNR、FOB...FAA)因子,方差固定为 1。该模型无误差地收敛并拟合数据。第二个模型也适用,只要我不指定构成 FTOTAL 潜在变量的分量表(FNR、FOB..)是相关的。但是,如果我指定这些分量表是相关的(#Residual correlations 部分),该模型仍然 运行s 但给我错误“lavaan 警告:无法计算标准错误!信息矩阵无法反转。这可能是模型未被识别的症状。”如果我从模型 2 中删除残差相关性,则模型 运行s 没有错误。两者的 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 潜在变量的这些子量表相关是不合适的吗?我从文献中了解到,这就是第二个模型应该如何指定(五个因素相关),因为在第一个模型中五个方面是相关的。然而,也许情况并非如此,我应该 运行 在没有相关性的情况下建立模型二,但我想了解这样做的理由,以及为什么这不合适。
提前感谢大家的帮助。
您不需要指定一阶因子之间的相关性。 lavaan
的默认选项将关联它们。如果不想关联它们,您可以在 cfa()
函数中使用 orthogonal=T
。
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)
如果它解决了您的问题,请将其标记为已解决。