jmbB: Joint model for Bidirectional survival data using 'JMbayes2'

View source: R/jmbB.R

jmbBR 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

JMbdirect documentation built on April 12, 2025, 1:55 a.m.

Related to jmbB in JMbdirect...