Chin Lin
Wednesday, September 24, 2014
– A研究顯著正相關、B研究不顯著、C研究顯著負相關…
– System review是一種透過系統性搜索文章的方式,盡量減少選擇偏差,納入盡量客觀(注意:是客觀,不是全部)的資料
– 下列是5篇文章,請試著讀出他的PICO。
– 第一篇
– 第二篇
– 第三篇
– 第四篇
– 第五篇
– 請試著利用下面這個網站找出Angiotensin-Converting Enzyme Insertion/Deletion以及Chronic Kidney Disease所有的同意詞(https://www.nlm.nih.gov/mesh/MBrowser.html)
– (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…)
– 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
– 這些詞彙所有的同義字
– 最終您制定的關鍵字
– 搜索結果
System review的基本過程大概就在剛剛結束了,接著就是要瘋狂的看文獻,篩出真正與自己有關的paper,並且評讀…
下個問題是,我如果想要做meta analysis,我要擷取哪些資訊呢?
– 最基本的是,我至少需要他實驗組&介入組的人數,以及發生Outcome的人數。
– 如果可以的話,儘可能告訴我越多不同研究族群之間特性的描述(Ex: 糖尿病的盛行率、國家是否有葉酸強化政策…)
– 請擷取這篇文章的實驗組&介入組的人數,以及發生CVD的人數
– 請擷取這篇文章的實驗組&介入組的人數,以及發生Outcome的人數
– 請擷取這篇文章的研究族群之糖尿病盛行率
install.packages("metafor")
library(metafor)
install.packages("metar")
library(meta)
Folic=read.csv("d:/Folic acid.csv")
Folic
– 前面兩張表格是兩個研究,而第三個表格是我們直接將兩個研究的人數加起來,請問為什麼前兩個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
你相信這個Treat的RR是1,還是2.886?
到底是發生了什麼事情?
如果這樣是有問題的,該如何解決這個問題?
根據上一頁的問題,我們可以想像的到如果有需要合併不同的研究結果,應該要分別先計算出個別研究的RR(也可以是OR、其他參數等),絕對不可以直接將個案人數先合併成一張表。
下一個問題是,當兩個研究的RR是同樣的數字時,我們就可以說這個相同的RR值就是整合的結果,但若兩個研究本來的RR不同的時候,我們該怎麼辦呢?
– Note: 在合併時我們必須先以log(RR)來估算,接著才能進行合併
## Outcome
## Group death Total
## Treat 13 51
## Placeb 11 30
## Outcome
## Group death Total
## Treat 146 342
## Placeb 73 168
– 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
– 合併的技術主要區分為兩種:Fixed effect model & Random effects model
– Fixed effect model: 所有研究都屬於同一母群,所以應該有“一”相同的log(RR),研究間的差異完全由隨機誤差所解釋
– Random effects model: 所有研究所屬的母群並不相同,因此log(RR)也不相同,但呈現一個常態分布,除此之外,還有一個隨機誤差在裡面(換句話說,研究間的差異完全由“log(RR)分布之變異數”以及隨機誤差所解釋)
## 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
– 這裡我們使用的是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)
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")
– 異質性(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%的機率位在???至???之間』?
– 下面這是一個計算預測區間的例子(很遺憾的,很少統計軟體有這樣的功能,我們可能要學會用手算):
可以的話,請依據剛剛的公式,計算我們剛剛分析的資料的95% Prediction interval,並且明確的講出95% prediction interval所代表的意義。
公式:
funnel(Result)
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"))
– Publication bias
– True heterogeneity
– Data irregularities (Fraud)
– Choice of effect measure
– Chance
– 請你讀一下這篇lancet的文章,他已經被證實造假了,請問你看的出他造假的痕跡嗎?