1

我有一个观察变量的 lavaan 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)

此外,我还没有找到如何将标准错误添加到路径图中。

提前谢谢你的帮助!

4

1 回答 1

3

您将需要手动指定 (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然后在 的参数中指定该矩阵semPaths()

semPaths(mod1.fit, layout=ly)

这是我在手动布局之前所拥有的。

在手动布局之前,默认“树”布局。 这是我在手动布局后得到的。

手动布局后,中介移动到自己的层。

于 2015-07-28T20:03:39.693 回答