首页 > 编程知识 正文

lavaan结构方程模型(根据数据流图画出软件结构图)

时间:2023-05-06 18:58:13 阅读:81689 作者:2254

以前我用一个叫semPlot的包绘制结构方程模型的路径,但是自从用了一个叫tidySEM的包之后,我发现以前的包闻起来很差。 今天共享tidySEM。

这个包的一大特点是所有的图都原本存在于数据框中。 这样可以像编辑excel一样重新定位图中的元素,从而实现非常个性化的设置。

例子说明

在画图之前,我们需要有画图的对象fit。 也就是说,你拟合成功的SEM模型的第二步是通过get_nodes(fit )获取这个对象的图中的可编辑节点,或者通过get_edges(fit )获取可编辑的边缘来get

HS .模型- '视觉=~x1 x2 x3

纹理=~x4 X5 X6

速度=~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 (纳米,纹理,纳米,速度,纳米,纳米,视觉,纳米,

纳米、纳米、纳米、纳米、纳米、纳米、纳米、纳米、纳米、纳米、

x1、x2、x3、x4、x5、x6、x7、x8、x9、rows=3这个矩阵的意思是,三个潜在变量都放在第一行,第一行作图看看吧

graph _ SEM (适配,布局=光线) )。

不,完全没有问题。 大家也试着自己调整一下。

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

先跑个CFA试试手?

本节介绍如何个性化节点和边。 首先,通过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数据分析:资料缺失值的常见处理方法

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。