Function to Fit the Penalized Parametric Bayesian Accelerated Failure Time Model with Group Lasso Prior

Share:

Description

Penalized parametric Bayesian accelerated failure time model with group lasso prior is implemented to analyze survival data with high-dimensional covariates.

Usage

1
aftGL(survData, grpInx, hyperParams, startValues, numReps, thin, burninPerc = 0.5)

Arguments

survData

a data.frame containing the time-to-event outcome, the censoring indicator, p covariate vectors from n subjects. It is of dimension n\times (p+2).

grpInx

a vector of p group indicator for each variable

hyperParams

a numeric vector containing hyperparameter values in hierarchical models: c(nu0, sigSq0, alpha0, h0, rLam, deltaLam). (nu0, sigSq0): hyperparameters for the prior of σ^2; (alpha0, h0): hyperparameters for the prior of α; (rLam, deltaLam): hyperparameters for the prior of λ^2.

startValues

a numeric vector containing starting values for model parameters: c(alpha, beta, sigSq, tauSq, lambdaSq, w). See Examples below.

numReps

total number of scans

thin

extent of thinning

burninPerc

the proportion of burn-in

Value

aftGL returns an object of class aftGL.

Author(s)

Kyu Ha Lee, Sounak Chakraborty, (Tony) Jianguo Sun

References

Lee, K. H. (2011). Bayesian Variable Selection in Parametric and Semiparametric High-Dimensional Survival Analysis. Ph.D. thesis, University of Missouri–Columbia.

Lee, K. H., Chakraborty, S., and Sun, J. Variable Selection for High-Dimensional Genomic Data with Censored Outcomes Using Group Lasso Prior. submitted.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# generate some survival data	
	set.seed(204542)
	
	p = 20
	n = 100
	logHR.true <- c(rep(4, 10), rep(0, (p-10)))	

	CovX<-matrix(0,p,p)

	for(i in 1:10){
		for(j in 1:10){
			CovX[i,j] <- 0.5^abs(i-j)
			}
		}
		
	diag(CovX) <- 1
	
	x	<- apply(rmvnorm(n, sigma=CovX, method="chol"), 2, scale)	
	pred <- as.vector(exp(rowSums(scale(x, center = FALSE, scale = 1/logHR.true))))
	
	t 		<- rexp(n, rate = pred)
	cen		<- runif(n, 0, 8)      
	tcen 		<- pmin(t, cen)
	di 		<- as.numeric(t <= cen)
	
	n <- dim(x)[1]
	p <- dim(x)[2]

	survData <- data.frame(cbind(tcen, di, x))
	colnames(survData)[c(1:2)] <- c("time", "event")

	grpInx <- 1:p
	K <- length(unique(grpInx))
	
	############################
	nu0 <- 3
	sigSq0 <- 1

	alpha0 <- 0
	h0 <- 10^6

	rLam <- 0.5
	deltaLam <- 2

	hyperParams <- c(nu0, sigSq0, alpha0, h0, rLam, deltaLam)

	############################
	alpha <- 0.1
	beta <- rep(0.1, p)
	sigSq <- 1
	tauSq <- rep(0.4, p)
	lambdaSq <- 5
	w	<- log(tcen)

	startValues <- as.vector(c(alpha, beta, sigSq, tauSq, lambdaSq, w))

	############################
	numReps	<- 1000
	thin	<- 1
	burninPerc = 0.5

	fit <- aftGL(survData, grpInx, hyperParams, startValues, numReps, thin, burninPerc)