R数据分析:用R语言做meta分析

这里以我的一篇meta分析为例,详细描述meta分析的一般步骤,该例子实现的是效应量β的合并

R包:metafor或meta包,第一个例子以metafor包为例。

1.准备数据集

2.异质性检验

install.packages("metafor")library(metafor)metamod<-rma(yi=β,data=metabirth3,sei=se,method="DL")#β是回归系数的值,se是标准误,DL表示选择的是随机效应模型,固定效应模型是method="FE"summary(metamod)#输出结果

可以看到I^2为28.34%,属于低度异质性,可采用固定效应模型。异质性低的时候可以采用固定效应模型和随机效应模型,结果差别不大,但高异质性只能选择随机效应模型,否则会使结果外推性受到约束。此处选择随机效应模型是出于保守情况考虑。

  • fixed-effect model是基于跨研究间不存在异质性的假设,也就是其合并时,默认运算是认为所纳入合并的研究均为同质;
  • random-effect model是基于跨研究间存在异质性的假设,该合并模型承认研究间异质性的存在,但是不对异质性加以处理;
  • 如果纳入合并的研究间存在异质性,尽管未达到我们常规设定的I^2>50%,但是在用fixed-effect model合并时,默认运算直接忽略这一部分异质性的存在,这样合并的结果会造成假阳性误差,而选用random-effect model合并时,尽管不处理异质性,但是其默认运算承认异质性的存在,合并结果更可信!
  • 3.森林图绘制

    forestplot<-forest(metamod,refline = 1,mlab="Random-effect Model for All Studies",                   slab=paste(metabirth3$author,metabirth3$year,sep=","),                   xlab="β",showweights = T)text(-500,6:1,pos=2,metabirth3$country)text(c(-1600,-500,300,800),8,pos=c(4,2,4,4),c("Author(s) and Year", "Location","Weight","β[95%CI]"),cex=1,font=2)#添加标签

    结果如下图

    黑色方块表示的是权重大小,对应着右方的weight,水平横线是95%置信区间。菱形是合并效应值,95%置信区间小于0,意味着meta分析结果有统计学意义。

    4.文献发表偏倚检验

    可以用漏斗图及Begger’s及Egger’s检验

    funnel(metamod)ranktest(metamod)#Begg's检验#regtest(metamod)#Egger's检验#

    可能是由于文献数量的限制,漏斗图呈现明显不对称模式,无法判断是由于发表偏倚所致还是文献数量太少的缘故

    可以看出Begg’s检验及Egger’s 检验的结果,P值都是大于0.05的,也就意味着没有发表偏倚。

    5.敏感性检验

    leavelout(metamod,digits = 3)

    往期内容:

    R数据分析:贝叶斯定理的R语言模拟

    R数据分析:用R语言做潜类别分析LCA

    R可视化:如何用R做一个让别人一目了然的图

    R语言:利用caret的dummyVars函数设置虚拟变量

    R数据分析:R Markdown:数据分析过程 告利器,你必须得学呀

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年1月8日
    下一篇 2021年1月8日

    相关推荐