而这篇文章主要介绍干预性研究中结局为连续变量(continuous variable)的Meta分析[1],并且附上可重复的R代码!当然,Meta分析远不止这些,还包括其他重要的步骤,比如如何提出一个好的科学问题(应该是最重要的一步!),文献的阅读和筛选,数据的提取以及质量评估等等,这些内容将会在以后介绍。 # 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个变量。md: 两个组别间的均数差值(mean difference,MD)。 sd: 样本(治疗组+对照组)汇总之后得到的标准差。计算公式如下:cohen_d: 效应量,这里指的是标准化后的均数差值(Standardized mean difference, SMD),也是我们最感兴趣的一项指标(差值越大,说明疗效越显著)。计算公式为:SMD = MD/SD。g: 后续亚组分析中的两个组别,这里指的是两种不同的动物模型。
mymeta <- metacont(n1, m1, s1, n2, m2, s2, # 六个参数 sm = 'SMD', # 选择标准化的均数差值,即SMD method.smd = 'Hedges', # 或选择“Cohen” study, # 代表纳入研究的名称 byvar = g, # 亚组分析的组别 data = mydata)
print(mymeta, digits= 2) # 显示小数点后两位 如果可以重复出上图,说明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)的结果。
# 制作森林图 pdf('forestplot.pdf', width = 10, height = 6)
forest(mymeta, comb.fixed= TRUE, # 显示固定效应模型 comb.random= TRUE, # 显示随机效应模型 digits= 2, rightcols= c('effect', 'ci')) # 森林图的右侧只显示SMD和可信区间
dev.off()
|