我正在研究使用 R 的潜在变量建模一书,并进行了一个练习,其中包括为该图再现路径模型:
其中包括这个协方差矩阵:
我用这个 dput 创建了这个协方差矩阵:
structure(list(Teacher_Exp = c(84.85, 71.28, 18.83, 60.05), Soc_Climate = c(71.28,
140.34, -6.25, 84.54), Material_Covered = c(18.83, -6.25, 72.92,
37.18), Student_Ach = c(60.05, 84.54, 37.18, 139.48)), row.names = c("Teacher_Exp",
"Soc_Climate", "Material_Covered", "Student_Ach"), class = "data.frame")
我在重现lavaan
此模型的正确语法时遇到问题。到目前为止,我编写了以下模型:
model <- '
Student_Ach ~ b1*Soc_Climate + b2*Material_Covered + c*Teacher_Exp
Material_Covered ~ a2*Teacher_Exp
Soc_Climate ~ a1*Teacher_Exp
ind := a1*b1 + a2*b2
'
但是,当我运行此代码时:
fit <- sem(model,
data = slack)
我得到这个输出:
Warning message:
In lavaan::lavaan(model = model, data = slack, model.type = "sem", :
lavaan WARNING:
the optimizer warns that a solution has NOT been found!
我显然在该model
部分中遗漏了一些东西,那会是什么?任何帮助都会很棒。
编辑:
根据 Terrance 的建议,我更改了模型:
slack <- as.matrix(slack)
fit <- sem(model,
sample.cov = slack,
sample.nobs = 40)
但是现在当我使用以下功能打印模型时看起来像sempaths
:
semPaths(fit,
rotation = 2)
似乎它没有从书中重现交互模型。奇怪的是,回归路径看起来是“正确的”,但看起来很奇怪。我希望它看起来像书中的图片。不必使用 semPaths 完成: