Bioinfo01-孟德尔随机化

2022-05-19 11:23:58 浏览数 (1)

前言

这是我之前关于孟德尔随机化相关课题的一个简单笔记。其中包括了关于孟德尔随机化的简单介绍,以及一些one-sample MR 的R 语言实战。

之前也上传到gitbook 上了:1-复杂的关联性研究 - Peng的孟德尔随机化笔记[1]

1-复杂的关联性研究

y = α βx ε

尝试通过简单回归,来判断x 与 y 的关系。

可是这样做,都不能排除潜在的(potential confounders,C)、无法测量的混杂因素(unmeasured confounders,U)的影响。

它们可能同时会对x 与y 产生影响。

举例来说,如果想要研究教育程度(接受教育年份)对未来收入(薪资)的影响,我们的确可以对二者进行回归,假定我们也的确发现了二者的相关性。

但此时,我们得到的相关系数beta,并不能用来评价这个教育程度对未来收入的影响。因为还有很多的混淆因素,并没有被考虑,比如家庭背景等等。

因此,这样得到的相关有非常大的“虚假关联”的可能。这里换个例子,比如说,我们发现冰淇淋的销量增长,溺水的人数也在增长,直觉上我们就可以发现有一些不对劲,如果你得到结论,“冰淇淋销量与溺水人数是正相关的”,我们不可以再卖冰淇淋了,那么这里就落入了虚假关联的圈套。比如说,这里“温度“就是一个混淆因素:温度升高,买冰淇淋的人多了,冰淇淋销量升高;人们同样为了解暑,去游泳的人多了,那么溺水的人数自然也就上升了。

此外,小时候在院子里种了一棵桃树,随着时间的推移,你的个子在长,桃树也在变高,如果说“我长桃树也长”是有关系的,那么同样也是被”虚假关联“给骗了。这里的混淆变量是什么呢?

如果去探索医学科研中的“暴露”与“结局”之间的因果性呢?比如控制变量,比如广泛收集每个样本的各种暴露与结局?

然而,现实研究的案例,往往比上述案例要复杂。我们也未必能确定这些混淆因素的种类;另外,即便我们收集了这些混淆因素,我们也不便对它们控制变量。

那么我们该如何进行呢?

队列虽好,却是可望不可及的。而更加省时省力的病例对照研究,受限于其研究设计,只能得到相关系,而无法得到因果性。为了解决这一问题,统计学家们就设计了孟德尔随机化(Mendelian Randomization, MR)。——孟德尔随机化 | Mendelian randomization - Life·Intelligence - 博客园 (cnblogs.com)[2]

2-工具变量

如果这时候,我们可以找到一个变量Z,它与我们研究的X (暴露因素) 高度相关(强相关),甚至只与它相关;且这个Z 与我们研究的Y(结局变量)有非常大的相关性。

那么我们就可以利用这个变量Z,来研究X 和Y 的关系,同时排除其他的无关混淆变量的干扰。

这里,这个变量Z 就是一个工具变量(instrumental variable,Ⅳ)。

而这个工具变量的选择,也有一些限制:

  • 变量X与Y之间的关联一定会受到潜在混杂因素U的影响,但工具变量Z与变量X以及Z与变量Y之间无潜在混杂因素影响;
  • 变量X与结局Y之间的关联无法直接观察获得,因为无法直接测量变量X,但是Z是可测量的,并且Z与X直接的关联是已知的或者可测量的,并独立于其他因素而存在;
  • 工具变量Z与结局变量Y无关联,Z只能通过变量X与Y发生关联。

目前,工具变量已广泛应用于计量经济学中,研究如上述提到的研究教育程度(接受教育年份)对未来收入(薪资)的影响等。

那么,什么是孟德尔随机化呢?

3-孟德尔随机化

3.1-介绍

虽然说这个方法叫做”孟德尔随机化“,也确实因为这个名字困惑了我一段时间,但实际上,它相比起我们所熟知的孟德尔的遗传规律,其主要作用还是在于相关与因果推断上。

我们姑且可以将孟德尔随机化(Mendelian Randomization,MR)理解为工具变量在流行病学与生物医学上的推广。

为什么叫孟德尔随机化呢?因为我们选择的基因变异,遵循“亲代等位基因随机分配给子代”的孟德尔遗传定律,通过测量遗传变异与暴露因素、遗传变异与疾病结局之间的关联,进而推断暴露因素与疾病结局之间的关联。

遗传变异作为工具变量有以下优点:

  • 易于准确测量,比如得到具体的SNP突变;
  • 并且不受外界环境、社会行为等因素的影响,属于长期而稳定的暴露因素(无混杂因素干扰)。

3.2-与随机对照试验比较

孟德尔随机在实验设计上也是和随机对照试验高度相似的。

在随机对照实验上,我们通过随机、盲法、对照试验,保证组间的可比性,以消除不同个体差异的干扰;而在孟德尔随机化中我们认为等位基因的分配就是一个天然的随机过程,所以如果我们找到了影响暴露的等位基因,此时我们选择不同基因型的个体进行比较就可以直接得到暴露所造成的效果。

那么我们为什么不直接使用随机对照试验,而“多此一举”的进行孟德尔随机化呢?

个人理解主要还是受限于人类医学伦理和诸多试验设计的局限。如果想要研究某药对治疗某病的效果,我们确实可以让治疗组与安慰剂组对比;但如果是酒精对心血管疾病影响,我们不可能强迫让试验人群酗酒,并查看其心血管疾病影响。

然而,我们却可以找到和酒精代谢高度相关的基因ALDH2,查看该突变结果;在人群中,我仅需要根据ALDH2 的突变类型将他们进行分组,研究二者的结果(心血管疾病发生)即可。

ps:这里我自己理解上还是有一些问题。

除了上述提到的SNP突变外,其他突变类型如INDEL(插入、缺失),或是CNV(拷贝数变异)等其他类型的变异,理论上都可以作为工具变量,应用于孟德尔随机化上。

3.3-MR的工具变量选择

建立遗传工具变量的方法一般包括两种。

  • 选择与目标暴露因素有直接强关联(robust)的遗传变异,如与血清CRP水平直接相关的CRP基因变异(SNPs),与酒精代谢直接相关的乙醇脱氢酶1b(ADH1B)基因变异,与白介素6受体水平相关的IL6R基因变异等;
  • 从全基因组关联研究(genomic wide association study,GWAS)数据库获得遗传工具变量。目前全球GWAS研究目录显示(http://www.ebi.ac.uk/gwas/)超过1万条有潜在功能学意义的SNP,其中许多的SNPs与相应表型有唯一关联,可以从中筛选合适的工具变量。我们可以结合多个SNP 作为工具变量。

4-单一样本孟德尔随机化

单一样本孟德尔随机化(One-sample MR),利用单一研究样本,即暴露与结局信息来自于同一类型样本。

其核心思想还是由Z-X和Z-Y的关联来推断X-Y的关联:

目前进行单一样本孟德尔随机化的方法包括:

  • Multiplicative structural mean model (Robins, 1989; Hernán and Robins, 2006[3])
  • Two-stage predictor substitution estimators (Terza, 2008[4])
  • Two-stage residual inclusion estimators (Terza, 2008[5])
  • two-stage least-squares regression[6]

囿于我的统计学水平有限,这里以two-stage least-squares regression(两阶段最小二乘法),进行介绍。

5-两阶段最小二乘法

比如我们想要研究教育程度(接受教育年份,暴露因素X)对未来收入(薪资,结局变量Y)的影响。

这里我使用ivreg 中的数据集:

代码语言:javascript复制
data("SchoolingReturns", package = "ivreg")
my_data <- SchoolingReturns[, 1:8]

Rows: 3,010
Columns: 8
$ wage        <dbl> 548, 481, 721, 250, 729, 500, 565, 608…
$ education   <dbl> 7, 12, 12, 11, 12, 12, 18, 14, 12, 12,…
$ experience  <dbl> 16, 9, 16, 10, 16, 8, 9, 9, 10, 11, 13…
$ ethnicity   <fct> afam, other, other, other, other, othe…
$ smsa        <fct> yes, yes, yes, yes, yes, yes, yes, yes…
$ south       <fct> no, no, no, no, no, no, no, no, no, no…
$ age         <dbl> 29, 27, 34, 27, 34, 26, 33, 29, 28, 29…
$ nearcollege <fct> no, no, no, yes, yes, yes, yes, yes, y…

代码部分简单带过,这里主要以原理介绍为主。

我们首先发现教育程度与未来收入确实是显著相关的p-value: < 2.2e-16

代码语言:javascript复制
> summary(lm(formula = wage ~ education, data = my_data))

Call:
lm(formula = wage ~ education, data = my_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-576.09 -173.36  -34.12  127.82 1686.25 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  183.949     23.104   7.962 2.38e-15 ***
education     29.655      1.708  17.368  < 2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 250.7 on 3008 degrees of freedom
Multiple R-squared:  0.09114, Adjusted R-squared:  0.09084 
F-statistic: 301.6 on 1 and 3008 DF,  p-value: < 2.2e-16

接下来,我们就要使用两阶段最小二乘估计,来定量估计暴露因素X与Y之间的关联效应大小。

两阶段最小二乘估计分为两个阶段,第一阶段是将自变量的变异分解,使用工具变量对暴露因素建立回归;第二步再通过暴露因素预测值(predicted value,P)构建和结局变量Y之间的回归方程。

比如说这里我们发现有一个变量,即距离学校距离是否近。我们发现,与学校距离远近,不仅与教育程度(接受教育年份,暴露因素X)相关,它同样与未来收入(薪资,结局变量Y)相关。那么,这里学校距离远近就是一个潜在的工具变量。

5.1-第一阶段

我们首先需要明确工具变量对暴露因素的作用。

这里首先需要构建Z-X 回归模型:X = α dZ ε。除了要看工具变量以外,还要加上外生变量做回归。

这里主要有两个目的:

  • 明确工具变量对自变量的作用,看该变量与我们的自变量(暴露因素)之间是否是高度相关的;
  • 获得暴露因素预测值,以作为第二阶段的自变量。

5.2-第二阶段

第二阶段就是用工具变量对自变量的预测值来估计回归系数:Y=α βX(Z对X的预测值) ε

因此这个式子实际可以合并为Y = α dZ ε

即:

6-R语言最小二乘法实战

其实R 包ivreg已经提供了方法进行最小二乘法(2SLS),不过为了了解整个R 的操作过程,这里我还是使用最基本的lm 进行二次拟合,实现整个过程。

6.1-准备与获得数据

这里我使用ivreg 中的数据集:

代码语言:javascript复制
my_packages<- c("ggplot2", "tidyverse", 
                "RColorBrewer", "paletteer", "ivreg")
tmp <- sapply(my_packages, function(x) library(x, character.only = T)); rm(tmp, my_packages)
data("SchoolingReturns", package = "ivreg")
my_data <- SchoolingReturns[, 1:8]
glimpse(my_data)

Rows: 3,010
Columns: 8
$ wage        <dbl> 548, 481, 721, 250, 729, 500, 565, 608…
$ education   <dbl> 7, 12, 12, 11, 12, 12, 18, 14, 12, 12,…
$ experience  <dbl> 16, 9, 16, 10, 16, 8, 9, 9, 10, 11, 13…
$ ethnicity   <fct> afam, other, other, other, other, othe…
$ smsa        <fct> yes, yes, yes, yes, yes, yes, yes, yes…
$ south       <fct> no, no, no, no, no, no, no, no, no, no…
$ age         <dbl> 29, 27, 34, 27, 34, 26, 33, 29, 28, 29…
$ nearcollege <fct> no, no, no, yes, yes, yes, yes, yes, y…

6.2-两次回归找拟合值

首先是第一阶段,通过工具变量,对暴露因素求回归:

代码语言:javascript复制
# stage 1

tsls1 <- lm(formula = education ~ nearcollege, data = my_data)
summary(tsls1)

Call:
lm(formula = education ~ nearcollege, data = my_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-11.698  -1.527  -0.527   2.473   5.302 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)    12.69801    0.08564 148.269  < 2e-16 ***
nearcollegeyes  0.82902    0.10370   7.994 1.84e-15 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.649 on 3008 degrees of freedom
Multiple R-squared:  0.02081, Adjusted R-squared:  0.02048 
F-statistic: 63.91 on 1 and 3008 DF,  p-value: 1.838e-15

接下来获得每一项的预测值:

代码语言:javascript复制
d.hat <- fitted.values(tsls1) # 获得每一项的预测值

利用第一阶段的预测值结果,进行第二阶段回归分析:

代码语言:javascript复制
# stage 2
tsls2 <- lm(formula = my_data$wage ~ d.hat)
summary(tsls2)

Call:
lm(formula = my_data$wage ~ d.hat)

Residuals:
    Min      1Q  Median      3Q     Max 
-505.64 -180.64  -35.05  121.50 1798.36 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -849.50     162.70  -5.221  1.9e-07 ***
d.hat         107.57      12.26   8.773  < 2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 259.7 on 3008 degrees of freedom
Multiple R-squared:  0.02495, Adjusted R-squared:  0.02463 
F-statistic: 76.97 on 1 and 3008 DF,  p-value: < 2.2e-16

6.3-ivreg包实现

不难发现,ivreg 的拟合结果,实际上就是我们6.2 步骤里计算的结果:

代码语言:javascript复制
# ivreg
ivreg_iv <- ivreg(wage ~ education | nearcollege, data = my_data)
summary(ivreg_iv)

> summary(ivreg_iv)

Call:
ivreg(formula = wage ~ education | nearcollege, data = my_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-867.231 -205.763   -9.156  198.343 1673.630 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   -849.5      204.3  -4.157 3.31e-05 ***
education      107.6       15.4   6.985 3.48e-12 ***

Diagnostic tests:
                  df1  df2 statistic  p-value    
Weak instruments    1 3008     63.91 1.84e-15 ***
Wu-Hausman          1 3007     44.89 2.48e-11 ***
Sargan              0   NA        NA       NA    
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 326.2 on 3008 degrees of freedom
Multiple R-Squared: -0.538, Adjusted R-squared: -0.5385 
Wald test:  48.8 on 1 and 3008 DF,  p-value: 3.482e-12 

除此之外,你可能还会注意到ivreg 的summary 结果中,默认配置了三种Diagnostic tests,下面会进行简单介绍。

7-2SLS回归后诊断

据有的作者所言,2SLS 的诊断,通常来说是一个容易被忽视的话题,但在书:Regression Diagnostics | Wiley Series in Probability and Statistics[7],作者也提到了一些策略。

7.1-三种ivreg默认诊断

因为我的能力有限,就直接参考ivreg 模型诊断的结果:

  • weak instruments:这个是检验我们的工具变量是不是一个好的工具变量,其与我们的内源变量(自变量,暴露因素X)之间的关系;原假设是weak,所以我们希望这个统计量越大越好,p越小越好,从而拒绝原假设。可见我们结果显示,nearcollege 这个工具变量是一个强工具变量。
  • Wu–Hausman test:这个是检验内生性的,就是检验我们的自变量是不是和残差有关。在本例中显著,拒绝原假设,认为存在内生变量,即education 是内生变量。一般认为,如果回归变量是外源的,则OLS 与2SLS 显示一致;而如果是内源的,则通常2SLS 的结果会更加准确。在本例中,Wu-Hausman 检验显著,说明存在内生变量,OLS 的结果为29.655,2SLS 结果为107.57,二者不一致,且我们更倾向于接受2SLS 的结果。
  • Sargan test:这个检验只有在工具变量的个数超过内生变量的个数的时候才有,如果这个检验显著的话就说明至少有一个工具变量是不行的。在我们的案例里,仅有一个工具变量,不考虑。

7.2-异常数据诊断

异常数据诊断(Unusual-Data Diagnostics),比如通过遍历的去除每个样本数据,看最终对回归拟合结果与原来拟合结果的影响。

ivreg的内建方法提供了一个便捷的操作:

代码语言:javascript复制
ivreg_iv <- ivreg(wage ~ education | nearcollege, data = my_data)
ivreg:::influence.ivreg(ivreg_iv)

> names(tmp)
[1] "model"        "coefficients" "dfbeta"      
[4] "sigma"        "dffits"       "cookd"       
[7] "hatvalues"    "rstudent"     "df.residual" 

其会返回多个检验方法计算出的结果列表。

亦或是我们直接查看随机去除某个样本后的拟合差异:

代码语言:javascript复制
> car::compareCoefs(ols, tsls2, tsls2.20)
Calls:
1: lm(formula = wage ~ education, data = my_data)
2: lm(formula = my_data$wage ~ d.hat)
3: lm(formula = my_data$wage ~ d.hat, subset = -20)

            Model 1 Model 2 Model 3
(Intercept)   183.9  -849.5  -849.2
SE             23.1   162.7   162.7
                                   
education     29.66                
SE             1.71                
                                   
d.hat                 107.6   107.5
SE                     12.3    12.3

7.3-非线性诊断

具体内容参考:Diagnostics for 2SLS Regression • ivreg (john-d-fox.github.io)[8]

非线性诊断(Nonlinearity Diagnostics)。这一步大大超出了我的能力,因此仅仅展示一些R 的可视化分析结果:

代码语言:javascript复制
# Nonlinearity Diagnostics
car::crPlots(ivreg_iv, smooth=list(span=1))

此外还有crPlots。

7.4-其他内容

我们还可以可视化的展示一些结果:

代码语言:javascript复制
par(mfrow=c(2, 2))
plot(ivreg_iv)

亦或是比较不同的拟合结果:

代码语言:javascript复制
# ols
ols <- lm(formula = wage ~ education, data = my_data)

# stage 1

tsls1 <- lm(formula = education ~ nearcollege, data = my_data)
summary(tsls1)

d.hat <- fitted.values(tsls1) # 获得每一项的预测值

# stage 2
tsls2 <- lm(formula = my_data$wage ~ d.hat)
summary(tsls2)

car::compareCoefs(ols, tsls2)

Calls:
1: lm(formula = wage ~ education, data = my_data)
2: lm(formula = my_data$wage ~ d.hat)

            Model 1 Model 2
(Intercept)   183.9  -849.5
SE             23.1   162.7
                           
education     29.66        
SE             1.71        
                           
d.hat                 107.6
SE                     12.3

8-生物学上的应用

比如在上述举例中,我们的问题是:研究教育程度(接受教育年份,暴露因素X)对未来收入(薪资,结局变量Y)的影响。

其中找到了一个关键的变量(距离学校远近,工具变量Z)。

其实推广到遗传突变上,这个布尔值可以表示野生型和突变型。

比如我们想要利用单样本孟德尔随机来研究酒精和心血管疾病的关系。那么这时候就可以使用上述类似的思路,比如将与酒精代谢高度相关的基因ALDH2作为工具变量,进行探究。

除此之外,GWAS数据库也提供了大量的暴露与结局的数据。

只不过,许多的SNPs与相应表型有唯一关联,可以从中筛选合适的工具变量通常有多个:

代码语言:javascript复制
library(TwoSampleMR)
bmi_exp_dat <- extract_instruments(outcomes='ieu-a-2')
#> API: public: http://gwas-api.mrcieu.ac.uk/
chd_out_dat <- extract_outcome_data(snps = bmi_exp_dat$SNP, outcomes = 'ieu-a-7')

此外,这些数据也是给定了拟合值的,如果需要进行单样本的MR,直接进行二阶段拟合即可。

当然,真实世界纳入的因素也更加复杂,可以参考文章:Association Between Telomere Length and Risk of Cancer and Non-Neoplastic Diseases: A Mendelian Randomization Study | Cancer Screening, Prevention, Control | JAMA Oncology | JAMA Network[9]

9-展望

因为我本人能力有限,基本统计学与因果推断的概念这几天算是看的头大,望各位指正。当然,也希望未来的我自己手下留情。

9.1-最大的疑惑

An example of two-stage least squares (2SLS) method with R (rstudio-pubs-static.s3.amazonaws.com)[10] 中。

作者是先预设了一组满足关系的数据:y=a bx cd ey<-10 1*x 1*d e

接着通过制作假数据,来让假数据分别按照OLS 与2SLS 来计算拟合值,并最终发现2SLS 的拟合值最为接近。

可是,在真实研究中,比如oneSampleMR,我们如何得到这个真阳性的标准呢?

即便我们可以通过判断工具变量与我们的解释变量是强相关的,是可以被使用的,这个2SLS 可以更好的拟合,那么如何来评价它有多好呢?难道仅仅是和一个相对较差的方法比?(OLS)

除此之外,在twoSampleMR 的包中采用的过程里:

我看到有教程直接通过这个pval 来判断是否存在因果。

那么是否说明,我们的2SLS 的Wald test,也可以作为判断因果的标准呢:

代码语言:javascript复制
Residual standard error: 326.2 on 3008 degrees of freedom
Multiple R-Squared: -0.538, Adjusted R-squared: -0.5385 
Wald test:  48.8 on 1 and 3008 DF,  p-value: 3.482e-12 

9.2-其他孟德尔随机化方法

我发现,目前生命科学领域结合GWAS 公共数据分析,主要采用的还是twosampleMR,可以参见:Using published data in Mendelian randomization: a blueprint for efficient identification of causal risk factors[11]

而同样也有包提供了相关的方法:Perform MR • TwoSampleMR (mrcieu.github.io)[12]

我们可以直接利用这个R 包获得GWAS 上与感兴趣暴露因素和结局相关的遗传突变作为工具变量,直接利用内置的函数和统计方法进行分析。

代码语言:javascript复制
mr_method_list()
#>                              obj
#> 1                  mr_wald_ratio
#> 2               mr_two_sample_ml
#> 3            mr_egger_regression
#> 4  mr_egger_regression_bootstrap
#> 5               mr_simple_median
#> 6             mr_weighted_median
#> 7   mr_penalised_weighted_median
#> 8                         mr_ivw
#> 9                  mr_ivw_radial
#> 10                    mr_ivw_mre
#> 11                     mr_ivw_fe
#> 12                mr_simple_mode
#> 13              mr_weighted_mode
#> 14         mr_weighted_mode_nome
#> 15           mr_simple_mode_nome
#> 16                       mr_raps
#> 17                       mr_sign
#> 18                        mr_uwr

9.3-不同的孟德尔随机思路下的统计方法

比如上述提到的twoSampleMR 就包括了如此之多的方法。

除了方法上的oneSampleMR 选择同一类型样本对应的暴露与结局数据,而twoSampleMR 则选择不同的(不对应的)暴露与结局数据外,二者有什么本质区别呢?

此外,不同的思路下的统计方法,该如何选择呢?

另外的双向MR(Bidirectional MR)、 两阶段MR(Two-step MR)、基因-暴露交互作用MR(Gene-exposure interactions)又有什么选择和应用呢?

9.4-局限性

这里摘自:孟德尔随机化法在因果推断中的应用 (rhhz.net)[13]

近年来各种统计新方法、大样本GWAS数据、分子表观遗传学以及各种“组学”技术的应用,MR仍然有些问题比较棘手:

  • 难以发现合适的遗传工具变量:并非所有SNPs都适宜作为工具变量,基于GWAS的GRS也并非完美,很难控制弱工具变量偏倚[32[14]]。
  • 把握度较低:只有通过扩大样本量获得足够的把握度,比如使用仅占1%效应的遗传工具探讨暴露和疾病之间的关联,至少需要9 500对以上的病例和对照样本才能有80%的把握度获得增加50%(_OR_=1.5)的生物学效应(每个标准差水平)[33[15]]。
  • Beavis效应:基于GWAS数据的MR研究可能会高估了遗传和暴露之间的关联,亦被称之为“胜利者的诅咒(the winner ’s curse)”,因为SNPs与混杂因素之间可能有潜在的关联[34[16]]。
  • 合理的生物学解释:MR研究发现高水平IL 6R可降低心血管疾病(CAD)的风险[16[17]],而观察性研究结果提示IL 6R与CAD风险增加有关[35[18]],因此需要进一步研究验证。尽管如此,MR仍然在因果推断中发挥了重要作用,并不断完善。

拓展阅读与参考

参考

1、R语言工具变量与两阶段最小二乘法 - 云 社区 - 腾讯云 (tencent.com)[19]2、R数据分析:工具变量回归的做法和解释,实例解析 - 知乎 (zhihu.com)[20]3、二阶最小二乘法理论概述 - 知乎 (zhihu.com)[21]4、09 孟德尔随机化 Mendelian randomization – GWAS实验室 – GWASLab[22]5、An example of two-stage least squares (2SLS) method with R (rstudio-pubs-static.s3.amazonaws.com)[23]6、One Sample Mendelian Randomization and Instrumental Variable Analyses • OneSampleMR (remlapmot.github.io)[24]7、Perform MR • TwoSampleMR (mrcieu.github.io)[25]

拓展阅读

8、计量经济学助教课试讲3 工具变量 IV 和 两阶段最小二乘法 2SLS_哔哩哔哩_bilibili[26]9、Mendelian Randomization - Home[27]10、孟德尔随机化系列文章 (qq.com)11、孟德尔随机化法在因果推断中的应用 (rhhz.net)[28]

参考资料

[1]

1-复杂的关联性研究 - Peng的孟德尔随机化笔记: https://peng-6.gitbook.io/mendelian_randomization/jie-shao/1-fu-za-de-guan-lian-xing-yan-jiu

[2]

孟德尔随机化 | Mendelian randomization - Life·Intelligence - 博客园 (cnblogs.com): https://www.cnblogs.com/leezx/p/13357787.html

[3]

Hernán and Robins, 2006: https://doi.org/10.1097/01.ede.0000222409.00878.37

[4]

Terza, 2008: https://doi.org/10.1016/j.jhealeco.2007.09.009

[5]

Terza, 2008: https://doi.org/10.1016/j.jhealeco.2007.09.009

[6]

two-stage least-squares regression: https://academic.oup.com/ajcn/article/103/4/965/4564602#110160675

[7]

Regression Diagnostics | Wiley Series in Probability and Statistics: https://onlinelibrary.wiley.com/doi/book/10.1002/0471725153

[8]

Diagnostics for 2SLS Regression • ivreg (john-d-fox.github.io): https://john-d-fox.github.io/ivreg/articles/Diagnostics-for-2SLS-Regression.html#nonlinearity-diagnostics-1

[9]

Association Between Telomere Length and Risk of Cancer and Non-Neoplastic Diseases: A Mendelian Randomization Study | Cancer Screening, Prevention, Control | JAMA Oncology | JAMA Network: https://jamanetwork.com/journals/jamaoncology/fullarticle/2604820

[10]

An example of two-stage least squares (2SLS) method with R (rstudio-pubs-static.s3.amazonaws.com): https://rstudio-pubs-static.s3.amazonaws.com/332491_1a839b62d1ed404dbef681d83f5d01c4.html

[11]

Using published data in Mendelian randomization: a blueprint for efficient identification of causal risk factors: DOI:10.1007/s10654-015-0011-z

[12]

Perform MR • TwoSampleMR (mrcieu.github.io): https://mrcieu.github.io/TwoSampleMR/articles/perform_mr.html#mr-methods-1

[13]

孟德尔随机化法在因果推断中的应用 (rhhz.net): http://html.rhhz.net/zhlxbx/20170427.htm

[14]

[32: http://html.rhhz.net/zhlxbx/20170427.htm#b32

[15]

[33: http://html.rhhz.net/zhlxbx/20170427.htm#b33

[16]

[34: http://html.rhhz.net/zhlxbx/20170427.htm#b34

[17]

[16: http://html.rhhz.net/zhlxbx/20170427.htm#b16

[18]

[35: http://html.rhhz.net/zhlxbx/20170427.htm#b35

[19]

R语言工具变量与两阶段最小二乘法 - 云 社区 - 腾讯云 (tencent.com): https://cloud.tencent.com/developer/article/1664196

[20]

R数据分析:工具变量回归的做法和解释,实例解析 - 知乎 (zhihu.com): https://zhuanlan.zhihu.com/p/395596177

[21]

二阶最小二乘法理论概述 - 知乎 (zhihu.com): https://zhuanlan.zhihu.com/p/255209094

[22]

09 孟德尔随机化 Mendelian randomization – GWAS实验室 – GWASLab: https://gwaslab.com/category/gwas-全基因组关联分析/09-孟德尔随机化-mendelian-randomization/

[23]

An example of two-stage least squares (2SLS) method with R (rstudio-pubs-static.s3.amazonaws.com): https://rstudio-pubs-static.s3.amazonaws.com/332491_1a839b62d1ed404dbef681d83f5d01c4.html

[24]

One Sample Mendelian Randomization and Instrumental Variable Analyses • OneSampleMR (remlapmot.github.io): https://remlapmot.github.io/OneSampleMR/index.html

[25]

Perform MR • TwoSampleMR (mrcieu.github.io): https://mrcieu.github.io/TwoSampleMR/articles/perform_mr.html#mr-methods-1

[26]

计量经济学助教课试讲3 工具变量 IV 和 两阶段最小二乘法 2SLS_哔哩哔哩_bilibili: https://www.bilibili.com/video/BV1Dh411n7pR

[27]

Mendelian Randomization - Home: http://www.mendelianrandomization.com/index.php

[28]

孟德尔随机化法在因果推断中的应用 (rhhz.net): http://html.rhhz.net/zhlxbx/20170427.htm

0 人点赞