中介效应的元分析 2024-03-27 00:57:30 来源:SPSS学堂作者:陈慧萍 中介效应的元分析 此方法将元分析和结构方程模型方法相结合(MASEM),在建立测量模型的基础之上,采用元分析的方法来估计构念间的“真实”相关系数。该方法可以比较不同理论在解释特定变量间关系时的解释力度。例如,以往辱虐管理的研究多采用公平视角和资源视角来解释其对员工组织公民行为(OCB)和反生产工作行为(CWB)的影响。然而,这些研究中并没有研究提供一个全面的视角解释为什么辱虐管理影响OCB和CWB,以及在这两种作用机制中,哪一种更为重要。为了解决此问题,本研究采用427项包含973个独立相关性的实证研究(N = 336,236)为样本,利用元分析-结构方程模型对模型进行分析。研究结果表明,组织公平(公平视角)和工作压力(资源视角)在辱虐管理与组织公民行为和反生产行为的关系中起中介作用。此外,组织公平在辱虐管理和OCB之间的中介效应影响比工作压力的中介效应影响更大,而工作压力在辱虐管理与CWB之间的中介效应影响比组织公平的中介效应影响更大。方法:一、文献检索与选取数据库PsycINFO, Education Research Complete,Psychology and Behavioral Sciences Collection,PsycARTICLES关键研究者文献搜索文献特征编码基于R语言进行数据处理1、主效应+同质性检验2、调节效应检验3、中介效应检验A部分中介B完全中介C嵌套模型D反转模型固定效应模型:真值是一个点(差异小)随机效应模型:真值是一个区间(差异大)注意:交代每一步删除的目的和标准、一定要报告两两相关系数、数量大于20,一个群体只取一个数据,追踪数据一般选第一次,多组数据选取组均值。Metafor 删除异常值metaSEM 中介效应的元分析软件语句:library(metafor)data <- read.table('data2.txt')data##1.计算误差项dat <- escalc(measure='ZCOR', ri=ri, ni=ni, data=data)#2.先检验是否存在异常值,若有异常值,先剔除该研究在进入后学分析inf <- influence(res)### plot the influence diagnosticsplot(inf, layout=c(8,1))### to save as png filepng(filename='plot_of_influence_diagnostics.png', pointsize=10,res=95, width=680, height=1400, type='cairo')##3.拟合固定效应模型res <- rma(yi, vi, data=dat, method='FE')### 4.拟合随机效应模型res <- rma(ri=ri, ni=ni, measure='ZCOR', data=data)英文文献可参考《Why Abusive Supervision Impacts Employee OCB and CWB: A Meta-Analytic Review of Competing Mediating Mechanisms. Journal of Management.》中文文献可参考《父母卷入在家庭社会经济地位与学业成就间的中介作用:元分析结构方程模型》一、数据导入library(metaSEM)library(semPlot)data <- readStackVec('data.txt')n<-scan(file='n.txt')pi<-scan(file='pi.txt', what='')grade<-scan(file='grade.txt', what='')ses<-scan(file='ses2.txt', what='')options(scipen=3),不显示科学计数法二、stage1,计算效应量,即效应量调节效应分析1 计算效应量和同质性检验stage1:fixed1 <- tssem1(data, n, method='FEM')summary(fixed1)2 中介效应分析(这边用中文文献进行参考)STAGE2:估计中介效应部分中介效应模型A1 <- create.mxMatrix(c(0,0,0,'0.1*SES2PI',0,0,'0.1*SES2AA','0.1*PI2AA',0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1SES PI AASES '0' '0' '0'PI '0.1*SES2PI' '0' '0'AA '0.1*SES2AA' '0.1*PI2AA' '0'S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1SES PI AASES '1' '0' '0'PI '0' '0.1*var_PI' '0'AA '0' '0' '0.1*var_AA'S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1SES PI AASES '1' '0' '0'PI '0' '0.1*var_PI' '0'AA '0' '0' '0.1*var_AA'fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB', model.name='TSSEM2',mx.algebras=list( SES=mxAlgebra(SES2PI*PI2AA, name='SES')))summary(fixed2)完全中介模型A1 <- create.mxMatrix(c(0,0,0,'0.1*SES2PI',0,0,0,'0.1*PI2AA',0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB', model.name='TSSEM2',mx.algebras=list( SES=mxAlgebra(SES2PI*PI2AA, name='SES')))summary(fixed2)#相关模型设定A1 <- create.mxMatrix(c(0,0,0,0,0,0,'0.1*SES2AA','0.1*PI2AA',0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1S1 <- create.mxMatrix(c(1,'0.1*cor',1,0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1S1 <- create.mxMatrix(c(1,'0.1*cor',1,0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB', model.name='TSSEM2')summary(random2)my.plot <- meta2semPlot(random2, manNames=c('SES','PI','AA') )semPaths(my.plot, whatLabels='est', nCharNodes=10, layout='spring',color='white', edge.label.cex=1.2)#完全中介反转模型A1 <- create.mxMatrix(c(0,'0.1*PI2SES',0,0,0,0,'0.1*SES2AA',0,0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1S1 <- create.mxMatrix(c('0.1*var_SES',0,1,0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1S1 <- create.mxMatrix(c('0.1*var_SES',0,1,0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB', model.name='TSSEM2',mx.algebras=list( PI=mxAlgebra(PI2SES*SES2AA, name='PI')))summary(random2)my.plot <- meta2semPlot(random2, manNames=c('SES','PI','AA') )semPaths(my.plot, whatLabels='est', nCharNodes=10, layout='spring',color='white', edge.label.cex=1.2)#完全中介模型的分组比较1 比较不同年级的中介模型stage1cluster1 <- tssem1(data, n, method='FEM',cluster=grade)summary(cluster1)A1 <- create.mxMatrix(c(0,0,0,'0.1*SES2PI',0,0,0,'0.1*PI2AA',0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1stage2cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB')summary(cluster2)图形输出:my.plots <- lapply(X=cluster2, FUN=meta2semPlot,manNames=c('SES','PI','AA') )layout(t(1:2))semPaths(my.plots[[1]], whatLabels='est', nCharNodes=10,color='orange', layout='spring', edge.label.cex=0.8)title('elementary')semPaths(my.plots[[2]], whatLabels='est', nCharNodes=10,color='skyblue', layout='spring', edge.label.cex=0.8)title('secondary')2 比较不同父母卷入的中介模型stage1cluster1 <- tssem1(data, n, method='FEM',cluster=pi)summary(cluster1)stage2cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB')summary(cluster2)图形输出:my.plots <- lapply(X=cluster2, FUN=meta2semPlot,manNames=c('SES','PI','AA') )layout(t(1:2))semPaths(my.plots[[1]], whatLabels='est', nCharNodes=10,color='orange', layout='spring', edge.label.cex=0.8)title('home')semPaths(my.plots[[2]], whatLabels='est', nCharNodes=10,color='skyblue', layout='spring', edge.label.cex=0.8)title('school')#部分中介模型的分组比较1 比较不同年级的中介模型stage1cluster1 <- tssem1(data, n, method='FEM',cluster=grade)summary(cluster1)A1 <- create.mxMatrix(c(0,0,0,'0.1*SES2PI',0,0,'0.1*SES2AA','0.1*PI2AA',0),type='Full', byrow=TRUE, ncol=3, nrow=3,as.mxMatrix=FALSE)dimnames(A1)[[1]] <- dimnames(A1)[[2]] <- c('SES','PI','AA')A1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1S1 <- create.mxMatrix(c(1,0,'0.1*var_PI',0,0,'0.1*var_AA'),byrow=TRUE, type='Symm', as.mxMatrix=FALSE)dimnames(S1)[[1]] <- dimnames(S1)[[2]] <- c('SES','PI','AA')S1stage2cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB')summary(cluster2)图形输出:my.plots <- lapply(X=cluster2, FUN=meta2semPlot,manNames=c('SES','PI','AA') )layout(t(1:2))semPaths(my.plots[[1]], whatLabels='est', nCharNodes=10,color='orange', layout='spring', edge.label.cex=0.8)title('elementary')semPaths(my.plots[[2]], whatLabels='est', nCharNodes=10,color='skyblue', layout='spring', edge.label.cex=0.8)title('secondary')2 比较不同父母卷入的中介模型stage1cluster1 <- tssem1(data, n, method='FEM',cluster=pi)summary(cluster1)stage2cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE,intervals.type='LB')summary(cluster2)图形输出:my.plots <- lapply(X=cluster2, FUN=meta2semPlot,manNames=c('SES','PI','AA') )layout(t(1:2))semPaths(my.plots[[1]], whatLabels='est', nCharNodes=10,color='orange', layout='spring', edge.label.cex=0.8)title('home')semPaths(my.plots[[2]], whatLabels='est', nCharNodes=10,color='skyblue', layout='spring', edge.label.cex=0.8)title('school') 赞 (0) 相关推荐 R语言实战(第2版)——第2章-2.2数据结构 #R语言实战 #第2章 创建数据集 #2.2 数据结构 #P21 标量:只含一个元素的向量,用于保存常量 f <- -3 g <- "US" h <- TRUE ... 中介效应是个什么作用? 中介变量(mediator)是自变量X对因变量Y产生影响的中介,如果变量X通过影响变量M来影响因变量Y则称M为中介变量,也就是说自变量X对因变量Y的影响有一部分或者全部是通过中介变量M来发挥作用的.通 ... 计量社群里关于使用交互项还是中介效应分析开展机制研究的讨论 计量社群里关于使用交互项还是中介效应分析开展机制研究的讨论,当然,至于观点的正确性或准确性需要进一步确认. med4way:中介效应和交互效应分析 med4way:中介效应和交互效应分析 JASP案例实践:简单中介效应分析 我想考察有用性对满意度的影响,以及趣味性在有用性对满意度影响中的中介作用. 这三个研究变量均为连续数据.使用JASP 0.14.1 进行中介效应分析,暂不考虑控制变量. JASP在中介分析上很好操作, ... 经典方法|中介效应检验程序、操作应用 实证财会与治理 6篇原创内容 公众号 原文出处:<心理学报>,作者:温忠麟等 中介效应检验程序及其应用 摘 要 讨论了中介变量以及相关概念.中介效应的估计:比较了检验中介效应的主要方法;提 ... 刚做测试!JASP0.14暂不支持分类自变量的中介效应分析 上周我在JASP课程中发布了JASP实现简单中介效应的视频课时,优势很明显,统计结果还有可视化均有不错表现,不比process插件差. 刚测试分类自变量的中介效应分析,软件立即提示不支持多分类的自变量 ... 再论中介模型滥用:如何规范地实施因果中介效应分析|因果中介效应估计、敏感性分析、工具变量模型因果中介... 近年来,大量的经济学论文滥用中介效应模型,参考文献是一遍中文心理学论文,特别以硕士论文居多,引起严肃经济学者的警觉和批评. 在这个方程组中有很多的问题存在: y=a+bx+u (1) m=a ... 中介效应分析新进展和检验方法 关于下方文字内容,作者:李松泽,中央财经大学中国经济与管理研究院,通信邮箱:964916858@qq.comZhao, Xinshu, et al. "Reconsidering Baron ... 中介效应分析的Sobel检验怎么做? 来源:SPSS统计训练营 温忠麟老师在2014年的论文中提到,Bootstrap 法是公认的可以取代 Sobel 法而直接检验系数乘积的方法 .因此论文中新提出的中介效应检验程序,明显已经没有Sobe ...