孟德尔随机化之IVW和MR-Egger方法简介

2022-08-21 16:32:33 浏览数 (1)

今天和大家简单介绍一下孟德尔随机化研究中最常用的两种方法:逆方差加权法(inverse-varianceweighted,IVW)和MR-Egger法。

在讲述之前,我想先和大家介绍一下我们进行MR分析的必要数据,这个数据必须至少包括5列信息:SNP列;暴露的beta值;暴露的se值;结局的beta值;结局的se值。这里的beta值就是SNP对表型(暴露或者结局)的效应量,se是beta值的标准误(standarderror)。这里或许有人会问,为什么我们不需要P值呢?这主要是因为我们可以用beta和se来直接计算P值,具体R语言代码如下:

代码语言:javascript复制
pval <- 2 * pnorm(abs(b/se), lower.tail=FALSE)

这里b表示beta值,se表示标准误。

当然我们必须要保证暴露和结局的效应等位基因(effect allele)一致。对MR研究特别熟练的朋友可以只使用这5列信息进行分析,但是如果是新手的话,我推荐大家使用“TwoSampleMR”这个R包提供的分析流程,这个我会在后续推送中详细介绍。

IVW法

该方法中文叫做逆方差加权法,它的特点是回归时不考虑截距项的存在并且用结局方差(se的二次方)的倒数作为权重来进行拟合,具体的R语言代码如下:

代码语言:javascript复制
fit <- summary(lm(b_out ~ -1  b_exp,  weights = 1/se_out^2))

代码里的b_out表示结局的beta值,b_exp表示暴露的beta值,se_out就是结局的标准误,se_out^2就代表结局beta值的方差,而模型中的-1表示的就是去除截距项。R语言里lm()函数表示拟合线性模型(linear model),summary()函数是用来汇总回归模型拟合的结果。关于R语言的相关信息,请参考往期推送R语言入门系列和R语言进阶系列。那么这次回归得出来的beta,se和P值就是MR分析的结果。

MR-Egger法

MR-Egger法与IVW最大的区别就是回归时考虑截距项的存在,另外它也使用结局方差(se的二次方)的倒数作为权重来进行拟合,具体的R语言代码如下:

代码语言:javascript复制
fit <- summary(lm(b_out ~ b_exp,  weights = 1/se_out^2))

这个代码和IVW的非常相似,区别就在于少了-1,这是因为R函数lm()里默认回归模型保留截距项。同样地,这次回归得出来的beta,se和P值就是MR分析的结果。

其实我们不难看出,IVW和MR-Egger这两个的核心算法都是很简单的,两者最大的区别就是回归时是否考虑截距项的存在。

在IVW的假设中,我们认为这些SNP(也称IV)是没有多效性的,同时考虑到GWAS的结果多为表型标准化后做出来的,所以我们认为结局和暴露之间是正比例关系。因此,我们在使用IVW方法必须要保证这些SNP没有多效性,否则结果会有很大的偏倚。

在MR-Egger的假设中,我们考虑截距项的存在,并用它来评估多效性。如果该截距项和0非常接近,那么MR-Egger回归模型就和IVW非常接近,但是如果截距项和0相差很大,那就说明这些IV间可能有水平多效性存在。

不知大家有没有明白这两个计算方法?如果还是不太明白的话,可以后台留言提问,米老鼠会及时为大家解答的。另外,如果想加入孟德尔随机化交流群的朋友,也可以私信米老鼠。

0 人点赞