#!!!!!!! write the makejags fuction: y should be numeric 0/1, t-matrix should have reference at the first column
# libraries
library(devtools)
library(R2jags)
install_github('htx-r/GenericModelNMA',force = T)
library(GenericModelNMA)
# load data
source('cleanData.R') # contains the FOUR different datasets
# RCT-IPD
rct.ipd <-MSrelapse
table(rct.ipd$TRT01A)
# RCT-AD
rct.ad<-rct.ad[which(rct.ad$study=="Bornstein" | rct.ad$study=="Johnson"),]
# NRS-IPD
library(readxl)
nrs.ipd <-nrs.ipd
## *** # 1 # RCT-IPD-NMA
ref.index <- 4 # placebo index
# compute number of arms
data <- rct.ipd
var <- 'TRT01A'
data$studyID <- as.numeric(factor(data$STUDYID))
study_id <- unique(data$studyID)
na <-sapply(study_id, function(i) length(unique(data[data$studyID==i,var])))
#t<-fun.mat(rct.ipd,'TRT01A')
#c(sort(t[1,])[t[1,]==ref],unique(sort(t[1,]))[-ref])
t <- rbind(c(4,1,NA),c(4,1,2),c(4,3,NA))
jagsdataIPDnetmeta <- with(rct.ipd,list(y=as.numeric(RELAPSE2year)-1,treat=as.numeric(factor(TRT01A)),baseline=rep(ref.index,nrow(rct.ipd)),studyid=as.numeric(factor(STUDYID)),
t=t,np=nrow(rct.ipd),na=na,nt=length(levels(factor(TRT01A))),nIPD=length(unique(STUDYID)),ref=ref.index))
jagsmodelIPDnetmeta <- jags.parallel(data = jagsdataIPDnetmeta,inits=NULL,parameters.to.save = c('d','tau'),model.file = modelIPDnetmeta,
n.chains=3,n.iter = 10000,n.burnin = 2000,DIC=F,n.thin = 5)
jagsmodelIPDnetmeta
## *** # 2 # RCT-IPD-AD NMA
jagsdataIPDADnetmeta<- with(rct.ipd,list(
nIPD=3,
np=nrow(rct.ipd),
studyid=as.numeric(factor(STUDYID)),
y=as.numeric(RELAPSE2year)-1,
t= rbind(c(4,1,NA),c(4,1,2),c(4,3,NA), c(4,2,NA),c(4,2,NA)),
na=c(2,3,2,2,2),
treat=as.numeric(factor(TRT01A)),
baseline=rep(4,nrow(rct.ipd)),
ref=4,
nt=4,
nAD=2,
r=rbind(c(NA,11,NA,19),c(NA,89,NA,97)),
n=rbind(c(NA,25,NA,25),c(NA,125,NA,126))
)
)
jagsmodelIPDADnetmeta <- jags.parallel(data = jagsdataIPDADnetmeta,inits=NULL,parameters.to.save = c('d','tau'),model.file = modelIPDADnetmeta,
n.chains=3,n.iter = 10000,n.burnin = 2000,DIC=F,n.thin = 1)
jagsmodelIPDADnetmeta
## *** # 3 # RCT-IPD-AD NMR - all studies
jagsdataIPDADnetmetareg<- with(rct.ipd,list(
nIPD=3,
np=nrow(rct.ipd),
studyid=as.numeric(factor(STUDYID)),
y=as.numeric(RELAPSE2year)-1,
x=as.numeric(AGE),
#xbar=unlist(sapply(unique(rct.ipd$STUDYID),function(i) rep(round(mean(rct.ipd[rct.ipd$STUDYID==i,'AGE'],na.rm = T),1),nrow(rct.ipd[rct.ipd$STUDYID==i,])))),
xbar=unlist(sapply(unique(rct.ipd$STUDYID),function(i) rep(c(28,32,38),nrow(rct.ipd[rct.ipd$STUDYID==i,])))),
t= rbind(c(4,1,NA),c(4,1,2),c(4,3,NA), c(4,2,NA),c(4,2,NA)),
na=c(2,3,2,2,2),
treat=as.numeric(factor(TRT01A)),
baseline=rep(4,nrow(rct.ipd)),
ref=4,
nt=4,
nAD=2,
r=rbind(c(NA,11,NA,19),c(NA,89,NA,97)),
n=rbind(c(NA,25,NA,25),c(NA,125,NA,126)),
xbar.a =c(34.3,30)
)
)
jagsmodelIPDADnetmetareg <- jags.parallel(data = jagsdataIPDADnetmetareg,inits=NULL,parameters.to.save = c('d','tau','bb','bw'),model.file = modelIPDADnetmetareg,
n.chains=3,n.iter = 1000,n.burnin = 200,DIC=F,n.thin = 1)
jagsmodelIPDADnetmetareg
## *** # 4 # RCT-IPD-AD NMR - only DEFINE as IPD and Johnson as AD
rct.ipd_DEFINE <- rct.ipd[rct.ipd$STUDYID=='DEFINE',]
rct.ipd_DEFINE$TRT01A <- factor(rct.ipd_DEFINE$TRT01A,levels = c('Dimethyl fumarate','Glatiramer acetate','Placebo'))
jagsdataIPDADnetmetareg<- with(rct.ipd_DEFINE,list(
nIPD=1,
np=nrow(rct.ipd_DEFINE),
studyid=as.numeric(factor(STUDYID)),
y=as.numeric(RELAPSE2year)-1,
x=as.numeric(AGE),
xbar=rep(mean(AGE),nrow(rct.ipd_DEFINE)),
t= rbind(c(3,1),c(3,2)),
na=c(2,2),
treat=as.numeric(as.factor(TRT01A)),
baseline=rep(3,nrow(rct.ipd)),
ref=3,
nt=3,
nAD=1,
r=rbind(c(NA,89,97)),
n=rbind(c(NA,125,126)),
xbar.a =34.3
)
)
jagsmodelIPDADnetmetareg <- jags.parallel(data = jagsdataIPDADnetmetareg,inits=NULL,parameters.to.save = c('d','tau','bb','bw','LOR'),model.file = modelIPDADnetmetaregOneStudy,
n.chains=3,n.iter = 1000,n.burnin = 200,DIC=F,n.thin = 1)
jagsmodelIPDADnetmetareg
# RCT-NRS-IPD-AD-NMA (naive approach)
# RCT-NRS-IPD-AD NMA (design-adjusted)
# RCT-NRS-IPD-AD-NMA (prior)
#
# ref.index <- 4 # placebo index
# data <- rct.ipd
# data$TRT01A <- factor(c(as.character(data$TRT01A)),levels=mm)
# var <- 'TRT01A'
# data$studyID <- as.numeric(factor(data$STUDYID))
# study_id <- unique(data$studyID)
# na <-sapply(study_id, function(i) length(unique(data[data$studyID==i,var])))
# t <- rbind(c(1,4,NA),c(1,2,4),c(3,4,NA), c(2,4,NA),c(2,4,NA))
# jagsdataIPDnetmeta <- with(rct.ipd,list(y=as.numeric(RELAPSE2year)-1,treat=as.numeric(factor(TRT01A)),baseline=rep(ref.index,nrow(rct.ipd)),studyid=as.numeric(factor(STUDYID)),
# t=t,np=nrow(rct.ipd),na=na,nt=length(levels(factor(TRT01A))),nIPD=length(unique(STUDYID)),ref=ref.index))
#
# treat.ipd <- unique(as.character(rct.ipd$TRT01A))
#
# mm <- levels(factor(c(rct.ad$treat,as.character(rct.ipd$TRT01A))))
# as.numeric(factor(c(as.character(rct.ipd$TRT01A)),levels=mm))
#
# ipd.ad.treat <- data.frame(treat=c(15,4,15,4,6,15,14,15,2,factor(c(as.character(rct.ad$treat)),levels=mm)))
# aggregate(TRT01A~STUDYID,data=rct.ipd,FUN = unique)
# rct.ipd$TRT01A
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.