一下tidySEM的布局,怎么做呢?(一)|

我一直使用 semPlot 包来绘制结构方程模型的路径。由于我用的是tidySEM包,发现之前的包不香。今天跟大家分享一下tidySEM。

这个包最大的特点就是所有的图纸原本都存储在数据框中,这样我们就可以像编辑excel一样改变图形中元素的位置,非常的个性化。

该示例显示您首先运行 CFA 进行尝试?

library(lavaan)
HS.model <- ' visual  =~ x1 + x2 + x3
              textual =~ x4 + x5 + x6
              speed   =~ x7 + x8 + x9 '
fit <- cfa(HS.model, data=HolzingerSwineford1939)

上述代码运行后,可以得到一个完整的验证性因子分析结果对象拟合。我们可以先画出这个对象的默认路径图。代码如下:

graph_sem(model = fit)

运行后可以得到图形:

这张图其实挺好的,但是我还是想自己编辑一下图片的布局,怎么办呢?

我首先使用 get_layout() 提取当前布局,然后它是一个矩阵。这个矩阵对应图上的元素,空白对应“NA”。提取布局的代码如下:

get_layout(fit)

结果如下,可以看到图中每个元素对应一个3*8的矩阵,元素的位置就是我们画图的位置:空白部分都是NA:

改变图形布局的原理就是改变这个矩阵。例如,如果我现在想将三个因素放在同一水平r软件中多元线性回归,我可以指定以下矩阵:

lay <- get_layout( NA, "textual", NA,  NA,  "speed", NA,  NA, "visual", NA,    
             NA, NA,   NA,   NA, NA,   NA, NA, NA,   NA,  
             "x1",   "x2", "x3","x4", "x5",   "x6", "x7", "x8", "x9",rows = 3 )

这个矩阵的意思是所有3个潜在变量都放在第一行,9个显式变量放在一个空行之后。让我们试试看这个效果是不是真的:

graph_sem(fit, layout = lay)

看到了,完全没有问题,也可以自己调整调试。

所以通过编辑这个矩阵,我们可以随心所欲地改变整个图形的布局。这就是原理。

自定义节点和边

这部分将告诉您如何个性化节点和边。首先,我们可以通过get_nodes(fit)和get_edges(fit)轻松得到原始节点和边的布局:

get_nodes(fit)

结果表明,我们有 3 个椭圆形潜在变量和 9 个方形显式变量,以及每个元素的标签。

get_edges(fit)

运行所有边的结果后:

因为图中还有很多边,运行get_edges(fit)的结果很长。我们可以看到边缘从哪里开始到哪里去,什么类型的箭头,边缘的标签等等。

使用此信息,我们可以更改边缘的颜色或线条的类型。最常见的是将无关紧要的变成虚线,将明显的路径用红色加粗等。

我们知道绘图是绘制的节点和边的标签,所以我们可以通过改变节点的标签来自定义图中节点或边的标签。我们试试吧:

例如,如果我希望我的图表中所有对象的标签都是变量名+我的公众号,我可以编写以下代码:

prepare_graph(fit) %>%
  edit_graph({ label = paste(p[,3]," Codewar") }) %>%
  plot()

运行后会得到如下效果:

例如r软件中多元线性回归,如果我想将所有节点更改为一种颜色,蓝色,我可以编写以下代码:

prepare_graph(fit) %>%
  edit_graph({ label_color = "blue" },element='nodes') %>%
  plot()

上面的操作只是为了好玩,并没有什么用处。接下来,写一些真正有用的东西。

首先我们来了解一下所有可以改变的路径线的视觉效果,包括:

即可以改变图中线条的类型、颜色、粗心和透明度。

详细了解所有可以更改的形状的视觉效果:

也就是说,节点边缘的类型、颜色、填充、粗心、透明度也可以改变。

知道了以上内容,我们就可以根据路径的意义来改变路径的线条或者可变的形状特征。例如,在上面的验证性因子分析模型中,我想将某条路径的颜色更改为红色,将路径线更改为虚线。,透明度改为0.5,我可以写如下代码:

