查看原文
其他

元分析高阶篇:中介模型分析—R metaSEM的运用

荷兰心理统计联盟 荷兰心理统计联盟 2023-02-03

点亮小星星 科研路上我们一起前行!

01

写在前面

元分析因为能对于某个领域进行系统性的归纳,或解决研究中的不一致地方,高引用,往往受到编辑和期刊的喜爱。不难发现很多顶刊如JAP, JOM, Personnel Psychology, 经常会看到某个主题的元分析。然而,正因为其受欢迎,导致很多研究者趋之若鹜,也就造成出来结果往往良莠不齐,想要发表在好的刊物绝非易事。所以各类元分析的研究者,为了发好刊物,真是八仙过海,显各种手段,什么multilevel meta, network meta, meta-SEM 怎么复杂怎么搞。如果读近些年发表的元分析尤其管理学这一块,就会发现越来越多的看到使用元分析的路径分析


举个例子 (Bilgili, Calderon, Allen, & Kedia, 2017)。从目前发的一些文章来看,利用metaSEM的手段检验两个变量之间不同的中介模型是目前比较流行的做法。如Zhang Yucheng 等人关于abusive supervision 检验了组织公平和压力对于结果变量的影响 (Zhang et al., 2019)。Porter 等人检验了expressive degree centrality 对于员工离职意愿的多个路径。


来源:Porter, Woo, Allen, & Keith, 2019


还有一些其它metaSEM 的例子……


看起来这些文章都发在十分不错的期刊上,然而由于其方法的复杂性,使得很多人望而却步。对很多人而言元分析就已经很麻烦了(编码,搜集文献工作量浩繁,加上写作往往耗时数年),再要是加上结构方程模型……真的是...其实零几年甚至更早就已经有人在做,但是方法确实非常复杂导致并不是十分普遍。然而,随着R的普及,用R的一个包metaSEM实现起来并不是那么困难(但也绝不简单),你需了解其基本步骤,读懂代码,把例子中的代码改变为你自己的研究,就可以完成。所以,这篇文章就带大家走入meta SEM,揭开这一方法的神秘面纱。并探讨元分析的样本量大小问题,power 如何用R计算,及publication bias 检测的trim and fill method演示。

02

实例演示R metaSEM

如果要找到相关的资料,cheung发表了很多篇相关文章,然而你也不知道读哪一篇,所以你想不如一次性的把他编的那本书meta-analysis A Structural Equation Modeling给读完拉倒。。。。


啃了五百多页的统计书,代码也反复用书中的例子试了很多遍,你觉得信心满满……然而你迫不及待的想要把他的代码应用到自己研究的时候就发现,第一步就会出错。发现数据总是不对。此时读了五百多页统计书就像是开了个玩笑。。。


所以,对于初级学者不建议读他的那本书。我在初级R元分析那篇文章中也 简单提了一下,那本书不太适合初级者,公式推导不说,第一步数据准备你就完全不知道如何着手。


在这里推荐另一本是他的学生写的,Meta-Analytic Structural Equation Modelling相对user-friendly, 比较通俗易懂,实操性更强一些。这篇文章我也以她提供的代码和数据进行演示。



2.1 数据准备

2.1.1 读取数据


用到的R package“metaSEM”也是cheung2014年开发的。

有三种数据读取方式:

  • readFullMat() , 读取相关系数矩阵。

  • readLowTriMat(),读取那种相关系数表

  • readStackVec()用于读取按照列排列的数据,也就是我们最为常见的coding的数据,如下图:


所以你如果用cheung书中的代码,因为他都是用 matrix, 我们自己数据上图在导入的第一步就会出错,或者没有错,但是你按照他的代码分析(数据格式不对情况),出来结果十之八九是错误的,可能R读取了错误的数据


来源:Cheng, 2015, p.166



下面进入正式R分析:首先设置工作路径 (当然如果你还没有安装R、Rstudio,以及不知道如何设置工作路径,建议你先读下元分析基础篇,有十分详细的介绍),按照好需要的R包metaSEM。

  • install.packages("metaSEM")

  • library("metaSEM")


然后,读取数据,用Head简单查看数据,确保数据读入没有出错。



