分享

【R分享|实战】如何用meta包实现meta分析

 科白君 2021-08-22



 不求做的最好,但求做的更好。”   --科白君


"R实战"专题·第14篇
  编辑 | 科白维尼
  2742字 |5分钟阅读

本期推送内容
最近我正在收集全球数据,meta分析。有同学刚好在公众号私信,表示想学习一下meta分析,因此本期内容做一个meta分析比较简单且常见的步骤过程。meta分析是指将多项研究结果结合起来进行加权分析。其实meta分析最早并且更多地用在医学领域,逐渐地在经济学、金融学、社会科学。目前,meta分析也在工学、生态学土壤学农学等学科中越来越受欢迎。下面会介绍meta分析的优势如何更好地完成一项meta分析的研究。重中之重:如何利用R语言完成meta分析的基本过程。

01

为什么要做meta分析


1)对同一个主题的多项研究进行一致性评价

2)对同一个主题的多项研究进行系统性评价和总结普适结论

3)能够总结出现有课题存在的科学问题,进一步指明研究方向

4)当受某些条件约束时,例如受时间或研究对象的限制,meta分析可能更好

02

meta分析主要的步骤过程


1)首先确定所需研究的主题或科学问题

2)然后制定检索词,尽可能全面广泛地收集实验组与对照组的数据

3)确定保留和排除的标准,剔除不符合要求的文献

4)并选择和提取文献对应数据,主要包含原文的结果数据和图表

5)进行试验的质量评估和描述特征

6)进一步进行统计学分析

7)得出结论并解读结果

主要的处理方法如下:

异质性检验(齐性检验,即通过最常用的Q检验,I^2值等);采用 Homogeneity test(Q 检验) (检验水准为α=0.1) 。当P<0.1时,表明研究间存在异质性; 否则研究具有同质性。再结合I^2(0~100%)定量分析异质性的大小,此值越大,则表明研究间同质性愈大。根据推荐的标准,当I^2的值小于或等于40%时,表明研究异质性的合格,此时应用固定效应模型(Fixed Effects Model);而当异质性的标准大于推荐标准值时,应选采用随机效应模型(Randomized Effects Model)进行 meta 分析。(如果不确定的时候,建议使用随机效应模型)

②统计合并效应量(加权合并,计算效应值及95%的置信区间)并进行统计推断;

③一般用森林图展示单个试验的结果和合并后的结果;

④敏感性分析:通常使用Egger's法和Begg's法, 或者使用"倒置的漏斗图"对所选择的数据进行发表偏倚检测。


03

R语言如何实现meta分析



第一步:合并效应值;
这里使用R语言meta包中自带数据集--"Olkin95"
# meta-------------
install.packages("meta")
library(meta)
data("Olkin95")
?Olkin95
# 这是急性心肌梗死后溶栓治疗的数据集
head(Olkin95)
# 数据集包含作者、时间、实验组结果及其样本量、对照组结果及其样本量,共6个变量

# 查看Examples后我们可以看到meta分析时所使用的函数为metabin
?metabin
结果如下:

继续看该函数的Examples,可以看到对应使用该数据集--"Olkin1995"的使用命令;

meta<- metabin(ev.exp, n.exp, ev.cont, n.cont,
                data=Olkin1995, sm="RR",studlab=paste(author, year))
# sm 一个字符串,表示哪个汇总度量(“RR”,“OR”,“RD”,“ASD”,或“DOR”)将用于汇集研究,请参见details。
# studlab 带有研究标签的可选向量。
summary(meta)#汇报具体的结果

结果如下:

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

第二步:森林图的绘制;

这里我们使用forest( )函数进行绘制效应值的森林图,代码如下:
?forest
# 可以先学习对应参数的含义。
# 主要看看例子的使用
jpeg("meta_forest.jpeg", height=6000 , width=4500, res=360)
forest(meta)
dev.off()

结果如下:


第三步:发表偏倚的检验;
利用metabias()函数来检验是否存在发表偏倚,代码如下:
metabias(meta,method.bias="Egger")
# 通常使用Egger方法來检验发表偏倚。
# 或者使用漏斗图加以判断
funnel(meta)

结果如下:

从结果来看,t=-1.77, P=0.0811,结果不存在发表偏倚。

从漏斗图来看也可以看出分布对称,当然这种图的形式不太容易判断是否存在发表偏倚,还是建议上述使用的函数来检验。

第四步:敏感性分析;

敏感性分析可以粗略地看出各研究对总估计效应的影响有多大。这意味着将各研究进行一次性排除再进行,我们使用metainf()函数,代码如下:

metainf(meta,pooled="fixed")
# 这里默认pooled为固定效应,fixed。注:如果随机效应模型改为pooled="random"

结果如下:

作者唠叨:meta分析目前在生态学、土壤学、农学领域刚刚兴起,我认为可以趁着这个热点,可以系统的学习一下meta分析,通过meta分析再结合自己的实验数据说不定能发出一篇很不错的文章。另外,挑选一个好的课题能够让你的meta分析和故事做的更完美。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多