每日最新頭條.有趣資訊

Meta 分析的10個問題:從理論概念到操作實踐

本文想對Meta分析做一些提煉和總結,為方便敘述,還是以問答形式做一個分享吧。

擬回答的問題:


  1. Meta分析=系統綜述=循證醫學?

  2. 只有RCT才能做Meta分析嗎?

  3. Meta分析常用的效應指標有哪些?

  4. Meta分析常用的軟體有哪些?

  5. Meta分析的步驟是什麼?

  6. Meta分析的結果如何解讀?

  7. 單組率的meta分析R編程

  8. 連續變數效應指標的Meta分析R編程

  9. 分類變數效應指標的Meta分析R編程

  10. Meta回歸的R編程

首先,先澄清一些重要的,概念上的誤解。

1.Meta分析=系統綜述=循證醫學?

為了要說清這個問題,請不要猴急,我們先一起理一理他們各自的來龍去脈。

Meta分析(Meta-analysis, MA),其思想最早可追溯到17世紀法國數學家Blaise Pascal對「機遇」研究,後被用於天文觀測數據的比較、合併。1904年英國數學家及統計學家Karl Pearson在「血清接種預防腸熱病的療效」研究中,首次在醫學界使用了後來被稱為Meta分析的方法。

1907年,美國的內科醫生,流行學家Joseph Goldberger提出了綜合分析的4步法,勾勒出了現在的Meta分析步驟。英國生物統計學家,大家耳熟能詳的Ronald Fisher在1920年提出了合併P值的方法,奠定了Meta分析統計模型的基礎。不過Meta分析這一術語首次正式被提出,還是在Gene V. Glass的《 Primary, Secondary and Meta-analysis of Research 》這一著作中。

關於Meta分析的這段歷史,可見下圖:

那麼meta分析的定義,具體是:

Miquel Porta在流行病學詞典裡給出了一個較為寬泛的定義:


A statistical analysis of resultsfrom separate studies, examiningsources of differences in results amongstudies, and leading to a quantitative summary of the results if the results are judgedsufficiently similar to support such synthesis. (Miquel Porta ,2008)

而考科蘭給出了一個更為嚴格的定義:


The use of statistical techniques in a systematic review to integrate the results of included studies. Sometimes misused as a synonym forsystematic reviews, where the review includes a meta-analysis.(The Cochrane Collaboration)

兩種定義確有差別,但從本質上將,Meta分析其實就是一種數據合併的統計方法。如果嚴格限定其使用場景,如隻用於系統綜述中,那就是考科蘭的定義,如果不限定其使用場景,那就是Miquel Porta的定義。

前面提到「系統綜述」,要說起清楚系統綜述,還得拉上另一大家耳熟能詳的術語:「循證醫學」。

循證醫學(Evidence-Based Medicine, EBM),其思想源於1979年英國流行病學家,產科醫生Archibald Leman Cochrane提出的「收集RCT,進行綜合分析」這一理念,不過「循證醫學」醫學這一術語也是到了1991年才由加拿大的學者Gordon Guyatt首次提出,而「系統綜述」則是在1993年,由BMJ期刊的編輯和 英國 Cochrane的專家商討後正式提出, 也就是在此時,循證醫學,系統綜述與Meta分析才完成了彼此的結合。

一個過程,請見下圖:

具體說到循證醫學的定義,最為經典的當屬David L. Sackett給出的包含現能獲得的最佳證據、臨床大夫的診療經驗以及病人價值觀和期許三方面要素的定義。

Theconscientious, explicitand judicioususe of current best evidence in making decisions about thecare of individual patients.

The practiceof evidence-based medicine means integrating individual clinical expertise withthe best available external clinical evidence from systematic research.


循證醫學是慎重、準確和明智地應用當前所能獲得最好的研究證據,整合最佳臨床證據、臨床經驗以及患者價值觀來確定患者的治療措施的一門學科。

那麼如何獲得當前最好的研究證據呢?這就是系統綜述所要回答的問題。

具體到系統綜述,不同的學者也給出了不同的定義,但究其含義,無非是指針對某特定的研究問題,系統深入地查找、選擇、合併高質量研究證據,以尋求問題的答案。在此過程中,Meta分析可用(定量合併),可不用(定性合併)

A summary of the medical literaturethat use explicit methods to perform a thorough literature search and criticalappraisal of individual studies and that uses appropriate statisticaltechniques to combine these valid studies. (David L. Sackett, 2000)

Theapplication of strategies that limit bias in the assembly,

criticalappraisal, and synthesis of all relevant studies on a specific topic.meta-analysis may be, but is not necessarily, used as part of this process. (MiquelPorta ,2008)

A systematic review is a high-leveloverview of primary research on a particular research question that tries toidentify, select, synthesize and appraise all high quality research evidencerelevant to that question in order to answer it.(The Cochrane Collaboration )