接下来,创建适合metaSEM分析的数据矩阵。如果对于这点有疑惑,简单说一句,其实结构方程模型在Mplus里也是有两种方式实现,一种是原始数据,另外一种就是相关系数矩阵。也就是根据一篇文章中的correlation Table, 就能进行SEM分析 (见下图简单的mediation model)。


所以其实原理一样。因为元分析我们只有correlation table, 所以我们只能选择第二种。


2.1.2 创建correlation matrix


根据自己研究的变量数目,设置对应地number variable;然后告诉R变量名,比如这里的就是positive emotion, negative emotion, engagement, achievement;然后读取第3-8列的数据,6列数据,创建4*4 相关系数矩阵,缺失值用na代替。



Diag = false, 表示diagnonal 1 are not given in the data. 因为,单个研究往往并非测量所有的变量,所有在创建相关矩阵的时候,就需要对缺失值进行,设定,以下就是将缺失值设定为NA.



2.2 Fixed effects analysis

简单看模型拟合指数CFI, TLI, 小于0.8, RMSEA指很高,模型拟合较差。然而异质性差异显著,所以这里进行subgroup 分析,根据社会地位social status, 高低,看是否能解释部分的异质性heterogeneity。


可以看出在高社会地位组,卡方值显著,模型拟合指数有了提高。但因为目前发表文章主要以random effect, 这里只是为了比较。下面进行random effect 模型分析。



2.3 Random effects analysis

随机效应模型Q检验显著,说明异质性显著。说明不同研究之间相关系数矩阵确实存在显著差异。接下来,就进入下一步正式的metaMediation 分析。要进行分析的是下面这个模型,先来看看:

来源:Jak, 2015

简单来说就是四个变量:2个自变量,1个中介变量,一个因变量。



2.4 Meta Mediation

里面的31,32,43代表上图的回归的系数,因为要指定路径,again这点要根据你自己的研究进行设定。0.1, start value,A matrix是设定模型;接下来S matrix 设定模型中的variance, and covariance.



2.4.1路径分析

LB = Likelihood;

模型拟合明显有了提高;得到了各个路径系数,然而,这只是回归,还没有中介分析


2.4.2 中介分析


运行得到结果,如下:

Ind表示中介,还有对应的回归系数。


中介演示完毕。


03

元分析中的样本量及效应量


3.1 样本量


来源:Field, A. P. (2001). Meta-analysis of correlation coefficients: A Monte Carlo comparison of fixed-and random-effects methods. Psychological Methods, 6, 161-180. http://dx.doi.org.proxy.library.uu.nl/10.1037/1082-989X.6.2.161


Field, A. P. 2005. Is the meta-analysis of correlation coefficients accurate when population correlations vary? 

Psychological Methods, 10: 444-467.




3.2 效应量的计算

https://towardsdatascience.com/how-to-calculate-statistical-power-for-your-meta-analysis-e108ee586ae8


另外,当时介绍元分析的初级篇其实主要也是依据他的代码改编。对于实验研究的power 计算,可以通过R实现,但是对于问卷相关研究,目前我尚不了解。

因为一些挑剔的审稿人会问到这些……所以在这里提一下。毕竟我们的目标是top tier journal.


04

Trim and fill

关于publication bias,基础篇里只介绍了funnel plot,但是那个会被人argue,目前比较推荐的是trim and fill (Aguinis, Gottfredson, & Wright, 2011)。用R 的Metafor 就可以实现。

来源:Aguinis, H., Gottfredson, R. K., & Wright, T. A. (2011). Best-practice recommendations for estimating interaction effects using meta-analysis. Journal of Organizational Behavior, 32(8), 1033–1043. https://doi.org/10.1002/job.719



虽然有几种可以计算R0和L0比较推荐。

参考文献,引用这几篇:



不转发一下对得起作者读的几百页统计书,

上百篇元分析文献吗?。。。

(后台回复截图即可获得本文全部代码)


本文作者李培凯

编辑杨伟文


我们下期再见~



热门推荐:

心理学及相关领域R语言自学资料索引

元分析所用R全部代码及详细解释

R语言:贝叶斯因子方差分析--理论与实操

多水平数据分析:R、Mplus和 HLM 应用对比

...

更多热门文章等你发现!



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存