我有一个只有观察变量的熔岩SEM模型,我想在semPlot-package中使用命令semPaths绘制三个水平层。
但是,semPaths中的默认值为:"默认"树"默认旋转下的布局将节点置于四个水平级别之一。在外部显性变量的顶部,在外生潜变量下,内生潜变量和底部内生变量变量。"因此,semPath仅在两个水平关卡中绘制我的模型,我不知道如何添加更多关卡。
这是我的代码:
mod1<-'
y ~ t1 + t2 + t3
t1 ~ t2 + t4 + t5 + t3
t3 ~ t2
'
mod1.fit<-sem(mod1, data=data)
summary(mod1.fit, standardized=TRUE, rsq=TRUE,fit.measures=TRUE)
sem<-semPaths(mod1.fit, what="std", residuals=FALSE, layout="tree", rotation=2, nCharNodes=0, sizeMan=10, color=c("white"), edge.color=c("black"), title=FALSE, exoVar=FALSE, exoCov=FALSE, curvePivot=TRUE, "std", cut=0.1, edge.lable.cex=1.5)
此外,我还没有找到如何在路径图中添加标准错误。
提前感谢您的帮助!
答案 0 :(得分:2)
您需要手动指定(x,y)坐标矩阵以用作布局。
您可以通过使用数字节点标签绘制模型来查看哪些节点将获得矩阵的哪些行:
semPaths(mod1.fit, intercepts = F, nodeLabels = 1:7)
请注意,截取(默认情况下绘制)意味着您需要为所有内生变量的所有截距指定坐标,这对我来说是一项巨大的苦差事:
semPaths(mod1.fit, intercepts = T, nodeLabels = 1:10)
似乎节点按照它们在模型中指定的顺序进行编号,外部变量最后出现,并且按照回归公式调用它们的顺序。因此,在矩阵中,您将给出y,t1和t3的坐标,然后是t2,t4和t5。
我发现制作x和y矢量更容易,然后将它们组合成矩阵:
x = c(0, -1, 1, 0, -1, 1)
y = c(-1, 0, 0, 0, 1, 1)
ly = matrix(c(x, y), ncol=2)
然后在layout
的{{1}}参数中指定该矩阵:
semPaths()
手动布局后,调解员移动到他们自己的图层。