糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > r语言和metawin_手把手教你用R的gemtc包对连续变量进行贝叶斯网状Meta分析

r语言和metawin_手把手教你用R的gemtc包对连续变量进行贝叶斯网状Meta分析

时间:2021-07-12 01:37:51

相关推荐

r语言和metawin_手把手教你用R的gemtc包对连续变量进行贝叶斯网状Meta分析

来源:微信公众号小侃数据

大家好,本教程将介绍如何使用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分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。