R-meta

基于R软件gemtc包的网状meta分析

2019-10-09  本文已影响0人  克里克的钟

1. 安装gemtc包

使用的是Rstudio,如果Rstudio安装不成功,可以先用Rgui安装:

install.packages('code')

2. 载入程序包

library(gemtc)

library(code)

library(codetools)

library(testthat)

3. 导入数据

这里是一个gemtc包中的例子,命名为file:

file <- system.file('extdata/luades-smoking.gemtc', package='gemtc')    #导入数据,并命名为file

net = read.mtc.network(file)    #读取gemtc文件,并保存为net

4. 保存数据

write.csv(network$treatments, file = "D:\\Desktop\\network0001_treatments.csv")

write.csv(network$data.ab, file = "D:\\Desktop\\network0001_data.ab.csv")

5.读取数据

treatments<- read.csv("D:\\Desktop\\network0001_treatments.csv",header=T,sep = ",",skip=0,row.names = 1)

#header=T,表示文件存在,表示需要读取数据的数据头部,skip=0,表示数据中没有需要跳过的行,row.names = 1是第一列作为行名

#同样,把另外一个表也读取进来

data <- read.csv("D:\\Desktop\\network0001_data.ab.csv",header=T,sep = ",",row.names = 1)

6. 创建network对象,建立成network 单臂长数据格式

network<- mtc.network(data, description="Luades_smoking", treatments=treatments)

7. 构建模型,一致性模型

model <- mtc.model(network, type = 'consistency')

#其中, network 为 network 数据, type 为是否选取一致性模型

#这里提示没有安装slam包


8.运算结果

result <- mtc.run(model)    #简单命令;需要电脑上安装jags,安装地址下载jags;

result <-mtc.run(model, sampler ="rjags", n.adapt = 5000, n.iter = 20000, thin = 1)   

#复杂命令,通过sampler命令选取软件的调用方式;“n.adapt”为预迭代次数,“n.iter”为迭代运算次数,“thin”为步长。

9. 网状证据图等

plot(network)  #模型网状图

#绘制tiff图片并保存

tiff(file="network.tiff")

plot(network)

dev.off()

#诊断收敛性

gelman.plot(result)

#收敛图导出

tiff(file="gelman.plot.tiff")

gelman.plot(result,auto.layout =F)

dev.off()

plot(result)    #密度图

forest(result)    #森林图

ranks <- rank.probability(result)    #等级排名

print(ranks)

#堆积排序图

tiff(file="堆积排序图.tiff")

plot(ranks)

dev.off()

#单个排序图

tiff(file="单个排序图.tiff")

barplot(t(ranks), beside=TRUE)

dev.off()

# 相对影响森林图导出vsB

tiff(file="0109相对影响森林图导出vsB.tiff")

forest(relative.effect(result, "B"))

dev.off()

10. 残差

print(result$deviance)

11.异质性图

result.anohe <- mtc.anohe(network, n.adapt=1000, n.iter=5000)

summary.anohe <- summary(result.anohe)

plot(summary.anohe, xlim=log(c(0.2, 5)))

summary.anohe

summary.anohe$consEffects

summary.anohe$studyEffects

summary.anohe$pairEffects

12.节点劈裂法,探讨模型的一致性和不一致性

network

result <-mtc.nodesplit(network)

summary(result)

names(result)

# [1] "d.A.C" "d.A.D" "d.B.D" "d.C.D" "consistency"

summary(result$d.A.C)

# Overall summary and plot

summary.ns <- summary(result)

print(summary.ns)

plot(summary.ns)

上一篇下一篇

猜你喜欢

热点阅读