因此,總結而言,Meta分析(MA)、系統綜述(SR)以及循證醫學(EBM)的關係如下:



2.只有RCT才能做Meta分析嗎?

循證醫學思想的初衷是收集合併RCT研究,但隨著其不但擴張延伸,非隨機乾預研究、觀察性研究、診斷試驗等都可以進行Meta分析。

3.Meta分析常用的效應指標有哪些?

依據不同的結局數據的屬性,效應指標也有所不同。具體而言,歸納如下:

部分效應指標的特性歸納如下:

效應指標的選擇參考:

4.Meta分析常用的軟體有哪些?

通用的統計軟體Stata, R均可以,專用軟體Revman,以及CMA等其他專用小軟體。當然,SAS其實也是可以的,不過此處不做推薦。

5. Meta分析的步驟是什麼?

這一部分,網上資料較多,操作講起來也費勁,就曬一張雞湯式的幻燈片吧,6步搞定Meta分析!

6.Meta分析的結果如何解讀?

Meta分析的結果主要靠圖形展示,這些圖中的男一號就是森林圖,女一號就是漏鬥圖。此外,還有其他各種不同用途的圖形。

先看看男一號森林圖及其解讀:

再看看女一號漏鬥圖:

其他的圖,在此不做具體介紹了。再看一個Meta回歸圖吧,Meta回歸可以理解為研究層面的回歸分析。

接下來是操作部分,考慮到費用、易獲得性和易用性,推薦的軟體首選R軟體。安裝R後,首選安裝meta、metafor包,並載入。

install.packages("meta")

install.packages("metafor")

library(meta)

library(metafor)

7.單組率meta分析的R編程

對於一些患病率率,耐葯率的研究,對於診斷試驗的靈敏度、特異度的匯總,都可以考慮採用單組數據的Meta分析。

具體到R編程,可採用Meta包的metaprop函數。


metaprop(event, n, data=,sm=)

metaprop最重要的幾個參數:

event:事件數;

n:總數;

data:數據來源

sm:合併率時的採用的效應指標,其實為各種率的轉換方法。

一個單組數據meta分析的R編程示例:


event <- c(81, 15, 0, 1)

n <- c(263, 148, 20, 29)

m1 <- metaprop(event, n, sm="PLOGIT")

forest(m1)

funnel(m1)

森林圖效果:

8.連續變數效應指標的Meta分析R編程

對於連續性變數效應指標,同樣可以用Meta包的metacont函數完成。


metacont(n.e, mean.e, sd.e, n.c, mean.c, sd.c,data=,sm=)

主要參數中,n.e, mean.e, sd.e分別表示試驗組(暴露組)的樣本量,均數,標準差;n.c, mean.c, sd.c表示對照組(非暴露組)的樣本量,均數,標準差; sm標識匯總的效應指標,如smd,wmd等。

一個連續變數效應指標的Meta分析R編程示例:

data(Fleiss93cont)

meta2 <- metacont(n.e, mean.e, sd.e, n.c, mean.c, sd.c, data=Fleiss93cont, sm="SMD")

forest(meta2)

funnel(meta2)

9.分類變數效應指標的Meta分析R編程

對於分類變數效應指標,同樣可以用Meta包的metabint函數完成。


metabin(event.e, n.e, event.c, n.c, data=,sm=)

主要參數中,event.e, n.e分別表示試驗組(暴露組)的事件數和樣本量;event.c, n.c,表示對照組(非暴露組)的事件數和樣本量;sm表示匯總的效應指標,如RR,OR等。

一個分類變數效應指標的Meta分析R編程示例:

data(Olkin95)

meta4<- metabin(event.e, n.e, event.c, n.c, data=Olkin95, subset=c(41,47,51,59), sm="RR", method="I")

forest(meta4)

funnel(meta4)

10.Meta回歸的R編程

meta回歸的實現其實需要藉助另一個包metafor, metafor的功能比meta包更豐富,可以繪製各種豐富的圖形(如前面提到的星狀圖、拉貝圖、Begg"s, Egger"s檢驗圖),還可以擬合各種線性模型。

一個Meta回歸的R編程的示例:


data(dat.colditz1994, package="metafor")

data10 <- dat.colditz1994

mh2 <- metabin(tpos, tpos+tneg, cpos, cpos+cneg,data=data10, studlab=paste(author, year))

mh2.mr <- metareg(mh2, ablat)

bubble(mh2.mr)

更多具體的函數和參數解釋,可以查閱R軟體包的幫助文檔。此外,還有診斷試驗的meta,網路meta本文未做說明。

最後,摘抄一句話,出自某位統計先哲,未找到出處,先擱這裡,作為結尾。


如果你愛一個人,就讓他做Meta分析,因為那裡是天堂;如果你恨一個人,也讓他做Meta分析,因為那裡是地獄!

更多閱讀


TAG: |
獲得更多的PTT最新消息
按讚加入粉絲團