分享

结局为连续变量的Meta分析来了~

 weipijieli 2021-07-12
关于结局为分类变量(如:有vs无)的Meta分析,请查看往期内容:BMJ子刊:手把手教你用R语言实现meta分析~

而这篇文章主要介绍干预性研究中结局为连续变量(continuous variable)的Meta分析[1],并且附上可重复的R代码!

当然,Meta分析远不止这些,还包括其他重要的步骤,比如如何提出一个好的科学问题(应该是最重要的一步!),文献的阅读和筛选,数据的提取以及质量评估等等,这些内容将会在以后介绍。

好了,马上进入今天的操作部分: 


图片


安装和载入R包 
# install.packages('meta')
library(meta)
数据的准备 
mydata <- data.frame(
  study = c('Mitsui2003', 'Mitsui2005a', 'Mitsui2005b', 'Mitsui2011', 'Telmeltas2009_1',
            'Telmeltas2009_2', 'WBPark2010_1', 'WBPark2010_2', 'YHu2012', 'YingJin2011_1', 'YingJin2011_2'),
  n1 = c(7, 12, 8, 10, 10, 9, 9, 6, 8, 9, 6),
  m1 = c(23.2, 28.2, 27.9, 27.9, 43.4, 53.1, 9.7, 10.3, 33.8, 36.2, 37.2),
  s1 = c(4.2, 0.9, 2.0, 2.0, 5.7, 7.9, 4.1, 4.5, 3.8, 1.7, 2.0),
  n2 = c(5, 11, 10, 9, 5, 5, 11, 9, 8, 10, 10),
  m2 = c(39.0, 35.9, 33.4, 36.1, 61.8, 61.8, 9.6, 8.1, 40.7, 42.3, 42.3),
  s2 = c(7.4, 1.4, 1.2, 2.7, 9.4, 9.4, 4.2, 7.4, 4.0, 4.1, 4.1),
  md = c(-15.8, -7.7, -5.5, -8.2, -18.4, -8.7, 0.1, 2.2, -6.9, -6.1, -5.1),
  sd = c(5.7, 1.2, 1.6, 2.4, 7.1, 8.4, 4.2, 6.4, 3.9, 3.2, 3.5),
  se = c(3.337, 0.486, 0.759, 1.082, 3.866, 4.697, 1.870, 3.391, 1.941, 1.465, 1.799),
  cohen_d = c(-2.772, -6.608, -3.438, -3.481, -2.607, -1.033, 0.024, 0.345, -1.783, -1.917, -1.467),
  cohen_se = c(0.814, 1.060, 0.744, 0.728, 0.726, 0.591, 0.449, 0.531, 0.591, 0.555, 0.578),
  g = c(1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1)
)
mydata

图片

研究目的:在脊柱损伤的动物模型中,评估干细胞治疗是否可以改善膀胱功能。其中,排尿膀胱压为评价的结局,是一个连续变量。

上述的数据结构为11(行)× 13 (列),即一共纳入11项研究以及13个变量。

其中,13个变量的解释如下: 

study: 纳入分析的研究名称。
n1: 治疗组的样本量。
m1: 治疗组中,治疗前后差异的均数。
s1: m1的标准差。
n2: 对照组的样本量
m2: 对照组中,治疗前后差异的均数。
s2: m2的标准差。
md: 两个组别间的均数差值(mean difference,MD)。
sd: 样本(治疗组+对照组)汇总之后得到的标准差。计算公式如下:

图片

se: 样本汇总之后得到的标准误。计算公式如下: 

图片

cohen_d: 效应量,这里指的是标准化后的均数差值(Standardized mean difference, SMD),也是我们最感兴趣的一项指标(差值越大,说明疗效越显著)。计算公式为:SMD = MD/SD。
cohen_se: SMD的标准误。
g: 后续亚组分析中的两个组别,这里指的是两种不同的动物模型。


结局为连续变量的Meta分析
mymeta <- metacont(n1, m1, s1, n2, m2, s2,   # 六个参数
                   sm = 'SMD',   # 选择标准化的均数差值,即SMD
                   method.smd = 'Hedges',   # 或选择“Cohen”
                   study,     # 代表纳入研究的名称
                   byvar = g, # 亚组分析的组别
                   data = mydata)

print(mymeta, digits= 2)  # 显示小数点后两位
注:从上述代码可知,函数metacont()用于结局为连续变量的分析;而函数metabin()用于结局为二分类变量的分析(BMJ子刊:手把手教你用R语言实现meta分析)。

图片

如果可以重复出上图,说明meta分析已经初步完成了图片

上面结果中含有非常多的信息,包括每项研究的名称,SMD,可信区间,固定效应,随机效应,异质性,以及meta分析方法的详细信息等。其中: 

 在固定效应模型中,SMD = -1.45, p < 0.0001,提示治疗可改善症状。同样,在随机效应模型中,SMD = -1.97, p < 0.0001,提示与上述结果类似的疗效。

 评估了各个研究间的异质性。其中,Higgins’ I2 = 82.6%,  Cochrane Q statistics的p值小于0.0001,提示异质性的存在。

 为亚组分析(Subgroup analysis)的结果。

 Meta分析相关的计算过程和方法。

为了让上结果更加直观,可以用森林图呈现。


森林图
# 制作森林图
pdf('forestplot.pdf', width = 10, height = 6)

forest(mymeta,
       comb.fixed= TRUE,   # 显示固定效应模型
       comb.random= TRUE,  # 显示随机效应模型
       digits= 2,          
       rightcols= c('effect', 'ci'))  # 森林图的右侧只显示SMD和可信区间

dev.off()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多