百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

R数据分析:如何给结构方程画路径图,tidySEM包详解

off999 2024-12-30 06:07 40 浏览 0 评论

之前一直是用semPlot这个包给来进行结构方程模型的路径绘制,自从用了tidySEM这个包后就发现之前那个包不香了,今天就给大家分享一下tidySEM。

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

例子说明

  • 画图之前我们需要有一个画图的对象fit,也就是你的拟合成功的SEM模型
  • 第二步是要将这个对象的图中的可以编辑的节点通过get_nodes(fit)得到,或者通过get_edges(fit)得到可以编辑的边
  • 然后用get_layout()设定你想要的个性化布局
  • 第四步就是用graph_sem出图了

先跑个CFA试试手?

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

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

graph_sem(model = fit)

运行后即可得到图:


这个图其实挺不错的啦,不过我还是想自己编辑一下图的布局,怎么做呢?

我先使用get_layout()把现在的布局提取出来,提出来后是一个矩阵,这个矩阵和图上面的元素是对应的,空白处就对应的是“NA”,提取布局的代码如下:

get_layout(fit)

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

我们改动图布局的原理就是改这个矩阵,比如我现在就想三个因子放在同一个水平,我就可以规定如下的矩阵:

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)的结果非常长,我们可以看到输出中有边从哪儿开始from到哪儿去to,什么类型的箭头arrow,边的标签label等等。

利用好这些信息我们就可以改变边的颜色或者线条类型,最常见的就是将不显著的变成虚线,将显著的路径加红加粗等

我们知道画图都是画的节点和边的标签label,所以我们通过将节点的label改变就可以自定义图中节点或者边标签了,我们试试:

比如我希望我的图中所有对象的标签是变量名+我的公众号名字,我就可以写出如下代码:

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

运行后就得到下面的效果:

再比如我想让所有的节点变个颜色,蓝色,我可以写出如下代码:

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


上面的操作只是玩玩,并没有什么卵用,接下来写点实际用得上的

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

  • linetype: The type of line, e.g., continuous (linetype = 1 or dashed linetype = 2)
  • colour or color: The color of the line (e.g., colour = "red" or colour = "blue")
  • size: The size of the line (e.g., size = 1 or size = 2)
  • alpha: The transparency of the line (e.g., alpha = 1 or alpha = .2)

就是图中线的类型,颜色,粗心,透明度都是可以改的。

再了解下所有可以改变的形状的视觉效果:

  • linetype: The type of line surrounding the node, e.g., continuous (linetype = 1 or dashed linetype = 2)
  • colour or color: The color of the line surrounding the node (e.g., colour = "red" or colour = "blue")
  • fill: The interior color of the node (e.g., colour = "red" or colour = "blue")
  • size: The size of the line (e.g., size = 1 or size = 2)
  • alpha: The transparency of the node (e.g., alpha = 1 or alpha = .2)

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

知道了上面的东西我们就可以根据路径的显著性进行路径线条或者变量形状特征的改变了,比如上面的验证性因子分析模型,我就想把某一条路径颜色改成红色,路径线条改成虚线,透明度改成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" to"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检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

Then Contact Me. I will solve your Problem...

往期精彩

R数据分析:用R语言做潜类别分析LCA

R数据分析:用R语言做meta分析

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数据分析:资料缺失值的常见处理方法

相关推荐

u盘win7系统安装盘(u盘里安装win7系统)

有些软件我们从网上下载安装时需要破解密码或者我们没有网时,直接需要把安装的软件,传到别的电脑,具体操作如下:1。直接把另一台电脑桌面上的软件复制或发送的优盘里,其实那只是一个快捷方式2.以ps软件为例...

语音输入法哪个好用(语音输入法免费版下载安装)

日常基本使用的讯飞和搜狗都还不错,对比来看的话,讯飞相对会更好一些。讯飞输入法在键盘输入方面进步非常快,功能也比较全面。单纯的语音方面,讯飞的稍微好一点,例如一些标点、断句之类处理的更加到位。讯飞支持...

手机app应用市场(手机里面的应用市场)

360手机助手是android智能手机的手机管理专家。提供海量的游戏、软件、音乐、小说、视频、图片,通过它轻松下载、安装、管理手机资源。所有提供信息资源,全部经过360安全检测中心的审核认证,绿色无毒...

