为什么进行网状meta分析?
在临床实践中,若有一系列的药物可以治疗某种疾病,但RCT均是药物与安慰剂的对照,而药物互相之间的RCT都没有进行或很少,那么在这种情况下,想要进行药物间效应的比较就需要将间接比较和直接比较的证据进行合并,可用的方法为网状Meta分析。
网状meta分析的三个假设前提:
同质性假设
此与传统直接比较Meta分析相同,一般用Q统计量检验法,若检验结果无统计学差异,可认为纳入研究具有同质性,采用固定效应模型进行合并;否则需要探讨异质性来源,当无法解释统计学异质性时,采用随机效应模型进行合并,或提示不宜对纳入研究进行合并。
相似性假设
包括临床相似性和方法学相似性。临床相似性指AC和BC的两组试验中研究对象、干预措施和结局测量等的相似性,方法学相似性指两组试验的质量相似性。研究表明,若两个试验集足够相似,间接比较可以平衡两个试验集的偏倚,而且相比直接比较偏倚更小。
一致性假设
若既有直接比较结果又有间接比较结果,或同时有多个间接比较结果(如:A vs B可以通过AC和BC获得,亦可通过AD和BD获得),在决定是否合并这些结果时,则需要进行第3个水平的一致性检验,如果各比较结果之问差异小的话,认为符合一致假设,可以进行合并;如果出现不一致性,常提示直接比较或问接比较证据存在方法学缺陷,或两者临床特征有差异,或两种原因同时存在,此时需探讨出现不一致性可能的原因并考虑是否应合并直接比较和间接比较证据。
install.packages('gemtc')
install.packages('rjags')
library(gemtc)
library(rjags)
setwd('C:\\Users\\TP\\Desktop\\Dailyfile')
data <- read.csv('二分类网状meta分析.csv', sep=',', header=T)
treatments <- read.csv('treatment.csv', sep=',', header=T)
network <- mtc.network(data)
plot(network)
model <- mtc.model(network, type='consistency', n.chain=4, likelihood = 'binom', link='logit', linearModel = 'random')
results <- mtc.run(model, n.adapt=5000, n.iter = 20000, thin=1)
forest(relative.effect(results,'A'))
plot(results)
gelman.plot(results)
图4 Brooks-Gelman-Rubin诊断图
gelman.diag(results)
PSRF的点估计 | PSRF 95%置信上限 | |
d.A.B | 1.00 | 1.01 |
d.A.C | 1.00 | 1.01 |
d.A.D | 1.00 | 1.00 |
d.A.E | 1.00 | 1.00 |
sd.d | 1.00 | 1.00 |
relative.effect.table(results)
ranks <- rank.probability(results)
#单个排序结果
print(ranks)
#综合排序结果
sucra(ranks)
#等级排序图
plot(ranks,beside=TRUE)
图5 等级排序图
result.node <- mtc.nodesplit(network, thin=1)
summary.ns <- summary(result.node)
plot(summary.ns)
图6 节点分析图
resultanohe <- mtc.anohe(network, n.adapt=5000, n.iter=20000, thin=1, n.chain=4, likelihood='binom', link='logit', linearModel='random')
c <- summary(resultanohe)
plot(c)
联系客服