一、载入包
library(BUGSnet)
library(readr)
data <- read_csv("diabetes.csv")
二、干预措施信息比较
在进行分析时首先使用data.prep
函数对数据进行规整,主要用于干预措施(treatment)和研究(study)。
data <- data.prep(arm.data = data,
varname.t = "treatment",
varname.s = "study")
BUGSnet
程序包的 net.tab()
函数可输出网状、干预和比较特征的统计数据,其中:
- network 输出的结果包含了网状的连通性、网状中的处理数量及事件数量等一些网状关系的基本特征
- intervention 输出的结果包含了不同干预措施的总发生事件数,总样本量等信息
- comparison 输出的结果包含了按不同治疗比较的事件数和总样本量等信息
network.char <- net.tab(data = data,
outcome = "responders",
N = "sampleSize",
type.outcome = "binomial",
time = NULL)
network.char$network
network.char$intervention
network.char$comparison
三、网络证据图( Network plot)
网络证据图使用net.plot()
函数进行绘制,不需进行过多设置,便可以绘制比较好的图片。
net.plot(data)
四、模型选择(固定vs随机,一致vs不一致)
fixmodel <- nma.model(data=data,#固定效应模型
outcome = "responders",
N = "sampleSize",
reference="Placebo",
family="binomial",
link="log",
effects="fixed")
ranmodel <- nma.model(data = data,#随机效应模型
outcome = "responders",
N = "sampleSize",
reference="Placebo",
family="binomial",
link="log",
effects="random")
fixresults <- nma.run(fixmodel,
n.adapt=1000,
n.burnin=10000,
n.iter=50000)
ranresults <- nma.run(ranmodel,
n.adapt=1000,
n.burnin=10000,
n.iter=50000)
上述代码中,
- 参数“outcome”用于指定结局变量;
- 参数reference用于设置对照组,通常是某种安慰剂或对照药物等;
- 参数family用于指定结果的分布类型,通常有“binomial”(二分类数据),“normal”(连续性数据),“poisson”(计数数据)可供选择;
- 参数 link用于指 定NMA 模型使用的函数,其中“logit”用于二分类数据的比值比(Odds Ratio),“log”用于二分类数据的风险比(Risk Ratio)或计数数据的比率(RateRatio);“cloglog”用于二分类数据的危险比(Hazard Ratio);identity用于连续性数据;
- effects用于设置效应模型的类型。
使用图形展示模型结果:
par(mfrow=c(1,2))
nma.fit(fixresults, main ="fixed model" )
nma.fit(ranresults, main= "random model")
可使用nma.diag()
函数绘制模型诊断图:
nma.diag(ranresults)
五、网状meta分析森林图
使用nma.forest()
函数输出森林图,对药物在不同研究和不同效应量水平的合并结果进行比较,并显示了有效的干预措施。
nma.forest(nma = ranresults,
log.scale=FALSE,
central.tdcy="mean",
comparator = "Placebo")
六、累计疗效排序图(SUCRA plot)
使用nma.rank()
函数进行干预措施的排序,结果可产生rankogram
、longtable
和sucraplot
三种形式。
sucra.out <- nma.rank(ranresults,
largerbetter=T,
sucra.palette= "Set1")
sucra.out$rankogram
sucra.out$sucraplot
七、赛联表及赛联热图( league heat plot)
两两比较使用nma.league()
函数可实现,结果可产出赛联表和赛联热图。
league.out <- nma.league(ranresults,
central.tdcy="mean",
high.colour = "cornflowerblue")
league.out$heatplot
#也可以产出赛联表,并导出EXCEL。
league.out$table
write.csv(league.out$table,"effectR.csv")
特别申明:本文为转载文章,转载自天真的和感伤的石同学 ,不代表贪吃的夜猫子立场,如若转载,请注明出处:https://mp.weixin.qq.com/s/uFZthcuBdy2YRzZyJ8r9bg