本教程将介绍如何使用R的gemtc包对分类变量进行贝叶斯网状Meta分析。

前提条件:

需要下载R软件,本教程使用的R版本为3.5.3,URL:

https://cloud.r-project.org/bin/windows/base/old/3.5.1/R-3.5.1-win.exe

以及RStudio,一个R的友好交互界面,URL:

https://download1.rstudio.org/desktop/windows/RStudio-1.2.1335.exe

因为gemtc包现在只支持调用JAGS,所以还需要下载JAGS的exe文件

https://nchc.dl.sourceforge.net/project/mcmc-jags/JAGS/4.x/Windows/JAGS-4.3.0.exe

以上文件下载后直接双击安装即可。

准备工作完成后,打开RStudio后,在console里输入:

install.packages("gemtc")

第一次安装的时候,安装速度可能比较慢,耐心等待一下。

等安装完成后,设置我们的工作目录,后面可以把待分析的数据放入这个工作目录,敲入:

setwd("G:\\R网状教程\\分类变量")  #你可以更改为自己的工作目录,在后面环境变量增多的时候,在这一步前可以加一个rm(list=ls())清除环境变量。

然后敲入:

library(gemtc)     #装载gemtc包

将我们的数据准备成如下格式(与stata做网状的格式相同):

其中每一行代表研究的一个臂,study代表研究,treatment代表干预名称,responders代表每一个臂的反应人数,sampleSize代表每一个研究中每一个臂的样本量。注意,以上英文单词必须准确无误,大小写都要一致,不然等会分析无法进行。

大家可以在excel里准备要分析的数据,然后另存为csv文件(以逗号为分隔符的表格文件),在这里,我把数据文件存为data.csv(你可以更改为自己想要的名字)。然后把这个文件放到我们的工作目录之下。

把刚刚准备好的数据导入到R里,敲入:

data "data.csv",sep=",", header=T)   #sep代表逗号为分隔符,header=T代表把首行的数据作为标题,

把数据弄成gemtc的网络格式,敲入:

network #这里

输入:

plot(network)

可以看到网状图如下:

当然了,这些大小、颜色、字体等等的参数都是可以调整的,但是跟stata做网状图相比还是太麻烦了。Stata几乎不用调整一步到位,大家可以参考我之前制作的stata教程做网状图。

然后开始建立模型:

modeltype="consistency", n.chain=4,likelihood="binom",link="logit",linearModel="random")

其中,圆括号里的第一个参数为我们刚刚新建的gemtc网络类型的变量network,第二个参数type="consistency",是指我们的模型为一致性模型,n.chain指的是马尔科夫蒙特卡洛MCMC的链条数目,一般为2-4均可。因为我们进行的是分类变量(OR)的网状分析,所以:likelihood="binom",link="logit"。如果我们用RR作为效应量,那么把link="log"。linearModel="random"指的是我们使用的模型为随机效应,当然也可以指定fixed作为固定效应模型。这一步可能会跳出一些红色的warning,强迫症的同学看到可能会感到不安,但不用紧张,不影响后续的分析,不管它即可。

现在就可以进行迭代了,敲入:

results <- mtc.run(model, n.adapt =50000, n.iter = 100000, thin = 1)

其中,model是我们上一步建立的模型名称,n.adapt为退火次数,n.iter为迭代次数。这个时候我们耐心等待,RStudio界面如下所示:

敲入:

summary(results)

可以看到如下结果:

其中结果包括DIC,DIC可以进一步与不一致性模型的DIC作比较,如果相差在5以内,就说明数据基本符合一致性的前提。DIC的绝对值没有任何意义,只用于相对比较。以及I2的总体异质性参数。

敲入:

forest(relative.effect(results, "NT"))

可以看到每个干预相对于NT(no treatment)的森林图:

敲入:

plot(results)  #可以看到每个指标的收敛情况以及密度图

敲入:

gelman.plot(results)   # 收敛性诊断

进行排序,敲入:

ranks <- rank.probability(results,preferredDirection=1)  #若效应量越小越好,则preferredDirection=-1
print(ranks)

制作联赛表:

a <- relative.effect.table(results)
write.csv(a, "leaguetable.csv")

以上步骤可以在工作目录中导出这个表格。

不一致模型

很多同学不知道如何做不一致模型,想当然的以为将type="inconsistency"就OK了,其实并非如此。而应是在模型那一步中将type=”ume”或者”use”。至于ume和use具体是什么,本文不再赘述,感兴趣的同学可以查看交流群群文件中TSD4(inconsistency)的文件。如下:

modelume type="ume", n.chain=4,likelihood="binom",link="logit",linearModel="random")
resultsume <- mtc.run(modelume, n.adapt= 20000, n.iter = 50000, thin = 1)
summary(resultsume)    #查看不一致模型的DIC,然后与一致性模型进行比较。

节点劈裂法探索局部不一致

resultnodesplit <-mtc.nodesplit(network)

这里当然也可以写成复杂版的形式:

resultnodesplit <-mtc.nodesplit(network, n.adapt = 20000, n.iter= 50000, thin = 1, n.chain=4,likelihood="binom",link="logit",linearModel="random")

里面的参数都可以进行设定。在R的gemtc包里,我们无需像在WINBUGS软件里对初始值进行繁琐的设定,这一点是不是很棒。

print(summary(resultnodesplit))   #查看节点劈裂法的结果

plot(summary(resultnodesplit))

异质性分析:

resultanohe <- mtc.anohe(network)

