科研星球

单臂研究连续型结局Meta分析的R软件实现

1. 前言

随机对照试验(randomized controlled trials,RCTs)是公认的最佳治疗性研究设计方案,但有时来自RCTs的证据缺乏或不足以回答所有临床问题,或有时不需要RCTs,或RCTs不可行或不恰当,如新药I期临床试验,则可以采用单臂试验(Single-arm trials)设计方法。所谓单臂试验,又称为单臂研究(single-arm study,one-arm study),是指将具有某种靶健康状况的个体样本给予试验性治疗并观察某种治疗效应的设计。在该设计方案中,所有受试对象都在同一观测组,不设立其他试验组或对照组,单臂试验获得的观察指标按资料性质可以分为单组设计定量资料和单组设计定性资料,按观测指标的数量可以分为单组设计一元资料和单组设计多元资料;定性资料常采用率表示,并以95%可信区间来表示结果的可信度,定量资料则一般用均数±标准差表示。二分类资料有比例(proportion)、率(rate)、比(odds)等,定量资料有均数、中位数等。


单臂研究的Meta分析,可以根据效应指标、数据(原始或经过转换)分布特点,一般均可以采用方差倒数法合并效应量;也可以根据不同的数据类型采用其他的特殊模型,本文从我们的新作《实用循证医学方法学(第3版)》中选取针对连续型数据效应指标为中位数,以及前后测量设计等特殊情况下Meta分析的R软件实现过程。

 

2. 准备工作

2.1 数据  

本文数据均来自《实用循证医学方法学(第3版)》所引用前人的研究数据,具体见下。


2.2 R软件及扩展包 

R软件(version4.1.2);metafor包 (version 3.0-2),metamedian包(version 0.1.5)。两者均需提前安装,方法比较简单,可以阅读本公众号已发布的相关文章,此处不再介绍。

 

3. 效应指标为中位数Meta分析过程

3.1 以data.frame() 函数建立一个名为example1.data的数据框,数据来metamedian包自带帮助文件的示例数据。

> example1.data<-data.frame(study=c("study1","study2","study3","study4"),

 min.vals= c(0.7, NA, 1.1, NA),

 q1.vals =c(NA, 5.2, 5.3, NA),

 med.vals =c(8.7, 10.7, 11.0, NA),

 q3.vals =c(NA, 5.2, 5.3, NA),

 max.vals = c(22.2, NA, 24.7, NA),

 n.vals =c(52, 34, 57, 90),

 mean.vals =c(NA, NA, NA, 12.2),

 sd.vals =c(NA, NA, NA, 4.2))


该数据含有四个研究,数据中含有study、min.vals、q1.vals、med.vals、q3.vals、max.vals、n.vals、mean.vals、sd.vals等变量名分别表示最小值、第一四分位数、中位数、第三四分位数、最大值、样本量、均数、标准差。可以看出,测量结局分别有四种不同的报告形式,如果每个研究未报告相应的测量结局,则该变量数据以NA表示。

 

3.2 加载metamedian包,以qe() 函数通过分位数估计法(quantile estimation method)来进行Meta分析(随机效应模型)。

> library(metamedian)

> qe(min.g1 =example1.data$min.vals,

q1.g1 =example1.data$ q1.vals,
med.g1 =example1.data$med.vals,
q3.g1 = example1.data$q3.vals,
max.g1 = example1.data$max.vals,
n.g1 = example1.data$n.vals,
mean.g1 =example1.data$ mean.vals,
sd.g1 =example1.data$ sd.vals)


具体结果如下:

Random-Effects Model (k = 4; tau^2estimator: REML)
tau^2 (estimated amount of totalheterogeneity): 1.5137 (SE = 1.5174)
tau (square root of estimated tau^2value):      1.2303
I^2 (total heterogeneity / total variability):   88.82%
H^2 (total variability / samplingvariability):  8.95
 
Test for Heterogeneity:
Q(df = 3) = 17.3452, p-val = 0.0006
Model Results:
 
estimate      se    zval    pval   ci.lb   ci.ub
 10.7490 0.6815  15.7716  <.0001 9.4132  12.0847  ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1

 

