来源:微信公众号小侃数据
大家好,本教程将介绍如何使用R的gemtc包对连续变量进行贝叶斯网状Meta分析。
前提条件:
准备工作完成后,打开RStudio后,在console里输入install.packages(“gemtc”)
第一次安装的时候,安装速度可能比较慢,耐心等待一下。
等安装完成后,设置我们的工作目录,后面可以把待分析的数据放入这个工作目录,敲入:
setwd("D:\\R网状教程") #你可以更改为自己的工作目录,在后面环境变量增多的时候,在这一步前可以加一个rm(list=ls())清除环境变量。
然后敲入:
library(gemtc) #装载gemtc包
将我们的数据准备成如下格式(与stata做网状的格式相同):
其中每一行代表研究的一个臂,study代表研究,treatment代表干预名称,mean代表连续变量的均值,std.dev代表连续变量的标准差,sampleSize代表每一个研究中每一个臂的样本量。注意,以上英文单词必须准确无误,大小写都要一致,不然等会分析无法进行。
大家可以在excel里准备要分析的数据,然后另存为csv文件(以逗号为分隔符的表格文件),在这里,我把数据文件存为data.csv(你可以更改为自己想要的名字)。然后把这个文件放到我们的工作目录之下。
把刚刚准备好的数据导入到R里,敲入:
data
把数据弄成gemtc的网络格式,敲入:
network
输入:plot(network)
可以看到网状图如下:
当然了,这些大小、颜色、字体等等的参数都是可以调整的,但是跟stata做网状图相比还是太麻烦了。Stata几乎不用调整一步到位,大家可以参考我之前制作的stata教程做网状图。
然后开始建立模型:
model
其中,圆括号里的第一个参数为我们刚刚新建的gemtc网络类型的变量network,第二个参数type="consistency",是指我们的模型为一致性模型,n.chain指的是马尔科夫蒙特卡洛MCMC的链条数目,一般为2-4均可。因为我们进行的是连续变量的网状分析,所以likelihood="normal", link="identity"。linearModel=”random”指的是我们使用的模型为随机效应,当然也可以指定fixed作为固定效应模型。这一步可能会跳出一些红色的warning,强迫症的同学看到可能会感到不安,但不用紧张,不影响后续的分析,不管它即可。
现在可以进行迭代了,敲入:
results
其中,model是我们上一步建立的模型名称,n.adapt为退火次数,n.iter为迭代次数。这个时候我们耐心等待,RStudio界面如下所示:
敲入:summary(results)可以看到如下结果:
其中结果包括DIC,DIC可以进一步与不一致性模型的DIC作比较,如果相差在5以内,就说明数据基本符合一致性的前提。DIC的绝对值没有任何意义,只用于相对比较。以及I2的总体异质性参数。
敲入:
forest(relative.effect(results, "Placebo"))
可以看到每个干预相对于Placebo的森林图:
大家可以与之前我们用stata频率学和用OpenBugs贝叶斯做的网状结果对比一下,结果是不是差不多。
敲入:plot(results) #可以看到每个指标的收敛情况以及密度图
敲入:gelman.plot(results) # 收敛性诊断
进行排序,敲入:
ranks
print(ranks)
堆积排序图:plot(ranks)
单个排序等级图:plot(ranks, beside = TRUE)
制作联赛表:
a
write.csv(a, "leaguetable.csv")
以上步骤可以在工作目录中导出这个表格。
不一致模型
很多同学不知道如何做不一致模型,想当然的以为将type="inconsistency"就OK了,其实并非如此。而应是在模型那一步中将type=”ume”或者”use”。如下:
modelume
resultsume
summary(resultsume) #查看不一致模型的DIC,然后与一致性模型进行比较。
用节点劈裂法探索局部不一致:
resultnodesplit
这里当然也可以写成复杂版的形式:resultnodesplit
里面的参数都可以进行设定。这里之所以可以写成简写版,是因为gemtc可以自动识别我们要分析的是连续变量,然后可以对里面的参数进行默认的设定。多说一句,如果我们要分析的是分类变量,我们也无需像在WINBUGS软件里对初始值进行繁琐的设定,这一点是我非常喜欢R软件gemtc包的地方。
b
print(b)
plot(b)
异质性分析:
resultanohe
这里当然也可以写成复杂版的形式:resultanohe
c
print(c)
plot(c)
至此,主分析的步骤基本已经完成。注意本教程的效应量为MD,目前R的gemtc包并不支持SMD。同样的步骤可以用来分析二分类数据,只是准备的数据以及likelihood和link的值设置的不同而已。此外,gemtc还支持对协变量进行回归分析,限于篇幅原因,本教程不再讲述这些内容,后面再讲。
最后,讲一下如何把在RStudio中产生的图片导出来。
第一种方法,针对看到代码就头痛的同学,可以点击export->save as image,如下图:
第二种方法:
敲入代码:
tiff(file= "networkplot.tiff ")
plot(network)
dev.off()
这样在工作目录就会有一个networkplot.tiff的文件了。
如果觉得《r语言和metawin_手把手教你用R的gemtc包对连续变量进行贝叶斯网状Meta分析》对你有帮助,请点赞、收藏,并留下你的观点哦!