这里当然也可以写成复杂版的形式:

resultanohe <- mtc.anohe(network, n.adapt = 20000, n.iter =50000, thin = 1, n.chain=4,likelihood="binom",link="logit",linearModel="random")
print(summary(resultanohe))

plot(summary(resultanohe))

至此,主分析的步骤基本已经完成。

如何把在RStudio中产生的图片导出来,可参考:手把手教你用R的gemtc包对连续变量进行贝叶斯网状Meta分析

其他教程:

贝叶斯网状Meta常用模型整理集合

手把手系列教程:将OpenBugs结果导入Stata作图SUCRA

(图片高清版)手把手教你用Stata的Network包实现连续性变量网状Meta分析

用贝叶斯方法实现网状meta中的亚组分析

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

我们的QQ交流群:519864737

更多教程,敬请关注:

stata 亚组分析_手把手教你用R的gemtc包对分类变量进行贝叶斯网状Meta分析相关推荐

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

    来源:微信公众号小侃数据 大家好,本教程将介绍如何使用R的gemtc包对连续变量进行贝叶斯网状Meta分析. 前提条件: 准备工作完成后,打开RStudio后,在console里输入install.p ...

  2. 贝叶斯软件genle教程_手把手教你用R的gemtc包对生存数据进行贝叶斯网状Meta分析...

    大家好,本教程将介绍如何使用R的gemtc包对生存数据(HR为效应量)进行贝叶斯网状Meta分析. 前提条件: 需要下载R软件(推荐使用的R版本为3.5.3),以及RStudio(一个R的友好交互界面 ...

  3. python 时间序列prophet 模型分析_手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)...

    原标题:手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码) 作者:ANKIT CHOUDHARY:翻译:王雨桐:校对:丁楠雅: 本文约3000字,建议阅读12分钟. 本文将通过 ...

  4. python音乐的数据抓取与分析_手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  5. 单调谐回路谐振放大器等效电路分析_手把手教你如何分析三极管电路

    三极管有静态和动态两种工作状态.未加信号时三极管的直流工作状态称为静态,此时各极电流称为静态电流.给三极管加入交流信号之后的工作电流称为动态工作电流,这时三极管是交流工作状态,即动态. 一个完整的三极 ...

  6. r语言做断轴_手把手教你用R语言做回归后的残差分析

    本文介绍了做残差分析的方法及其重要性,以及利用R语言实现残差分析. 在这篇文章中,我们通过探索残差分析和用R可视化结果,深入研究了R语言. 残差本质上是当一个给定的模型(在文中是线性回归)不完全符合给 ...

  7. 引入yml依赖包_手把手教你发布 Python 项目开源包

    编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...

  8. 手把手教你使用R语言爬虫在气象网站抓取气象数据并分析绘制热力日历图(1)

    我们做临床研究常见的烦恼为没有好的数据,目前气象网站上有很多关于气象因素和空气质量数据,但是没有系统的整理和格式等问题,我们使用起来非常不方便,而且很费时间,我们可以使用R语言爬虫工具对网站上的数据进 ...

  9. tcga数据下载_手把手教你用R下载TCGA数据:CGDSR包

    各位科研芝士的朋友,大家好,今天我们继续分享关于TCGA数据下载的专题,之前,给大家推出了网页版cBioportal工具,进行数据下载,在上期中我们看到UCSC-XENA对应的R包UCSCXenaTo ...

  10. 利用python编写祝福_手把手|教你用Python换个姿势,送狗年祝福语

    春节既是一个阖家团圆的节日,也是一个集中问候亲朋好友.了解近况的机会.但是也有很多人过年也不能聚在一起,所以就会会选择发短信这一方式来表达自己的祝福.其中大多人都是复制转发,让人一眼就看穿,显得自己在 ...

最新文章

  1. python2 x与python3 x_python2.x 与 python3.x的不同
  2. LDA主题模型——gensim实战
  3. python 字符串操作_python中字符串的常见操作(一)
  4. PHP的Smarty较为完整的笔记
  5. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
  6. android 左移动画_android旋转动画和平移动画详解,补充说一下如果制作gif动画放到csdn博客上...
  7. java图片失真_java 图片合成 解决图片失真问题
  8. Science发布基因组比对革新技术:泛基因组学映射工具Giraffe
  9. C# 利用反射机制开启控件双缓存
  10. Enum枚举类|注解Annotation
  11. linux网络子系统分析
  12. 电脑文件同步备份软件哪个好用?
  13. java缺失_Java中找出缺失的数字
  14. Layui前端框架教程_layui视频教程_Layui使用教程
  15. Linux嵌入式开发必读推荐书籍
  16. CentOS虚拟机根分区磁盘扩容操作
  17. Python学习记录 逻辑回归
  18. Unity3D-设置天空盒
  19. HDU 1865 1string
  20. 惠普打印机卡纸问题,解决.

热门文章

  1. 【对讲机的那点事】公网对讲机的物联卡你了解吗?
  2. oracle财务系统表,Oracle财务管理系统:会计业务周期
  3. 夏普Sharp MX-M2658N 一体机驱动
  4. linux vscode设置终端字体(要求等宽字体)
  5. 注意,因为这样操作,zoom登录不上了
  6. jmp软件(jMP软件正交设计交互作用)
  7. Oracle imp/impdp 导入dmp文件到数据库
  8. ADB各种操作指令详解大汇总
  9. 想要艺术气质高逼格,不吹牛真的有捷径可走
  10. 2020年CFA从入门到备考攻略