# NOT RUN {
# }
# NOT RUN {
# loading a data set
data(scrData)
id=scrData$cluster
form <- Formula(time1 + event1 | time2 + event2 ~ x1 + x2 + x3 | x1 + x2 | x1 + x2)
#####################
## Hyperparameters ##
#####################
## Subject-specific frailty variance component
## - prior parameters for 1/theta
##
theta.ab <- c(0.7, 0.7)
## Weibull baseline hazard function: alphas, kappas
##
WB.ab1 <- c(0.5, 0.01) # prior parameters for alpha1
WB.ab2 <- c(0.5, 0.01) # prior parameters for alpha2
WB.ab3 <- c(0.5, 0.01) # prior parameters for alpha3
##
WB.cd1 <- c(0.5, 0.05) # prior parameters for kappa1
WB.cd2 <- c(0.5, 0.05) # prior parameters for kappa2
WB.cd3 <- c(0.5, 0.05) # prior parameters for kappa3
## PEM baseline hazard function
##
PEM.ab1 <- c(0.7, 0.7) # prior parameters for 1/sigma_1^2
PEM.ab2 <- c(0.7, 0.7) # prior parameters for 1/sigma_2^2
PEM.ab3 <- c(0.7, 0.7) # prior parameters for 1/sigma_3^2
##
PEM.alpha1 <- 10 # prior parameters for K1
PEM.alpha2 <- 10 # prior parameters for K2
PEM.alpha3 <- 10 # prior parameters for K3
## MVN cluster-specific random effects
##
Psi_v <- diag(1, 3)
rho_v <- 100
## DPM cluster-specific random effects
##
Psi0 <- diag(1, 3)
rho0 <- 10
aTau <- 1.5
bTau <- 0.0125
##
hyperParams <- list(theta=theta.ab,
WB=list(WB.ab1=WB.ab1, WB.ab2=WB.ab2, WB.ab3=WB.ab3,
WB.cd1=WB.cd1, WB.cd2=WB.cd2, WB.cd3=WB.cd3),
PEM=list(PEM.ab1=PEM.ab1, PEM.ab2=PEM.ab2, PEM.ab3=PEM.ab3,
PEM.alpha1=PEM.alpha1, PEM.alpha2=PEM.alpha2, PEM.alpha3=PEM.alpha3),
MVN=list(Psi_v=Psi_v, rho_v=rho_v),
DPM=list(Psi0=Psi0, rho0=rho0, aTau=aTau, bTau=bTau))
###################
## MCMC SETTINGS ##
###################
## Setting for the overall run
##
numReps <- 2000
thin <- 10
burninPerc <- 0.5
## Settings for storage
##
nGam_save <- 0
storeV <- rep(TRUE, 3)
## Tuning parameters for specific updates
##
## - those common to all models
mhProp_theta_var <- 0.05
mhProp_Vg_var <- c(0.05, 0.05, 0.05)
##
## - those specific to the Weibull specification of the baseline hazard functions
mhProp_alphag_var <- c(0.01, 0.01, 0.01)
##
## - those specific to the PEM specification of the baseline hazard functions
Cg <- c(0.2, 0.2, 0.2)
delPertg <- c(0.5, 0.5, 0.5)
rj.scheme <- 1
Kg_max <- c(50, 50, 50)
sg_max <- c(max(scrData$time1[scrData$event1 == 1]),
max(scrData$time2[scrData$event1 == 0 & scrData$event2 == 1]),
max(scrData$time2[scrData$event1 == 1 & scrData$event2 == 1]))
time_lambda1 <- seq(1, sg_max[1], 1)
time_lambda2 <- seq(1, sg_max[2], 1)
time_lambda3 <- seq(1, sg_max[3], 1)
##
mcmc.WB <- list(run=list(numReps=numReps, thin=thin, burninPerc=burninPerc),
storage=list(nGam_save=nGam_save, storeV=storeV),
tuning=list(mhProp_theta_var=mhProp_theta_var,
mhProp_Vg_var=mhProp_Vg_var, mhProp_alphag_var=mhProp_alphag_var))
##
mcmc.PEM <- list(run=list(numReps=numReps, thin=thin, burninPerc=burninPerc),
storage=list(nGam_save=nGam_save, storeV=storeV),
tuning=list(mhProp_theta_var=mhProp_theta_var,
mhProp_Vg_var=mhProp_Vg_var, Cg=Cg, delPertg=delPertg,
rj.scheme=rj.scheme, Kg_max=Kg_max,
time_lambda1=time_lambda1, time_lambda2=time_lambda2,
time_lambda3=time_lambda3))
#####################
## Starting Values ##
#####################
##
Sigma_V <- diag(0.1, 3)
Sigma_V[1,2] <- Sigma_V[2,1] <- -0.05
Sigma_V[1,3] <- Sigma_V[3,1] <- -0.06
Sigma_V[2,3] <- Sigma_V[3,2] <- 0.07
#################################################################
## Analysis of Independent Semi-Competing Risks Data ############
#################################################################
#############
## WEIBULL ##
#############
##
myModel <- c("semi-Markov", "Weibull")
myPath <- "Output/01-Results-WB/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, nChain=2)
##
fit_WB <- BayesID_HReg(form, scrData, id=NULL, model=myModel,
hyperParams, startValues, mcmc.WB, path=myPath)
fit_WB
summ.fit_WB <- summary(fit_WB); names(summ.fit_WB)
summ.fit_WB
pred_WB <- predict(fit_WB, tseq=seq(from=0, to=30, by=5))
plot(pred_WB, plot.est="Haz")
plot(pred_WB, plot.est="Surv")
#########
## PEM ##
#########
##
myModel <- c("semi-Markov", "PEM")
myPath <- "Output/02-Results-PEM/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, nChain=2)
##
fit_PEM <- BayesID_HReg(form, scrData, id=NULL, model=myModel,
hyperParams, startValues, mcmc.PEM, path=myPath)
fit_PEM
summ.fit_PEM <- summary(fit_PEM); names(summ.fit_PEM)
summ.fit_PEM
pred_PEM <- predict(fit_PEM)
plot(pred_PEM, plot.est="Haz")
plot(pred_PEM, plot.est="Surv")
#################################################################
## Analysis of Correlated Semi-Competing Risks Data #############
#################################################################
#################
## WEIBULL-MVN ##
#################
##
myModel <- c("semi-Markov", "Weibull", "MVN")
myPath <- "Output/03-Results-WB_MVN/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, id, nChain=2)
##
fit_WB_MVN <- BayesID_HReg(form, scrData, id, model=myModel,
hyperParams, startValues, mcmc.WB, path=myPath)
fit_WB_MVN
summ.fit_WB_MVN <- summary(fit_WB_MVN); names(summ.fit_WB_MVN)
summ.fit_WB_MVN
pred_WB_MVN <- predict(fit_WB_MVN, tseq=seq(from=0, to=30, by=5))
plot(pred_WB_MVN, plot.est="Haz")
plot(pred_WB_MVN, plot.est="Surv")
#################
## WEIBULL-DPM ##
#################
##
myModel <- c("semi-Markov", "Weibull", "DPM")
myPath <- "Output/04-Results-WB_DPM/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, id, nChain=2)
##
fit_WB_DPM <- BayesID_HReg(form, scrData, id, model=myModel,
hyperParams, startValues, mcmc.WB, path=myPath)
fit_WB_DPM
summ.fit_WB_DPM <- summary(fit_WB_DPM); names(summ.fit_WB_DPM)
summ.fit_WB_DPM
pred_WB_DPM <- predict(fit_WB_MVN, tseq=seq(from=0, to=30, by=5))
plot(pred_WB_DPM, plot.est="Haz")
plot(pred_WB_DPM, plot.est="Surv")
#############
## PEM-MVN ##
#############
##
myModel <- c("semi-Markov", "PEM", "MVN")
myPath <- "Output/05-Results-PEM_MVN/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, id, nChain=2)
##
fit_PEM_MVN <- BayesID_HReg(form, scrData, id, model=myModel,
hyperParams, startValues, mcmc.PEM, path=myPath)
fit_PEM_MVN
summ.fit_PEM_MVN <- summary(fit_PEM_MVN); names(summ.fit_PEM_MVN)
summ.fit_PEM_MVN
pred_PEM_MVN <- predict(fit_PEM_MVN)
plot(pred_PEM_MVN, plot.est="Haz")
plot(pred_PEM_MVN, plot.est="Surv")
#############
## PEM-DPM ##
#############
##
myModel <- c("semi-Markov", "PEM", "DPM")
myPath <- "Output/06-Results-PEM_DPM/"
startValues <- initiate.startValues_HReg(form, scrData, model=myModel, id, nChain=2)
##
fit_PEM_DPM <- BayesID_HReg(form, scrData, id, model=myModel,
hyperParams, startValues, mcmc.PEM, path=myPath)
fit_PEM_DPM
summ.fit_PEM_DPM <- summary(fit_PEM_DPM); names(summ.fit_PEM_DPM)
summ.fit_PEM_DPM
pred_PEM_DPM <- predict(fit_PEM_DPM)
plot(pred_PEM_DPM, plot.est="Haz")
plot(pred_PEM_DPM, plot.est="Surv")
# }
Run the code above in your browser using DataLab