dxy logo
首页丁香园病例库全部版块
搜索
登录

HR值及其可信区间的网络meta分析(R软件gemtc程序包)

心血管内科医师 · 最后编辑于 2016-08-28 · 来自 Android · IP 广西广西
7823 浏览
这个帖子发布于 8 年零 328 天前,其中的信息可能已发生改变或有所发展。

没有什么能够阻挡,你对自由的向往。

                                                                                                                                                                 ——前记

各位园友大家好,上次跟大家一起挖掘了R软件gemtc程序包的代码。接下来我们换个角度,继续开挖。我们知道肿瘤学的研究,HR是非常重要的指标,它既包括事件,也涵盖了时间因素。因此,几乎每个关于肿瘤药物的生存率事件都报告了HR值及其上下可信区间。如果能利用这些现成的HR值及其可信上下区间的数据类型进行网络meta分析 ,无疑对研究意义重大。那么这类meta分析该如何实现呢?接下来让我们继续来挖掘gemtc程序包。

打开R 软件,安装 “gemtc”、”jags”程序包

#输入加载程序包的命令

library("gemtc")

library("rjags")

#建立数据

# Create a new network by specifying all information.

treatments <- read.table(textConnection('

id description

1 "Treatment A"

2 "Treatment B"

3 "Treatment C"

4 "Treatment D"'), header=TRUE)

data <- read.table(textConnection('

study treatment diff  std.err

1 1  1.058     1.654

1 2  NA        NA

2 1  0.005     0.635

2 2  NA        NA

3 1  -0.409    1.640

3 2  NA        NA

4 1  0.273     1.642

4 2  NA        NA

5 3  -0.159    0.612

5 1  NA        NA

6 3  0.027     0.713

6 1  NA        NA

7 3  -1.138    1.158

7 1  NA        NA

8 3  -0.029    1.417

8 1  NA        NA

9 3  -0.154    0.070

9 2  -0.209    0.072

9 1  NA        0.066

9 4  0.055     0.064

'), header=TRUE)#构建网络

network <- mtc.network(data.re=data, description="Example", treatments=treatments)

#制作网络图

plot(network)

img

#建立模型

model <-mtc.model(network,type="consistency", factor = 2.5, n.chain=4,likelihood="binom",link="cloglog",linearModel="random")

#设置参数,进行运算

results <- mtc.run(model, n.adapt = 10000, n.iter = 100000, thin = 10,sampler ="JAGS")

#输出森林图

forest(relative.effect(results, "1"))

img

#输出排序结果

rank.probability(results,preferredDirection=-1)

img

OK,Gemtc程序包实现HR数据类型的网络meta分析运行结束。

接下来让我们倒过来,想一下这个数据集为何是这种结构。

我们之前讲到大部分研究会直接给出HR值及其可信上下区间。在做传统meta分析时,这类数据类型是可以进行合并的,只要将这类数据转换为效应值的对数值(InHR)以及标准误(SE)即可。同样的,网络meta分析亦是如此。所以这个数据集需要diff(InHR)和std.err(SE)两列数据。

如果是双臂的临床试验,根据HR及其上下区间即可计算出InHR和SE了(InHR大家都懂,SE=  

img
,HR uci表示HR值得可信上限,HRlci表示可信下限)。然后将基础臂(base arm),也叫对比组,设置为NA,这样就有了诸如以上的数据类型

1   1   1.058     1.654

1   2   NA         NA

第一列的“1”表示第一个研究,第二列的数据表示治疗干预措施的代号(1表示Treatment A,2表示Treatment B)。将Treatment B作为基础臂,所以都标记为NA,然后1.058 和 1.654 分别为该研究的diff和std.err。

如果是两臂以上的多臂试验,情况就不一样了

img

以1作为基础臂,diff标注为NA。 问题在于,为什么std.err这一列不是NA,而是0.066呢?

答案还得从这篇逆天的文章说起

img

为什么说它逆天呢?因为它提出了将HR和OR数据合在一起进行网络meta分析的壮举!而活学活用的人,将它的方法继续发扬光大,从而改良出了实现了HR数据类型的网络meta分析。

 

img

文中列举了这么一串数据。表格中In(HR)就是指diff,se(In(HR))则是指两个干预措施之间的SE。(注意两个干预措施之间的SE不是std.err,后者是指每个干预措施的)

而每个干预措施的std.err则需要进一步转换

使用如下公式

img

seb指干预措施b对应的se。sek,b则是指干预措施k和b之间的se。

OK, 那么根据公式7 我们就可以计算出

img

这也就是为什么placebo作为基臂,对应的std.err是0.066的原因。

根据公式8可以计算出

img

同样的可以计算出Salmeterol的SE为0.070,Fluticasone的SE为0.063。

因此也就有了如下的数据了

9 3    -0.154    0.070

9 2    -0.209    0.072

9 1    NA         0.066

9 4    0.055     0.064

就这样,Gemtc程序包实现HR数据类型的网络meta分析就策到这里吧。

14 85 8

全部讨论(0)

默认最新
avatar
14
分享帖子
share-weibo分享到微博
share-weibo分享到微信
认证
返回顶部