本文目的:讓R語言初學者通過幾行代碼快速掌握meta分析

介紹

從廣義上講,meta分析是指將幾項研究結果結合起來的統計分析。這一術語是由統計學家Gene V Glass在1976年向美國教育研究協會發表演講中創造的。從那時起,meta分析不僅成為醫學研究的重要工具,而且在經濟學,金融學,社會科學和工程學中也越來越受歡迎。許多負責制定循證醫學標準的組織,例如英國國家健康和護理卓越研究所(NICE),廣泛使用meta分析。meta分析在醫學中的應用是比較直觀的,比如說測試相對於標準治療的新療法活著新藥物的功效。現實研究中,大多數研究受限於研究條件,得到樣品或者患者數目相對較少,例如,目前在ClinicalTrials.gov上列出的最大的四項呼吸道疾病試驗也僅僅有533名患者入組。因此我們需要使用「所有信息來源」來獲得更準確的結果 。但是,meta分析需要建立嚴格的搜索相關研究的系統評價標準。研究者必須努力避免「選擇偏倚」,「發表偏倚」和其他偏倚。

優點

1)能對同一課題的多項研究結果的一致性進行評價;2)對同一課題的多項研究結果作系統性評價和總結;3)提出一些新的研究問題,為進一步研究指明方向;4)當受制於某些條件時,如時間或研究對象的限制,meta分析不失為一種選擇;5)從方法學的角度,對現階段某課題的研究設計進行評價;6)發現某些單個研究未闡明的問題;7)對小樣本的臨牀實驗研究,meta分析可以統計效能和效應值估計的精確度。因此,設計合理,嚴密的meta分析文章能對證據進行更客觀的評價(與傳統的描述性的綜述相比),對效應指標進行更準確、客觀的評估,並能解釋不同研究結果之間的異質性。meta分析符合人們對客觀規律的認識過程,是與循證醫學的思想完全一致的,是一個巨大的進步。

主要步驟

  1. 明確簡潔地提出需要解決的問題
  2. 制定檢索策略,全面廣泛地收集隨機對照試驗
  3. 確定納入和排除標準,剔除不符合要求的文獻
  4. 資料選擇和提取,包括原文的結果數據、圖表等
  5. 各試驗的質量評估和特徵描述
  6. 統計學處理
  7. 結果解釋、作出結論及評價
  8. 維護和更新資料。處理方法 a.異質性檢驗(即通過最常用的Q檢驗,I2,和H值等進行)。b.統計合併效應量(加權合併,計算效應尺度及95%的置信區間)並進行統計推斷。c.一般用森林圖的形式表示單個試驗的結果和合併後的結果。d.敏感性分析 e.通過Egger『s法,Begg』s,以及「漏斗圖」瞭解潛在的發表偏倚。

R語言

從歷史上看,大多數meta分析可能是通過Excel等常規工具或Cochrane協作網的RevMan等專業軟體進行的。但其計算繁瑣,操作較複雜且是收費的統計軟體。然而,R同樣是做meta分析的絕佳平臺,因為統計分析正是R語言的強項,並且R語言上已經包含了許多針對meta分析的軟體包,可以滿足meta分析的各個方面需求。## 具體操作

①效應量的合併

運用Meta自己帶的數據集------------data(Olkin95)

Olkin95是急性心肌梗塞後溶解血栓劑治療的一個數據集,共有author,year, event.e, n.e, event.c, n.c六個變數,分別代表納入文獻的第一作者,發表年份,實驗組的有效患者數,實驗組的總人數,對照組的有效患者數和對照組的總人數。兩分類資料的metabin命令metabin命令能夠計算兩分類資料的RR、OR、RD和AS(反正弦)差異值,並可用MH,方差倒數和Peto方法聯合估計效應值。

具體命令格式如下:metabin(event.e,n.e, event.c, n.c, studlab, data=NULL, subset=NULL, sm=」RR」, level= 0.95, leve1.comb=level,comb.fixed=TRUE, comb.random=TRUE) metabin命令中,eevent.e, n.e, event.c, n.c分別為試驗組事件發生例數、觀測例數、對照組事件,發生例數、觀測例數,data為選取分析的數據集,studlab為標籤選項,subset為可選數據集中的子集,sm選項可以選擇聯合估計的效應值OR、RR、RD和AS值。level選項為選擇單個研究的置信區間範圍。leve1.comb命令為選擇合併效應量的置信區間的範圍。comb.fixed與comb.random分別為選擇固定效應模型或隨機效應模型。

代碼如下

  1. library(meta)
  2. data(Olkin95)
  3. head(Olkin95)
  4. meta1<- metabin(event.e, n.e, event.c, n.c,
  5. data=Olkin95, sm="RR",studlab=paste(author, year))
  6. summary(meta1)#彙報具體的結果

一致性檢驗結果提示,納入Meta分析的各研究之間不存在有統計學意義的異質性(P=0.115).所以採用固定效應模型(Mantel-Haenszelmethod),結果顯示總體的效應值RR=0.7728, 95%CI: 0.7342-0.8135,z=-9.8421,P< 0.0001,因此,統計學上可以作出溶解血栓劑有預防急性心肌梗塞的作用。

②森林圖的繪製

森林圖的繪製用forest()命令,具體的命令如下:

  1. jpeg("picture.jpeg", height=7600,width_=4800, res=360)
  2. forest(meta1)
  3. dev.off()

③發表偏倚的檢測

發表偏倚的命令是metabias(),也可以通過漏斗圖定性判斷funnel(),具體的命令如下:

  1. > metabias(meta1,method.bias="linreg")
  2. Linear regression test of funnel plot asymmetry
  3. data: meta1
  4. t = -1.7704, df = 68, p-value = 0.08115
  5. alternative hypothesis: asymmetry in funnel plot
  6. sample estimates:
  7. bias se.bias slope
  8. -0.2891100 0.1633045 -0.2089214

結果顯示,t=-1.7704,P=0.08115,不存在發表偏倚

funnel(meta1)繪製漏斗圖

漏斗圖對稱,也表明不存在發表偏倚

④敏感性分析

敏感性分析的目的是可以粗略地看出每個研究對總估計效應的影響有多大。meta包中的命令是metainf()。metainf(meta1),隨機效應模型需要修改參數pooled=random,而這裡默認是固定效應模型。而對其繪製敏感性分析的森林圖,具體的代碼是

  1. forest(metainf(meta1,pooled= fixed)

原創:工程師2號

文章轉自科研谷微信公眾號

推薦閱讀:

相關文章