# loading simulated data set
data(survData)
n = dim(survData)[1]
p = dim(survData)[2]-2
###############################
# setting hyperparameter values
a <- 0.5 # prior parameters for 1/sigma^2
b <- 0.01
alpha <- 5 # prior parameter for J
c_lam <- 1 # prior parameter for MVN-ICAR specification
hyperParams <- c(a, b, alpha, c_lam)
#########################
# setting starting values
s_max <- max(survData$time[survData$event == 1])
beta <- rep(1, p)
s <- c(seq(8, max(survData$time[survData$event == 1]), 8), s_max);
J <- length(s) - 1
lambda <- runif(J+1, -3, 0)
sigSq_lam<- var(lambda)
mu_lam <- mean(lambda)
# chain 1
startValues <- list()
startValues[[1]] <- as.vector(c(beta, J, mu_lam, sigSq_lam, lambda, s))
# chain 2
beta <- rep(0.2, p)
lambda <- runif(J+1, -3, -1)
startValues[[2]] <- as.vector(c(beta, J, mu_lam, sigSq_lam, lambda, s))
##################################################
# setting variable values needed for MHG algorithm
C <- 0.70
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)
J_max <- 30
time_lambda <- seq(1:39)
nTime_lambda <- length(time_lambda)
mcmcParams <- c(C, delPert, num_s_propBI, J_max, s_max, nTime_lambda, s_propBI, time_lambda)
##################################################
# number of chains
numReps = 2e6
thin = 20
burninPerc = 0.5
path1 = "outcome/"
type = "semi-parametric"
nChain = 2
# fitting Bayesian semi-parametric regression model to univariate survival data
# In practice, set 'numReps' to a larger number such as 1000000
fitSurv <- BayesSurv(survData, hyperParams, startValues, mcmcParams, numReps, thin, path1,
burninPerc, type, nChain)
print(fitSurv)
summary(fitSurv)
## plot for estimates of baseline hazard function
plot(fitSurv)
Run the code above in your browser using DataLab