edges(graph_data) %>%
  mutate(colour = "black") %>%
  mutate(colour = replace(colour, from == "visual" & to == "x2", "red")) %>%
  mutate(linetype = 1) %>%
  mutate(linetype = replace(linetype, from == "visual" & to == "x2", 2)) %>%
  mutate(alpha = 1) %>%
  mutate(alpha = replace(alpha, from == "visual" & to == "x2", .5)) -> edges(graph_data)
plot(graph_data)

运行效果是这样的,就是我把负载从“visual”变成了“x2”,变成了高透明度的红色虚线:

另外,我还可以根据路径系数的正负来改变路径的颜色。例如,我希望所有正路径都为绿色,负路径为红色。我可以编写以下代码:

prepare_graph(fit) %>%
  color_pos_edges("green") %>%
  color_neg_edges("red") %>%
  color_var("black") %>%
  alpha_var(.2) %>%
  plot()

因为我的模型比较特殊,都是正向路径,所以没有红色显示,不过是这样做的。

概括

今天给大家写了tidysem的基本操作。感谢您的耐心等待。我的文章写得很详细。代码在原文中。我希望每个人都能自己做。我收集的所有数据和学习资料的“数据链接”。如果对你有用,请点赞和分享。

也欢迎大家提出意见和建议。想了解什么统计方法,可以在文章下方留言。也许我看到它时会为你写一个教程。也欢迎私信。

如果您是本科生或研究生,如果您担心自己的统计作业、数据分析、模型构建等,如果您在使用 SPSS、R、Python、Mplus、Excel 时遇到任何问题,都可以联系我。因为我可以为您提供最好、最详细、最详细的患者数据分析服务。

如果您对 Z 检验、t 检验、ANOVA、MANOVA、回归、卡方检验、相关性、多水平模型、结构方程模型、中介调整、量表信度和效度等统计技术有任何疑问,请发送私信我,详细耐心指导。

如果您是学生,并且您担心统计#Assignments、#Data #Analysis、#Thesis、#Reports、#Composing、#Quizzes、Exams.. 如果您在#SPSS、#R-Programming 中遇到问题, #Excel,Mplus,然后联系我。因为我可以为您的数据分析提供最好的服务。

您是否对用于数据分析的 z 检验、t 检验、ANOVA、MANOVA、回归、Logistic 回归、卡方、相关、关联、SEM、多级模型、中介和调节等统计技术感到困惑......??

然后联系我。我会解决你的问题...

美好的过去

R数据分析:R语言中的潜在类分析LCA

R 数据分析:R 语言中的元分析

R数据分析:使用R语言进行卡方检验

R数据分析:如何使用R做验证性因子分析和绘图,示例演练

R 数据分析:适度调解

R数据分析:倾向得分匹配全实例(R实现)

R 数据分析:如何使用 R 进行多重插补,示例演练

R文本挖掘:中文文本聚类

R文本挖掘:中文词云生成,以2021年拜年为例

R数据分析:多类逻辑回归

R数据分析:列线图的实践和解释

R 文本挖掘:文本聚类分析

R 数据分析:混合效应模型示例

R文本挖掘:如何做词云图,初识worldcloud2

R数据分析:多元逻辑回归的实践

R数据分析:线性回归的实践与优化实例

R数据分析:中介和调节效应的分析和解释

R中的数据分析:竞争风险模型的实践和解释

R数据分析:潜变量增长模型的非专业解释

R数据分析:逐步回归的实践与原理,案例分析

R数据分析:交叉滞后模型的非专业解释

R数据分析:如何进行逻辑回归

R数据分析:探索性因素分析

R 中的数据分析:生存分析实践和解释(续)

R数据分析:倾向得分匹配实例操作

R数据分析:潜在轮廓分析LPA实践和解释

R中的数据分析:生存分析实践和结果解释

R数据分析:逻辑回归与泊松回归

R数据分析:如何做潜在的轮廓分析Mplus

R数据分析:处理数据中缺失值的常用方法

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论