使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

一、载入包

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)
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

四、模型选择(固定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")
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

可使用nma.diag()函数绘制模型诊断图:

nma.diag(ranresults)
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

五、网状meta分析森林图

使用nma.forest() 函数输出森林图,对药物在不同研究和不同效应量水平的合并结果进行比较,并显示了有效的干预措施。

nma.forest(nma = ranresults,
           log.scale=FALSE,
           central.tdcy="mean",
           comparator = "Placebo")
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

六、累计疗效排序图(SUCRA plot)

使用nma.rank()函数进行干预措施的排序,结果可产生rankogramlongtablesucraplot三种形式。

sucra.out <- nma.rank(ranresults,
                      largerbetter=T, 
                      sucra.palette= "Set1")

sucra.out$rankogram
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析
sucra.out$sucraplot
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析

七、赛联表及赛联热图( league heat plot)

两两比较使用nma.league() 函数可实现,结果可产出赛联表和赛联热图。

league.out <- nma.league(ranresults,  
                         central.tdcy="mean",
                         high.colour = "cornflowerblue")      
league.out$heatplot
使用BUGSnet程序包实现二分类数据的贝叶斯网状meta分析
#也可以产出赛联表,并导出EXCEL。
league.out$table
write.csv(league.out$table,"effectR.csv")

    特别申明:本文为转载文章,转载自天真的和感伤的石同学 ,不代表贪吃的夜猫子立场,如若转载,请注明出处:https://mp.weixin.qq.com/s/uFZthcuBdy2YRzZyJ8r9bg

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    xujunzju管理者
    上一篇 2023年7月12日 22:17
    下一篇 2023年7月22日 23:43

    相关推荐

    发表回复

    登录后才能评论
    联系我们
    邮箱:
    xujunzju@gmail.com
    公众号:
    xujunzju6174
    捐赠本站
    捐赠本站
    分享本页
    返回顶部