R数据分析:结构方程模型的分组比较,实例解析

R数据分析:结构⽅程模型的分组⽐较,实例解析
做结构⽅程的时候分组⽐较⽤的⽐较多,咨询的同学也多,之前写过mplus的做法,今天就再给⼤家写个⽤R的,不论你是做中介还是做验证性因⼦分析,等等,反正⽤结构⽅程能做的都可以套这个⽅法,⽽且在R语⾔的lavaan包中,分组⽐较的做法也是⾮常简单的,今天就带⼤家来了解下。
叶绿素a为何要分组⽐较
很多时候我们会关⼼,某结构⽅程中的某条系数是不是存在组间差异,⽐如说性别差异,年龄差异,⽂化差异(跨⽂化),这个时候我们想做的是整个模型系数的⽐较,你想要单因素分析?搞个T检验?再搞个卡⽅,弄个回归?都是⾏不通的。
这个时候就得求助与模型的分组⽐较,⽐如⼤家去看下⾯这个⽂章:
Liu, Yiming, Jerry C. Sun, and Ssu-Kuang Chen. "Comparing Technology Acceptance of AR-Based and 3D Map-Based Mobile Library Applications: A Multigroup SEM Analysis." Interactive Learning Environments, 2021.
它回答的问题有两个,⼀个是什么因素影响移动图书馆的使⽤(这个问题直接拟合结构⽅程就⾏),另外⼀个问题就是不同组间系数是不是不对于第⼆个问题的回答,作者就是⽤的分组⽐较。这样的⽂章有
很多,⼤家都可以搜搜看。钝化膜
同。对于第⼆个问题的回答,作者就是⽤的分组⽐较。这样的⽂章有很多,⼤家都可以搜搜看。
潜变量⽐较之前依然是涉及到⼀个东西叫做测量不变性。
测量不变性的做法
测量不变性之前也有给⼤家仔细地写过两篇⽂章,⼤家可以去翻翻哈(之前写的是纵向数据有个残差等值,此处忽略),这⼉主要写做法:
⼀般来讲我们做测量不变性都是有固定顺序的,⾸先是configural invariance(构形不变性),然后是weak invariance(单位等值)然后是
⼤家不要记中⽂⼀定要把这⼏个英⽂记住,因为中⽂好像很不统⼀。
无味红霉素strong invariance(尺度等值)。⼤家不要记中⽂⼀定要把这⼏个英⽂记住,因为中⽂好像很不统⼀。
具体地,组间相同的因⼦结构就意味着configural invariance是成⽴的,载荷相同就意味着weak invariance是成⽴的,最后载荷和截距如果都相同则strong invariance是成⽴的,看⼀个例⼦:
分别设定不同的测量不变性⽔平,然后进⾏模型的⽐较就可以识别出我们的数据到底符合测量测量不变性⼀定是通过验证性因⼦分析来做,分别设定不同的测量不变性⽔平,然后进⾏模型的⽐较就可以识别出我们的数据到底符合测量不变性的哪⼀个⽔平了。下⾯这个例⼦就是分别进⾏了configural invariance(构形不变性),然后是weak invariance(单位等值)然后是不变性的哪⼀个⽔平了。下⾯这个例⼦就是分别进⾏了
strong invariance的拟合:
group.equal=c("intercepts","loadings"))lavTestLRT(fit1, fit2, fit3)
那么在我们这个例⼦中就可以看到,⽤德尔塔卡⽅看的话,fit1和fit2是没有显著差异的,所以我们的数据是符合weak invariance的。因为fit3和fit2之间的差异显著了,所以fit3没有fit2好,那么本例数据中组间的测量不变性就只是符合weak invariance并不符合strong invariance。Because the first p-value is non-significant, we may conclude that weak invariance (equal factor loadings) is supported in this dataset. However, because the second p-value is significant, strong invariance is not. Therefore, it is unwise to directly
compare the values of the latent means across the two groups
多组⽐较实例解析
论⽂中因为具体的研究问题,它做的是结构部分路径系数的⽐较,这⼉我依然是给⼤家写个最简单的测量部分的⽐较。我现在有来⾃两个学校的301个观测数据,数据⼤概长这样:
这些观测都是来⾃两个学校的,我现在想以学校school进⾏分组评估不同学校验证性因⼦分析的结果⼀致性,我就可以写出如下代码:
data=HolzingerSwineford1939, group="school")summary(fit)
运⾏上⾯的代码你就可以发现,验证性因⼦分析的结果都是分组展⽰的。这个就是分组⽐较的常规操作,同学们做的⽐较多的会是将所有组间的某个系数进⾏固定,怎么做呢?接着往下看:
⾸先我们可以通过给系数打标签的⽅式进⾏系数的固定,这个是⾃由度很⾼,但是⽐较⿇烦的⽅法,⽐如我想将两组间验证性因⼦分析的某个载荷进⾏固定,固定为组间相同。我就可以写出如下代码:
上⾯的这个代码就将组间的x6的系数都固定为了codewar,当然这个codewar都是可以换的哈,你换成你的名字都是⽆所谓的,只要是⼀样的就⾏,就表⽰我限制两组间x6的载荷必须是相同的,那么结果如下:
是⼀样的就⾏,就表⽰我限制两组间x6的载荷必须是相同的
andida
两个组的相同标签的系数,在我们的例⼦中x6的载荷系数都是0.919,
上⾯给⼤家写的是实现⽅法⼀,我们再看⼀个更加便捷的,很多同学还有将组间的所有载荷,或者某⼏条路径都固定为相同,论⽂中做组间⽐较的第⼆步就是将所有路径系数全部设定为组间相同,得到了⼀个fully constrained model,像这样的需求在R语⾔中也可以很快地实现。麻醉药品五专
⼤家在拟合模型的时候记住另外⼀个参数group.equal,⽐如你想将组间的因⼦载荷固定为相同你直接设定group.equal参数就可以,看代码:
data=HolzingerSwineford1939, group="school",group.equal=c("loadings"))summary(fit)
V给运⾏上⾯的代码你就会发现组间的所有因⼦载荷都被⾃动打上了标签,两组间的相同因⼦载荷都是相同的。
这⼉我只是给⼤家写了固定载荷的⽅法,也就是group.equal参数的其中⼀个取值,还有很多可以固定的部分,请同学们参见下图,⾃⼰尝试⼀波:
⼀般情况下,group.equal参数还会和group.partial参数结合起来适⽤,使得我们做组间⽐较的时候更加的⾼效。
作者做了⼀个unconstrained model,⼜做了⼀个fully constrained model,发现fully constrained model是显著地差于unconstrained model的,就说明路径系数⼀定存在组间不⼀致,然后通过路径系数的释放-⽐较-释放的循环过程,最终发现了组间到底是那条系数不⼀致的。⾄此,论⽂的问题2也就解决了。
⼩结
今天给⼤家写了结构⽅程模型的组间⽐较问题,回顾了⼀下测量不变性的做法,希望对⼤家有所帮助。感谢⼤家耐⼼看完,⾃⼰的⽂章都写的很细,代码都在原⽂中,希望⼤家都可以⾃⼰做⼀做,请转发本⽂到朋友圈后私信回复“数据链接”获取所有数据和本⼈收集的学习资料。如果对您有⽤请先收藏,再点赞分享。
也欢迎⼤家的意见和建议,⼤家想了解什么统计⽅法都可以在⽂章下留⾔,说不定我看见了就会给你写教程哦,另欢迎私信。

本文发布于:2024-09-21 13:52:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/362560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   组间   系数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议