jmcsB: Joint model for Bidirectional survival data using 'FastJM'

View source: R/jmcsB.R

jmcsBR Documentation

Joint model for Bidirectional survival data using FastJM

Description

The function fits joint model for survival data with two events. It utilizes the FastJM package for obtaining the model parameter estimates.

Usage

jmcsB(
  dtlong,
  dtsurv,
  longm,
  survm,
  rd,
  id,
  timeVar,
  BIGdata = FALSE,
  samplesize = 200
)

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)

id

ID variable

timeVar

time variable

BIGdata

logical argument TRUE or FALSE

samplesize

samplesize for bigdata

Value

Estimated model parameters of Joint model with bidirectional survival data

Author(s)

Atanu Bhattacharjee, Bhrigu Kumar Rajbongshi and Gajendra Kumar Vishwakarma

References

Li, Shanpeng, et al. "Efficient Algorithms and Implementation of a Semiparametric Joint Model for Longitudinal and Competing Risk Data: With Applications to Massive Biobank Data." Computational and Mathematical Methods in Medicine 2022 (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(FastJM)
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:50),]
new_pbc2id<-new_pbc2id[new_pbc2id$id%in%c(1:50),]
model_jmcs<-jmcsB(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(~1|id,~1|id),
                  id='id',timeVar='year')
model_jmcs

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

Related to jmcsB in JMbdirect...