R语言meta分析(1)meta包

6字数 1738阅读 3427

介绍

从广义上讲,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分别为选择固定效应模型或随机效应模型。

代码如下


library(meta)
data(Olkin95)
head(Olkin95)
meta1<- metabin(event.e, n.e, event.c, n.c,
                data=Olkin95, sm="RR",studlab=paste(author, year))
summary(meta1)#汇报具体的结果

一致性检验结果提示,纳入Meta分析的各研究之间不存在有统计学意义的异质性(P=0.115).所以采用固定效应模型(Mantel-Haenszelmethod),结果显示总体的效应值RR=0.7728, 95%CI: 0.7342-0.8135,z=-9.8421,P< 0.0001,因此,统计学上可以作出溶解血栓剂有预防急性心肌梗塞的作用。

②森林图的绘制

森林图的绘制用forest()命令,具体的命令如下:

jpeg("picture.jpeg", height=7600,width=4800, res=360)
forest(meta1)
dev.off()
image.png
③发表偏倚的检测

发表偏倚的命令是metabias(),也可以通过漏斗图定性判断funnel(),具体的命令如下:

> metabias(meta1,method.bias="linreg")

    Linear regression test of funnel plot asymmetry

data:  meta1
t = -1.7704, df = 68, p-value = 0.08115
alternative hypothesis: asymmetry in funnel plot
sample estimates:
      bias    se.bias      slope 
-0.2891100  0.1633045 -0.2089214 

结果显示,t=-1.7704,P=0.08115,不存在发表偏倚

funnel(meta1)绘制漏斗图

漏斗图对称,也表明不存在发表偏倚

④敏感性分析

敏感性分析的目的是可以粗略地看出每个研究对总估计效应的影响有多大。meta包中的命令是metainf()。metainf(meta1),随机效应模型需要修改参数pooled=random,而这里默认是固定效应模型。而对其绘制敏感性分析的森林图,具体的代码是

forest(metainf(meta1,pooled= fixed)

推荐阅读更多精彩内容