本篇记录下用stata进行中介分析,其中,自变量,中介变量和因变量均为连续变量。
中介分析可以用命令sem
,即进行结构方程模型也是用这个命令,只不过中介分析没有测量模型而已。
其中,自变量(X)为EC
,中介变量(M)为SDO
,因变量(Y)为forei
。
1. 命令sem
// 中介分析,报告标准化系数
sem (EC -> SDO, ) (EC -> forei, ) (SDO -> forei, ), standardized nocapslatent
// 估计直接效应,间接效应,总效应,且报告标准化系数
estat teffects, standardized compact
// 报告x到M的a路径的标准化系数
//X-M:a
estat stdize: nlcom [SDO]_b[EC]
// 报告M到Y的b路径的标准化系数
//M-Y:b
estat stdize: nlcom [forei]_b[SDO]
// 报告控制M之后,X对Y的影响,c'路径的标准化系数
//X-Y:c'
estat stdize: nlcom [forei]_b[EC]
// 报告X到Y的间接效应,ab路径的标准化系数
//IE: ab
estat stdize: nlcom [SDO]_b[EC]*[forei]_b[SDO]
// 报告X到Y的总效应,c'+ab路径的标准化系数
//TE: c'+ab
estat stdize: nlcom [forei]_b[EC]+[SDO]_b[EC]*[forei]_b[SDO]
结果如下,可以看到,报告的是标准化系数,X到M结果显著,M到Y显著,控制M之后,X到Y不显著了。
sem1.png
对直接效应,间接效应和总效应进行估计的结果如下,最后一列为标准化系数,但是,没有相应的z值,和95%CI
estat.png使用命令estat stdize
可以得到不同路径相应的标准化统计量。
路径a,b和c’的结果如下:
abc'.png路径ab和总效应结果如下:
ab总.png2. 命令medsem
此外,还有个命令可以直接报告中介效应结果,即medsem
medsem, indep(EC) med(SDO) dep(forei) zlc rit rid stand
结果如下,报告了两种检验中介效应的方法,以及中介效应是否存在的结论。
medsem.png通过命令help medsem
后可以详细了解该命令。
3. 命令bootstrap
除了上述提到的两种检验中介效应的方法外,还有bootstrap法。
具体介绍可参见文献:
Fritz, M. S., & MacKinnon, D. P. (2007). Required Sample Size to Detect the Mediated Effect. Psychological Science, 18(3), 233-239.
stata的实现方式是:
// 获取间接系数
capture program drop indireff
program indireff, rclass
sem (EC -> SDO, ) (EC -> forei, ) (SDO -> forei, ), standardized nocapslatent
estat teffects, standardized compact
estat stdize: nlcom [SDO]_b[EC]*[forei]_b[SDO]
return scalar ab=r(b)[1,1]
end
// 设置随机种子
set seed 358395
// 估计间接系数,bootstrap抽取5000个样本
bootstrap r(ab), reps(5000): indireff
estat bootstrap, percentile bc
抽取5000个样本,时间有些长,得等会儿……结果如下:
bootstrap.png
网友评论