jmbB {JMbdirect} | R Documentation |
Joint model for Bidirectional survival data using JMbayes2
Description
The function fits joint model for survival data with two events. It utilizes the JMbayes2 package for obtaining the model parameter estimates.
Usage
jmbB(
dtlong,
dtsurv,
longm,
survm,
rd,
timeVar,
id,
samplesize = NULL,
BIGdata = FALSE,
niter = 200,
nburnin = 100,
nchain = 1
)
Arguments
dtlong |
longitudinal data |
dtsurv |
survival data with two event status along with event time |
longm |
longitudinal model e.g. list(serBilir~drug * year,serBilir ~ drug * year) |
survm |
survival model e.g. list(Surv(years,status2)~drug,Surv(time_2,status_2)~drug+age) |
rd |
random effect component e.g. list(~year|id,~year|id) |
timeVar |
time variable |
id |
ID variable |
samplesize |
samplesize for bigdata |
BIGdata |
logical argument TRUE or FALSE |
niter |
number if iteration |
nburnin |
number of sample to burn |
nchain |
number of MCMC chain |
Value
Estimated model parameters of Joint model with bidirectional survival data
Author(s)
Atanu Bhattacharjee, Bhrigu Kumar Rajbongshi and Gajendra Kumar Vishwakarma
References
Rizopoulos, D., G. Papageorgiou, and P. Miranda Afonso. "JMbayes2: extended joint models for longitudinal and time-to-event data." R package version 0.2-4 (2022).
Bhattacharjee, A., Rajbongshi, B. K., & Vishwakarma, G. K. (2024). jmBIG: enhancing dynamic risk prediction and personalized medicine through joint modeling of longitudinal and survival data in big routinely collected data. BMC Medical Research Methodology, 24(1), 172.
Examples
library(JMbayes2)
st_pbcid<-function(){
new_pbcid<-pbc2.id
new_pbcid$time_2<-rexp(n=nrow(pbc2.id),1/10)
cen_time<-runif(nrow(pbc2.id),min(new_pbcid$time_2),max(new_pbcid$time_2))
status_2<-ifelse(new_pbcid$time_2<cen_time,1,0)
new_pbcid$status_2<-status_2
new_pbcid$time_2<-ifelse(new_pbcid$time_2<cen_time,new_pbcid$time_2,cen_time)
new_pbcid$time_2<-ifelse(new_pbcid$time_2<new_pbcid$years,new_pbcid$years,new_pbcid$time_2)
new_pbcid
}
new_pbc2id<-st_pbcid()
pbc2$status_2<-rep(new_pbc2id$status_2,times=data.frame(table(pbc2$id))$Freq)
pbc2$time_2<-rep(new_pbc2id$time_2,times=data.frame(table(pbc2$id))$Freq)
pbc2_new<-pbc2[pbc2$id%in%c(1:100),]
new_pbc2id<-new_pbc2id[new_pbc2id$id%in%c(1:100),]
model_jmbBdirect<-jmbB(dtlong=pbc2_new,dtsurv =new_pbc2id,
longm=list(serBilir~drug*year,serBilir~drug*year),
survm=list(Surv(years,status2)~drug,Surv(time_2,status_2)~drug+age),
rd=list(~year|id,~year|id),
id='id',timeVar ='year')
model_jmbBdirect