# loading a data set
data(scrCorData)
survData <- scrCorData[,3:8]
colnames(survData)[c(1,2)] <- c("time", "event")
n = dim(survData)[1]
p = dim(survData)[2]-3
J <- length(unique(survData$cluster))
###############################
# setting hyperparameter values
a <- 0.7 # prior parameters for 1/sigma_1^2
b <- 0.7
alpha <- 10 # prior parameter for K
c_lam <- 1 # prior parameter for MVN-ICAR specification
rho1 <- 0.5 # prior for zeta
rho2 <- 0.01
hyperParams <- c(a, b, alpha, c_lam, rho1, rho2)
#########################
# setting starting values
s_max <- max(survData$time[survData$event == 1])
grid <- s_max/50
beta <- rep(0.1, p)
s <- unique(sort(c(sample(1:s_max, 10), s_max)))
K <- length(s) - 1
lambda <- runif(K+1, -4, -3)
sigSq_lam <- var(lambda)
mu_lam <- mean(lambda)
V <- rep(0, J)
zeta <- 0.5
# chain 1
startValues <- list()
startValues[[1]] <- as.vector(c(beta, K, mu_lam, sigSq_lam, lambda, s, V, zeta))
# chain 2
beta <- rep(0.2, p)
lambda <- runif(K+1, -4.1, -3)
sigSq_lam <- var(lambda)
mu_lam <- mean(lambda)
V <- rep(0.1, J)
zeta <- 0.7
startValues[[2]] <- as.vector(c(beta, K, mu_lam, sigSq_lam, lambda, s, V, zeta))
##################################################
# setting variable values needed for MH algorithm
C <- 0.20
delPert <- 0.5
s_propBI <- floor(sort(unique(survData$time[survData$event == 1])))
s_propBI <- s_propBI[s_propBI < s_max]
num_s_propBI <- length(s_propBI)
K_max <- 50
time_lambda <- seq(grid, s_max, grid)
nTime_lambda <- length(time_lambda)
mhProp_V_var <- 0.05
mcmcParams <- c(C, delPert, num_s_propBI, K_max, s_max, nTime_lambda, s_propBI, time_lambda,
mhProp_V_var)
##################################################
# number of chains
numReps = 2e6
thin = 20
burninPerc = 0.5
path1 = "outcome/"
hz.type = "PEM"
re.type = "Normal"
storeV = TRUE
nChain = 2
# fitting Bayesian semi-parametric regression model to univariate survival data
fit <- BayesSurvcor(survData, hyperParams, startValues, mcmcParams, numReps, thin, path1,
burninPerc, hz.type, re.type, storeV, nChain)
print(fit)
summary(fit)
## plot for estimates of baseline hazard function
plot(fit)
Run the code above in your browser using DataLab