报告的拟合随机效应模型的结果,上1/3部分是异质性参数(异质性方差tau、I2统计量、H2统计量的结果,中间部是分是Q统计量检验结果;下1/3部分合并中位数点估计及95%CI为10.75(9.41,12.08)。

 

4. 前后测量设计单臂研究连续型结局的Meta分析过程

重复测量设计(repeated measurement design)在生物医学领域常用的设计方法,前后测量设计是重复测量数据最简单的一种情况,一般指未设独立对照组的单臂前后研究(uncontrolled before-after studies),该设计类型,对于同一个研究对象而言,因为后一次的测量可能会受到前次结果的影响,所以前后测量值之间存在相关性,不能采用经典的Meta分析来处理此类数据。


4.1 以data.frame() 函数建立一个名为example2.data的数据框,数据来Morris等的文献。

> example2.data<-data.frame(
m_pre  = c(30.6, 23.5, 0.5, 53.4, 35.6),
m_post = c(38.5, 26.8, 0.7, 75.9, 36.0),
sd_pre = c(15.0, 3.1, 0.1, 14.5, 4.7),
sd_post = c(11.6, 4.1, 0.1, 4.4, 4.6),
ni     = c(20, 50, 9, 10, 14),
ri     = c(0.47, 0.64, 0.77, 0.89, 0.44))

 

可以发现,针对此类数据的Meta分析,一般需要获得前后对照设计研究的样本量,观察指标的前、后测量值的均数及标准差,前后测量值相关系数等数据。

 

4.2 加载metafor包,并采用escalc() 函数计算标准化均数变化值,以rma()函数合并效应量,选择随机效应模型,以“REML”法估计研究间方差,过程如下:

> library(metafor)
> example2.data <-escalc(measure="SMCR", m1i=m_post, m2i=m_pre, sd1i=sd_pre, ni=ni,ri=ri, data=example2.data)
> rma(yi, vi, data=example2.data, method="REML",digits=2)


metafor包采用Becker算法估算前后测量设计研究的效应量及标准误。效应量有MC(原始均数变化值)、SMCC(通过变化值均数标准差计算标准化均数变化值)、SMCR(通过原始均数标准差标准计算准化均数变化值)等。结果如下:

Random-Effects Model (k = 5; tau^2estimator: REML)
tau^2 (estimated amount of total heterogeneity):0.32 (SE = 0.29)
tau (square root of estimated tau^2value):      0.56
I^2 (total heterogeneity / totalvariability):   81.47%
H^2 (total variability / samplingvariability):  5.40
 
Test for Heterogeneity:
Q(df = 4) = 17.48, p-val < .01
 
Model Results:
 
estimate    se zval  pval  ci.lb ci.ub
   0.91  0.29  3.19 <.01   0.35   1.47 **


结果解读:采用随机效应REML算法估算研究间方差为0.32,I2=81.47%,Q统计量相应P<0 .01,表明纳入Meta分析的研究间存在重度异质性;总的合并效应量SMD的点估计及95%CI为0.91(0.35,1.47),相应P<0.01,表明干预前后测量变化差异有统计学意义。

 

我们还可以用一行简单的命令绘制森林图、漏斗图(需要提醒的是,Meta分析少于10个研究不建议绘制漏斗图)、雷达图、标化残差图等,如图2所示。

> plot(rma(yi, vi, data= example2.data,method="REML", digits=2))

0.png

图2. 森林图、漏斗图、雷达图和标化残差图


5. 总结

综上,本文只介绍基于频率学框架下的分析方法,当然也可以在贝叶斯框架下分析。读者如需要全面或进一步了解更多诸如单臂研究数据、重复测量数据等复杂数据的Meta分析方法及软件实现方法,强烈建议阅读我们新近出版的两本精品图书《实用循证医学方法学(3版)》、《例解贝叶斯Meta分析:基于R语言》,必有所获。

 

6. 参考文献

[1]张天嵩,李博,钟文昭. 实用循证医学方法学[M].第3版.长沙:中南大学出版社,2021.

[2]张天嵩,董圣杰. 例解贝叶斯Meta分析:基于R语言[M].北京:人民卫生出版社,2021.


没有账号?