Meta analysis

Chin Lin

Wednesday, September 24, 2014

基本介紹

– A研究顯著正相關、B研究不顯著、C研究顯著負相關…

  1. 投票
  2. 看誰樣本最大
  3. 看誰研究設計的最好
  4. 看誰年代最近
  5. 問朱老師

System review & Meta analysis

– System review是一種透過系統性搜索文章的方式,盡量減少選擇偏差,納入盡量客觀(注意:是客觀,不是全部)的資料

  1. 投票 <- 票票等價?
  2. 看誰樣本最大 <- 兩個都很大怎辦?
  3. 看誰研究設計的最好 <- 都是隨機對照試驗怎辦?
  4. 看誰年代最近 <- 比較老的文獻不會是經典嗎?

定義你的研究問題

  1. 族群(Population) <- 族群
  2. 介入(Intervention) <- 自變項
  3. 比較(Comparison) <- 自變項
  4. 結果(Outcome) <- 依變項

– 下列是5篇文章,請試著讀出他的PICO

– 第一篇

– 第二篇

– 第三篇

– 第四篇

– 第五篇

關鍵字

  1. 族群(Population): 一般族群
  2. 介入(Intervention): Angiotensin-Converting Enzyme Insertion allele
  3. 比較(Comparison)`: Angiotensin-Converting Enzyme Deletion allele
  4. 結果(Outcome) : Chronic Kidney Disease

– 請試著利用下面這個網站找出Angiotensin-Converting Enzyme Insertion/Deletion以及Chronic Kidney Disease所有的同意詞(https://www.nlm.nih.gov/mesh/MBrowser.html)

搜索

  1. OR:聯集
  2. AND:交集
  3. () :合併布林字元
  4. NOT:某字不可出現

– (P1 OR P2 OR P3 OR…) AND (I1 OR I2 OR I3 OR…) AND (C1 OR C2 OR C3 OR…) AND (O1 OR O2 OR O3 OR…)

練習-1

– Homocysteine-lowering therapy with folic acid is effective in cardiovascular disease prevention in patients with kidney disease: A meta-analysis of randomized controlled trials

– 您所定義的PICO

– 這些詞彙所有的同義字

– 最終您制定的關鍵字

– 搜索結果

選定Paper並且擷取數字

– 最基本的是,我至少需要他實驗組&介入組的人數,以及發生Outcome的人數。

– 如果可以的話,儘可能告訴我越多不同研究族群之間特性的描述(Ex: 糖尿病的盛行率、國家是否有葉酸強化政策…)

練習-2

– 請擷取這篇文章的實驗組&介入組的人數,以及發生CVD的人數

– 請擷取這篇文章的實驗組&介入組的人數,以及發生Outcome的人數

– 請擷取這篇文章的研究族群之糖尿病盛行率

整理研究結果

install.packages("metafor")
library(metafor)
install.packages("metar")
library(meta)
Folic=read.csv("d:/Folic acid.csv")
Folic

預備動作!-1

– 前面兩張表格是兩個研究,而第三個表格是我們直接將兩個研究的人數加起來,請問為什麼前兩個Table的RR都是1,但第三個Table的RR卻是2.886?

##         Outcome
## Group    death Total
##   Treat     10   100
##   Placeb   100  1000
##         Outcome
## Group    death Total
##   Treat   1000  2000
##   Placeb   100   200
##         Outcome
## Group    death Total
##   Treat   1010  2100
##   Placeb   200  1200
  1. 你相信這個Treat的RR是1,還是2.886?

  2. 到底是發生了什麼事情?

  3. 如果這樣是有問題的,該如何解決這個問題?

預備動作!-2

– Note: 在合併時我們必須先以log(RR)來估算,接著才能進行合併

##         Outcome
## Group    death Total
##   Treat     13    51
##   Placeb    11    30
##         Outcome
## Group    death Total
##   Treat    146   342
##   Placeb    73   168

F0

– Note: 你可以透過複製下列R code獲得結果。

Trial1=c(13,11,51,30)  
Trial2=c(146,73,342,168)
Table=rbind(Trial1,Trial2)
colnames(Table)=c("ev.trt","ev.ctrl","n.trt","n.ctrl")
outcome=escalc(measure = "RR", ai = ev.trt, ci = ev.ctrl, n1i = n.trt, n2i = n.ctrl, data = Table, append = TRUE) # function in metafor package
outcome # print result

預備動作!-3

– 合併的技術主要區分為兩種:Fixed effect model & Random effects model

– Fixed effect model: 所有研究都屬於同一母群,所以應該有“一”相同的log(RR),研究間的差異完全由隨機誤差所解釋

– Random effects model: 所有研究所屬的母群並不相同,因此log(RR)也不相同,但呈現一個常態分布,除此之外,還有一個隨機誤差在裡面(換句話說,研究間的差異完全由“log(RR)分布之變異數”以及隨機誤差所解釋)

F0

預備動作!-4 (練習-3)

F0

##             yi     vi
## Trial1 -0.3636 0.1149
## Trial2 -0.0177 0.0117
Trial1=c(13,11,51,30)  
Trial2=c(146,73,342,168)
Table=rbind(Trial1,Trial2)
colnames(Table)=c("ev.trt","ev.ctrl","n.trt","n.ctrl")
outcome=escalc(measure = "RR", ai = ev.trt, ci = ev.ctrl, n1i = n.trt, n2i = n.ctrl, data = Table, append = TRUE) # function in metafor package
outcome # print result
rma(yi, vi, data=outcome, method="FE") # Fixed effect model
rma(yi, vi, data=outcome, method="DL") # Random effects model

分析-合併結果&森林圖1

– 這裡我們使用的是metabin()這個函數,他可以幫助我們直接合併檔案:

install.packages("metafor")
library(metafor)
install.packages("meta")
library(meta)
Folic=read.csv("d:/Folic acid.csv")
Result=metabin(event.e = ev.trt, n.e = n.trt, event.c = ev.ctrl, n.c =  n.ctrl, studlab = name, data = Folic, sm = "RR",
method.tau="DL")
Result

– event.e: 實驗組的發生事件人數

– n.e: 實驗組的總人數

– event.c: 對照組的發生事件人數

– n.c: 對照組的總人數

– studlab: 研究簡稱

– data: 你的分析資料集

– sm: 你所使用的參數(有“RR”,“OR”,“RD”)

– method.tau: 估計隨機效應變異數的方式(主要有“DL”,“REML”,“ML”…等)

forest(Result)

F5

forest(Result, leftlabs=c("Author","Year","DM", "CVD","Total","CVD","Total"),leftcols=c("studlab",
"year","dm","event.e","n.e","event.c","n.c"),rightlabs=c("OR","95% CI","Weight"),col.square="royalblue",
col.square.lines="royalblue",col.diamond="darkblue",col.diamond.lines="darkblue",col.by="black",col.i="black",
col.i.inside.square="white")

F4

分析-數據解讀

F4

– 異質性(Hetergeneity): I-square, tau-square, p-value

– 合併後的RR:Fixed effect model & Random effects model

– 主要的指標為I-square的區間為0% to 100%,一般我們認為<25%叫做無異質性,25%50%叫低異質性,50%75%叫做中異質性,75%以上叫做高異質性。另外tau-square是隨機效應的變異數,p-value則是檢定這個異質性是否顯著的卡方檢定。

– Fixed effect model:母群的RR值有95%的機率位在0.91至1.02之間。

– Random effects model:所有母群的RR值的平均值有95%的機率位在0.90至1.02之間。

– Fixed effect model: 所有研究都屬於同一母群,所以應該有“一”相同的log(RR),研究間的差異完全由隨機誤差所解釋

– Random effects model: 所有研究所屬的母群並不相同,因此log(RR)也不相同,但呈現一個常態分布,除此之外,還有一個隨機誤差在裡面(換句話說,研究間的差異完全由“log(RR)分布之變異數”以及隨機誤差所解釋)

分析-預測區間

– 既然你告訴我『所有母群的RR值的平均值有95%的機率位在0.90至1.02之間』,那你能否告訴我『所有母群的RR值有95%的機率位在???至???之間』?

– 下面這是一個計算預測區間的例子(很遺憾的,很少統計軟體有這樣的功能,我們可能要學會用手算):

F4

練習-4

F7

F4

分析-漏斗圖及Egger’s regression

funnel(Result)

F4

metabias(Result)
funnel(Result, comb.fixed=TRUE,  level=0.95, contour=c(0.9, 0.95, 0.99),
       col.contour=c("darkgreen", "green", "lightgreen"),
       lwd=1, cex=1, pch=19, studlab=TRUE, cex.studlab=0.7)
legend(0.05, 0.05,
       c("0.1 > p > 0.05", "0.05 > p > 0.01", "< 0.01"),
       fill=c("darkgreen", "green", "lightgreen"))

F4

分析-漏斗圖

F4

– Publication bias

– True heterogeneity

– Data irregularities (Fraud)

– Choice of effect measure

– Chance

– 請你讀一下這篇lancet的文章,他已經被證實造假了,請問你看的出他造假的痕跡嗎?

小結

  1. 搜索文獻
  2. 擷取資料至適當的資料格式
  3. 合併估計值&森林圖&預測區間的計算
  4. 異質性檢定
  5. 漏斗圖判讀&檢定
  1. 次組分析
  2. Meta-regression
  3. 敏感性分析
  4. Trial Sequential Analysis (概述)
  5. Network meta analysis (概述)