科研星球

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分析的这段历史,可见下图:

0 (1).jpeg


那么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分析才完成了彼此的结合。


一个过程,请见下图:

0.jpeg


具体说到循证医学的定义,最为经典的当属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.


循证医学是慎重、准确和明智地应用当前所能获得最好的研究证据,整合最佳临床证据、临床经验以及患者价值观来确定患者的治疗措施的一门学科。


0 (2).jpeg


那么如何获得当前最好的研究证据呢?这就是系统综述所要回答的问题。


具体到系统综述,不同的学者也给出了不同的定义,但究其含义,无非是指针对某特定的研究问题,系统深入地查找、选择、合并高质量研究证据,以寻求问题的答案。在此过程中,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)的关系如下:

0 (3).jpeg

0 (5).jpeg



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


循证医学思想的初衷是收集合并RCT研究,但随着其不但扩张延伸,非随机干预研究、观察性研究、诊断试验等都可以进行Meta分析。

0 (4).jpeg


3.Meta分析常用的效应指标有哪些?


依据不同的结局数据的属性,效应指标也有所不同。具体而言,归纳如下:

0 (6).jpeg


部分效应指标的特性归纳如下:


0 (7).jpeg


效应指标的选择参考:

0 (8).jpeg




4.Meta分析常用的软件有哪些?

通用的统计软件Stata, R均可以,专用软件Revman,以及CMA等其他专用小软件(相关软件工具请在科研星球网站内自行搜索)。当然,SAS其实也是可以的,不过此处不做推荐。

0 (9).jpeg



5. Meta分析的步骤是什么?


这一部分,网上资料较多,操作讲起来也费劲,就晒一张鸡汤式的幻灯片吧,6步搞定Meta分析!

0 (10).jpeg




6.Meta分析的结果如何解读?


Meta分析的结果主要靠图形展示,这些图中的男一号就是森林图,女一号就是漏斗图。此外,还有其他各种不同用途的图形。


0 (11).jpeg


先看看男一号森林图及其解读:


0 (12).jpeg

再看看女一号漏斗图:


0 (13).jpeg


其他的图,在此不做具体介绍了。再看一个Meta回归图吧,Meta回归可以理解为研究层面的回归分析。


0 (14).jpeg


接下来是操作部分,考虑到费用、易获得性和易用性,推荐的软件首选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)


森林图效果:0 (15).jpeg

0 (16).jpeg



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)

0 (17).jpeg



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)

0 (18).jpeg



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)


0 (19).jpeg


更多具体的函数和参数解释,可以查阅R软件包的帮助文档。此外,还有诊断试验的meta,网络meta本文未做说明。


最后,摘抄一句话,出自某位统计先哲,未找到出处,先搁这里,作为结尾。


如果你爱一个人,就让他做Meta分析,因为那里是天堂;如果你恨一个人,也让他做Meta分析,因为那里是地狱!


没有账号?