开局最强系统(开局最强系统txt奇书网)
开局最强系统(开局最强系统txt奇书网)

《最强奶爸系统》作者:最美猪猪小说简介同学甲:“我找到了月入七千的工作。”同学乙:“我找到了月入一万的工作。叶辰,你呢?”叶辰:“我老婆…是万亿市值超凡集团的老板,给我生了10个孩子。”同学们:???叶辰遭前女友陷害,阴差阳错邂逅了一位美女...

2026-01-03 07:03 off999

win10系统下载器官网(下载windows10官方)

如果您想要在Windows10上下载游戏辅助,可以按照以下步骤进行:1.打开您选择的游戏辅助下载网站,例如:GameCopyWorld或MegaGames。这些网站提供许多破解游戏的补丁和辅助工具...

photoshop官方网站进入(photoshop官网入口)

那是因为网站采用了安全加密技术,安装了SSL证书,说明此网站为安全的页面,其信息已经经过加密措施。显示https的网站,网址上还会有显示一个小锁头,也是安全标志。1.先用Photoshop做一个网页图...

windows7旗舰版主机多少钱(windows7旗舰版电脑多少钱一台)

其实这两个版本没有太大的差别,只是功能上有少量差别,旗舰版服务开启的要比专业版本服务开启的多几个,至于朋友们说的专业快速度比旗舰版快,或旗舰版比专业版速度快,个人认为速度都是一样只是功能上的差别,如果...

小米平板(小米平板怎么分屏)

小米平板的简单使用方法:1、首先给小米平板给充电,确保电量充足。2、长按住电源键启动小米平板,进入设备初始设置界面。3、根据屏幕上的提示信息,设置平板电脑联网、绑定小米账号等,直到完成即可正常使用了。...

移动硬盘一直在加载无法读取

移动硬盘电源灯亮说明硬盘有供电,无法识别此移动硬盘时,可按如下步骤进行排查:1)将移动硬盘拔下后,更换硬盘盒再接上确认。2)更换过硬盘盒还是无法识别的话,移动硬盘就损坏了,需要进行更换;3)若更换过硬...

下载软件的app大全(下载软件的app大全免费)

中国最常见的目前是迅雷下载软件。官网可以下载到正常的免费版本。他支持ftphttpbt磁力链接等多种形式的下载。国外的有bitcome。电驴和电骡等多种形式的下载软件。他们都可以满足日常的下载要求,...

wifi贴小程序搭建需要多少钱

回答如下:要搭建自己的WiFi小程序,需要以下步骤:1.获得开发资格:首先需要注册成为开发者,获得小程序的开发资格。2.编写代码:使用微信小程序的开发工具,编写WiFi小程序的前端和后端代码。3....

外网服务器地址(外网服务器地址ip大全)

要弄懂这个问题,你首先要了解什么叫内网,什么叫外网,什么叫服务器,服务器在网络中所扮演的是什么角色,内网:就是指内部网络,窄义上的内网就是指中小型的局域网外网:就是指在你办公网络之外能访问到的网络...

360卸载不了的软件怎么办(用360卸载软件卸载不了)

开启了自我保护,关闭即可。解决方法如下:准备材料:360安全卫士、电脑1、在电脑上打开安全卫士,进去之后,点击右上方的列表图标,选择设置,2、进去安全卫士设置界面之后,点击安全防护中心,3、进去安全防...

联想电脑u盘启动不了(联想电脑为什么u盘启动不了)
联想电脑u盘启动不了(联想电脑为什么u盘启动不了)

1,启动计算机,并按住DEL键不放,但是也有按其它键的,所以请根据提示,直到出现BIOS设置窗口。2,键盘方向键向右移动到BIOS"Startup"菜单,然后选择“CMS”按回车键,然后选择"CMS"里面的Enabled。3,在对上面的操作...

2026-01-03 02:03 off999

海马苹果助手官方下载(海马苹果助手官方正版)

除了官方版,苹果其他服务器互通吧好像,只是不能换服务器登录你好;根据你的提示,可能是你的手机系统不正常蚂蚁浏览器,你可以现在一个手机QQ浏览器,它的体积小,功能强大,还特别的节省流量,它使用自主研发的...

取消回复欢迎 发表评论: