R資料分析:孟德爾隨機化中介的原理和實操

Codewar發表於2023-02-09

中介本身就是迴歸,基本上我看到的很多的調查性研究中在中介分析的方法部分都不會去提混雜,都是預設一個三角形畫好,中介關係就算過去了,這裡面預設的邏輯就是前兩步迴歸中的混雜是一樣的,計算中介效應的時候就自動消掉了。

但是,實際上對不對,還是有待具體分析的:

Traditional, non-instrumental variable methods for mediation analysis experience a number of methodological difficulties, including bias due to confounding between an exposure, mediator and outcome and measurement error

孟德爾隨機化作為一個天然的免去混雜的方法,和中介結合,整個中介又變得更純淨了,是一種更加值得推崇的中介做法,也是孟德爾隨機化研究的必要的延申。

今天給大家介紹孟德爾隨機化中介分析的兩個方法multivariable MR (MVMR) and two-step MR

先回顧中介作用

中介分析的基本的概念,就是大家熟悉的三角形:

R資料分析:孟德爾隨機化中介的原理和實操

 

c是總效應,加上中介變數後,A*B是間接效應,C'是直接效應,有總效應=間接效應+直接效應。

上圖中如果總效應,直接效應和間接效應方向都相同的情況下,我們還可以報告中介效應比例,為間接效應比上總效應。

上面的圖中的中介效應成立依賴幾個假設:

R資料分析:孟德爾隨機化中介的原理和實操

 

首先就是沒有混雜,包括變數之間沒有混雜(或者像前面寫的直接抵消);暴露不會造成額外混雜;暴露和中介變數沒有互動。

再看孟德爾隨機化的優勢之一就是不受混雜影響,得到純淨的效應,所以將孟德爾隨機化延伸一步去探究中介有天然優勢。

MR approach retains the benefits of using genetic instruments for causal inference, such as avoiding bias due to confounding, while allowing for estimation of the different effects required for mediation analysis

multivariable MR

按照傳統的迴歸中介的做法思想,我們如果可以跑多變數孟德爾,就可以做出中介分析的結果,具體就是兩個暴露的孟德爾,一個是我們關心的暴露,另一個是中介。

MVMR estimates the “direct” causal effects of each exposure included in the estimation on the outcome, conditional on the other exposures included in the model.

跑多變數孟德爾後我們就可以得到中介模型中的直接效應:

R資料分析:孟德爾隨機化中介的原理和實操

 

就是說這樣子跑下來我們就可以得到下圖中的c'(直接效應)和B:

R資料分析:孟德爾隨機化中介的原理和實操

 

再加上我們單獨跑一個暴露到結局的孟德爾,我們就有總效應了,利用總效應減去直接效應我們就可以得到間接效應(有了b,a也就出來了),整個中介分析就跑完了,這個就是多變數孟德爾跑中介分析的邏輯。

MR estimates the “total” effect of the exposure on the outcome, whereas MVMR estimates the “direct” effect of each exposure on the outcome

The genetic instrument for both the primary exposure and the second exposure (mediator) are included as instruments in the analysis . The indirect effect can then be estimated by subtracting the direct effect from the total effect (akin to the difference in coefficients method)

Two-step MR

此方法也可以用來計算中介,分為兩步,第一步是計算暴露對中介變數的效應得到a,第二步是計算中介到結局的效應得到b,然後兩係數相乘得到中介效應。

用總效應(單獨跑一個暴露到結局的孟德爾,我們就有總效應了)減去中介效應後得到直接效應,到這兒所有的係數都有了。

The indirect effect of the exposure on the outcome can then be calculated by multiplying the effect of the exposure on the mediator and the effect of the mediator on the outcome. This is equivalent to the product of coefficients method of mediation analysis.

普通的迴歸肯定是不能這麼做的(要得到係數B必須控制暴露),但是我們是跑的孟德爾,就意味著此時的我們跑出來的暴露到中介的效應A是純淨的,相應地B也是純淨的,所以我們才能這麼跑。

R資料分析:孟德爾隨機化中介的原理和實操

 

兩步孟德爾在跑的時候要注意,第二步使用的工具變數需要排除第一步就使用過的,因為合格的工具變數本身就不能重複,按理說兩步的工具變數本身不應該存在重複,所以如果有重複在第二步的時候得排除掉。

First, genetic IVs associated with the risk factor are used to determine the causal effect of the risk factor on the potential mediator (step one). Secondly, genetic IVs associated with the potential mediator and independent of those used for step one are used to determine the effect of the potential mediator on the outcome of interest (step two)

R資料分析:孟德爾隨機化中介的原理和實操

 

上面兩種方法都是孟德爾中介做法的思想,具體到操作上會有一些問題,比如用MVMR我們得到直接效應,用總效應減去直接效應我們其實只能得到間接效應的點估計,同樣的,Two-step MR也存在這個問題,我們只能得到間接效應的點估計,怎麼求標準誤,和置信區間是在實操中要解決的問題。

下面給大家介紹幾種解決方法。

delta方法

上面的流程跑通之後,對於中介分析,我們需要報告間接效應的估計值和置信區間,還有中介比例的估計值和置信區間,類似下面的這樣:

R資料分析:孟德爾隨機化中介的原理和實操

 

但是其實我們是光跑孟德爾是得不到上面的需要的值的(比如間接效應的標準誤,中介比例的標準誤),此時需要藉助的方法之一叫做delta method。

As individual level data is not available in summary data MR, bootstrapping cannot be used to estimate the confidence intervals for the indirect effect or proportion mediated, but the delta method can be used to approximate these confidence intervals if samples are independent

R資料分析:孟德爾隨機化中介的原理和實操

 

delta method可以幫助我們得到ab相乘的標準誤,從而算出中介效應的置信區間。

R資料分析:孟德爾隨機化中介的原理和實操

 

也就是說我們知道了A,B路徑的點估計和標準誤,根據上面的公式就可以得到間接效應的置信區間,在R中實現起來也容易的,使用RMediation包,這個包作者有開發shiny應用,輸入A,B的估計值和標準誤就可以得到間接效應的估計值和標準誤和置信區間了(下圖圈內):

R資料分析:孟德爾隨機化中介的原理和實操

 

bootstrap方法

bootstrap方法也可以用來幫助我們計算中介效應和中介比例的置信區間:

Bootstrapping is a technique used in inferential statistics that work on building random samples of single datasets again and again. Bootstrapping allows calculating measures such as mean, median, mode, confidence intervals, etc. of the sampling.

bootstrap基本思路是對原來的分析資料進行有放回的隨機抽樣形成抽樣資料集,bootstrap1000次就會形成1000個抽樣資料集,每個抽樣資料集都可以算我們需要的統計量,這樣統計量的分佈就出來了,也就有了置信區間。

bootstrap物件生成後計算中介效應和中介比例部分程式碼見下:

R資料分析:孟德爾隨機化中介的原理和實操

 

透過bootstrap形成比如1000個統計量的分佈後,取0.025,0.975百分位就是95置信區間.

此處我們再補一個bootstrap過程的例子,在做bootstrap的時候我們需要用到boot函式,主要引數就3個:

R資料分析:孟德爾隨機化中介的原理和實操

 

其中最重要的就是我們需要計算的統計量statistic,這個是以函式的形式給出的,並且該函式接受不少於2個引數,一個是資料,另一個是抽樣的indices。

為了對比我先將跑的孟德爾隨機化的結果貼出來:

R資料分析:孟德爾隨機化中介的原理和實操

 

結果中有正常跑出來的b和對應的se,我透過bootstrap再將5個se跑出來,作為對比演示,程式碼如下:

mr_function <- function(data, indices) {
  d <- dat[indices,] 
  jieguo <- mr(d) 
  return(jieguo  %>% pull(b)) 
}
reps_mr <- boot(data=dat, statistic=mr_function, R=1000)

上面的程式碼中mr_function是我要餵給boot函式的statistic引數,在mr_function已經申明瞭我返回的值,也就是我要bootstrap的統計量是MR結果的b,所以執行完了會出來5個b的bootstrap的SE。

因為計算時間太長,上面就只設定了抽1000個資料集,資料不算很密,看看情況:

R資料分析:孟德爾隨機化中介的原理和實操

 

可以看到5種方法的係數的bootstrapt標準誤都出來了,但是t3也就是IVW方法的標準誤透過bootstrap是最接近原來值的,這應該也是為什麼報告中介都是依照IVW的係數的原因之一。

上面演示的目的只是bootstrap的做法過程,實際我們需要改動mr_function中的return為我們需要的統計量,也就是中介效應和中介效應占比。

Propagation of error

再計算中介效應和中介比例的置信區間時也可以用誤差傳染法,比如下面這篇文獻:

R資料分析:孟德爾隨機化中介的原理和實操

 

這個方法比較好理解,順帶也寫個例子給大家介紹一下

Propagation of error refers to the methods used to determine how the uncertainty in a
calculated result is related to the uncertainties in the individual measure

誤差傳染法的計算積的標準差的過程如下:

R資料分析:孟德爾隨機化中介的原理和實操

 

完全是初中的多項式乘法,中間涉及到把較小的項刪掉,應該看懂沒問題,這兒就不寫解釋了。商的標準差計算如下:

R資料分析:孟德爾隨機化中介的原理和實操

 

中間過程涉及到高中的極限,總體也不難,上面的方法就是“誤差傳染法”Propagation of error。掌握積和商的標準差的演算法後,我們在用Two-step MR得到a和b之後就可以得到得到中介效應ab的置信區間,相應地用商的標準差演算法可以算出中介佔比的置信區間。

上面介紹的方法幫助我們計算出來標準誤後透過正態近似後和界值對比即可得到相應的p值,比如中介效應分佈畫出來後和界值0對比,分佈曲線下橫軸和0軸曲線下面積即為p值。

整個的孟德爾隨機化中介就給大家分享完了。

相關文章