jmstB: Joint model for Bidirectional survival data using 'rstanarm'

View source: R/jmstB.R

jmstBR Documentation

Joint model for Bidirectional survival data using rstanarm

Description

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

Usage

jmstB(
  dtlong,
  dtsurv,
  longm,
  survm,
  timeVar,
  id,
  nchain = 1,
  refresh = 1000,
  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+(year|id),serBilir ~ drug * year+(year|id))

survm

survival model e.g. list(Surv(years,status2)~drug,Surv(time_2,status_2)~drug+age)

timeVar

time variable

id

ID variable

nchain

number of MCMC chain

refresh

number of refresh sample

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

Goodrich, B., et al. "rstanarm: Bayesian applied regression modeling via Stan. R package version 2.17. 4." Online< http://mc-stan. org (2018).

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)
library(rstanarm)
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_jmstBdirect<-jmstB(
  dtlong=pbc2_new,
  dtsurv = new_pbc2id,
  longm=list(serBilir~drug*year+(year|id),albumin~drug+year+(year|id)),
  survm=list(Surv(years,status2)~drug,Surv(time_2,status_2)~drug),
  timeVar="year",
  id='id',
  refresh=400,
  nchain=1)
model_jmstBdirect
##
 

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

Related to jmstB in JMbdirect...