中介本身就是回归,基本上我看到的很多的调查性研究中在中介分析的方法部分都不会去提混杂,都是默认一个三角形画好,中介关系就算过去了,这里面默认的逻辑就是前两步回归中的混杂是一样的,计算中介效应的时候就自动消掉了。 但是,实际上对不对,还是有待具体分析的:
孟德尔随机化作为一个天然的免去混杂的方法,和中介结合,整个中介又变得更纯净了,是一种更加值得推崇的中介做法,也是孟德尔随机化研究的必要的延申。 今天给大家介绍孟德尔随机化中介分析的两个方法multivariable MR (MVMR) and two-step MR 先回顾中介作用中介分析的基本的概念,就是大家熟悉的三角形: c是总效应,加上中介变量后,A*B是间接效应,C'是直接效应,有总效应=间接效应+直接效应。 上图中如果总效应,直接效应和间接效应方向都相同的情况下,我们还可以报告中介效应比例,为间接效应比上总效应。 上面的图中的中介效应成立依赖几个假设: 首先就是没有混杂,包括变量之间没有混杂(或者像前面写的直接抵消);暴露不会造成额外混杂;暴露和中介变量没有交互。 再看孟德尔随机化的优势之一就是不受混杂影响,得到纯净的效应,所以将孟德尔随机化延伸一步去探究中介有天然优势。
multivariable MR按照传统的回归中介的做法思想,我们如果可以跑多变量孟德尔,就可以做出中介分析的结果,具体就是两个暴露的孟德尔,一个是我们关心的暴露,另一个是中介。
跑多变量孟德尔后我们就可以得到中介模型中的直接效应: 就是说这样子跑下来我们就可以得到下图中的c'(直接效应)和B: 再加上我们单独跑一个暴露到结局的孟德尔,我们就有总效应了,利用总效应减去直接效应我们就可以得到间接效应(有了b,a也就出来了),整个中介分析就跑完了,这个就是多变量孟德尔跑中介分析的逻辑。
Two-step MR此方法也可以用来计算中介,分为两步,第一步是计算暴露对中介变量的效应得到a,第二步是计算中介到结局的效应得到b,然后两系数相乘得到中介效应。 用总效应(单独跑一个暴露到结局的孟德尔,我们就有总效应了)减去中介效应后得到直接效应,到这儿所有的系数都有了。
普通的回归肯定是不能这么做的(要得到系数B必须控制暴露),但是我们是跑的孟德尔,就意味着此时的我们跑出来的暴露到中介的效应A是纯净的,相应地B也是纯净的,所以我们才能这么跑。 两步孟德尔在跑的时候要注意,第二步使用的工具变量需要排除第一步就使用过的,因为合格的工具变量本身就不能重复,按理说两步的工具变量本身不应该存在重复,所以如果有重复在第二步的时候得排除掉。
上面两种方法都是孟德尔中介做法的思想,具体到操作上会有一些问题,比如用MVMR我们得到直接效应,用总效应减去直接效应我们其实只能得到间接效应的点估计,同样的,Two-step MR也存在这个问题,我们只能得到间接效应的点估计,怎么求标准误,和置信区间是在实操中要解决的问题。 下面给大家介绍几种解决方法。 delta方法上面的流程跑通之后,对于中介分析,我们需要报告间接效应的估计值和置信区间,还有中介比例的估计值和置信区间,类似下面的这样: 但是其实我们是光跑孟德尔是得不到上面的需要的值的(比如间接效应的标准误,中介比例的标准误),此时需要借助的方法之一叫做delta method。
delta method可以帮助我们得到ab相乘的标准误,从而算出中介效应的置信区间。 也就是说我们知道了A,B路径的点估计和标准误,根据上面的公式就可以得到间接效应的置信区间,在R中实现起来也容易的,使用RMediation包,这个包作者有开发shiny应用,输入A,B的估计值和标准误就可以得到间接效应的估计值和标准误和置信区间了(下图圈内): bootstrap方法bootstrap方法也可以用来帮助我们计算中介效应和中介比例的置信区间:
bootstrap基本思路是对原来的分析数据进行有放回的随机抽样形成抽样数据集,bootstrap1000次就会形成1000个抽样数据集,每个抽样数据集都可以算我们需要的统计量,这样统计量的分布就出来了,也就有了置信区间。 bootstrap对象生成后计算中介效应和中介比例部分代码见下: 通过bootstrap形成比如1000个统计量的分布后,取0.025,0.975百分位就是95置信区间. 此处我们再补一个bootstrap过程的例子,在做bootstrap的时候我们需要用到boot函数,主要参数就3个: 其中最重要的就是我们需要计算的统计量statistic,这个是以函数的形式给出的,并且该函数接受不少于2个参数,一个是数据,另一个是抽样的indices。 为了对比我先将跑的孟德尔随机化的结果贴出来: 结果中有正常跑出来的b和对应的se,我通过bootstrap再将5个se跑出来,作为对比演示,代码如下:
上面的代码中mr_function是我要喂给boot函数的statistic参数,在mr_function已经申明了我返回的值,也就是我要bootstrap的统计量是MR结果的b,所以运行完了会出来5个b的bootstrap的SE。 因为计算时间太长,上面就只设置了抽1000个数据集,数据不算很密,看看情况: 可以看到5种方法的系数的bootstrapt标准误都出来了,但是t3也就是IVW方法的标准误通过bootstrap是最接近原来值的,这应该也是为什么报告中介都是依照IVW的系数的原因之一。 上面演示的目的只是bootstrap的做法过程,实际我们需要改动mr_function中的return为我们需要的统计量,也就是中介效应和中介效应占比。 Propagation of error再计算中介效应和中介比例的置信区间时也可以用误差传染法,比如下面这篇文献: 这个方法比较好理解,顺带也给大家介绍一下
误差传染法的计算积的标准差的过程如下: 完全是初中的多项式乘法,中间涉及到把较小的项删掉,应该看懂没问题,这儿就不写解释了。商的标准差计算如下: 中间过程涉及到高中的极限,总体也不难,上面的方法就是“误差传染法”Propagation of error。掌握积和商的标准差的算法后,我们在用Two-step MR得到a和b之后就可以用积的标准差算法得到中介效应ab的置信区间,相应地用商的标准差算法可以算出中介占比的置信区间。 上面介绍的方法帮助我们计算出来标准误后通过正态近似后和界值对比即可得到相应的p值,比如中介效应分布画出来后和界值0对比,分布曲线下横轴和0轴曲线下面积即为p值。 整个的孟德尔随机化中介就给大家分享完了。 小结今天给大家写了孟德尔随机化分析做中介的原理思路和中介效应的计算方法,感谢大家耐心看完,自己的文章都写的很细,重要代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先记得收藏,再点赞分享。 也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,有疑问欢迎私信,有合作意向请直接滴滴我。 如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、模型构建,科研统计设计等发愁,如果你在使用SPSS, R,Mplus中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。 如果你对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... If You or Your Research Team Need Professional Scientific Data Cleaning, Model Building Services or Statistical Consulting... Please Contact Me. |
|
来自: CodewarCodewar > 《待分类》