在上一期推送中,我和大家详解介绍了“MendelianRandomization”包的输入文件以及其IVW方法,在这一期的推送中,我会和大家简单介绍一下这个包的median-based方法,希望能把它作为对IVW方法的补充。
代码语言:javascript复制library(MendelianRandomization) #加载R包
MRInputObject <- mr_input(bx = ldlc,bxse= ldlcse,by = chdlodds,byse = chdloddsse) #指定输入文件
WeightedMedianObject1 <-mr_median(MRInputObject,weighting = "weighted",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)
在mr_median()函数中,第一个参数就是一个input对象,也即MendelianRandomization包的输入对象。
参数weighting有三个输入值,分别为“simple“,”weighted“和”penalized“,第一个方法不对估计出来的中位数加权,后俩个是加权的。这里可以简单提一下,不加权的计算方法是,先采用Wald ratio估计方法算出单个SNP的MR估计值(theta = betaY/betaX),然后把这些个估计值由小到大进行排序,取中位数作为最后的MR估计值。不过,加权的方法是根据每个SNP的betaX和betaYse来计算权重,然后对Wald ratio估计出来的中位数加权计算。另外,”penalized“的加权法是降低异常SNP的权重,和IVW里的思想一致。
参数distribution的含义和IVW里的一样,用于指定置信区间的估计方法,“normal”表示用正态分布估计置信区间,“t-dist”代表用T分布来估计。
参数alpha代表的是统计学显著性。
参数iterations表示使用bootstrap方法的迭代次数,在median-based的方法中,我们使用bootstrap法来估计最终计算出的中位数的误差。
参数seed表示产生bootstrap样本的随机种子,默认值为314159265,这样可以方便结果的可重复性。
在WeightedMedianObject1中,我们使用加权法计算出最后的结果如下:
代码语言:javascript复制WeightedMedianObject1
从上图中我们可以看出结果显著,并且LDL的升高可以增加CHD的发病风险。
接下来,我们使用“penalized“加权法:
代码语言:javascript复制WeightedMedianObject2 <-mr_median(MRInputObject,weighting = "penalized",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)
WeightedMedianObject2
这里我们不难看出,“weighted“和”penalized“的估计结果几乎没有差别。
接下来,我们不采用加权法来计算一下结果:
代码语言:javascript复制WeightedMedianObject3 <-mr_median(MRInputObject,weighting = "simple",distribution ="normal",alpha = 0.05,iterations = 10000,seed = 314159265)
WeightedMedianObject3
从上图不难看出,不加权的话,结果虽然仍然显著,但是估计出来的误差较大。
接下来,我们在加权模型下增加迭代次数(iterations):
代码语言:javascript复制WeightedMedianObject4 <-mr_median(MRInputObject,weighting = "weighted",distribution ="normal",alpha = 0.05,iterations = 100000,seed = 314159265) #修改iterations参数为100000
WeightedMedianObject4
从上述结果中我们不难看出,在同一种模型(比如加权模型)之下,增加bootstrap的迭代次数,可以减少误差,使得结果更加准确,但是增加迭代次数之后,计算量会显著增大,计算时间会相应延长,这时候需要我们平衡一下,从米老鼠的经验来看,迭代次数控制在50000~100000就够了。
讲到这里,相信大家应该明白如何使用median-based的方法了,从米老鼠的经验来看,median-based方法的核心思想就是采用所有SNP的wald ratio估计值的中位数作为最终的MR效应值(可以加权也可以不加权),这样的话就能很好避免异常SNP(outliers)对结果的影响,使得结果更稳健。尤其是当IVW估计的结果有很大的异质性时,这时候median-based方法就显得尤为必要了。
好了,关于”MendlianRandomization“包的median-based方法就和大家讲到这里,希望大家能明白这个方法的原理并能熟练使用。