# --------------------------------------
# Generate data
# --------------------------------------
set.seed(1)
genData <- genSurvData(n = 50, p = 50, s = 10, mag = 2, cens.quant = 0.6)
X <- genData$X
logY <- genData$logY
delta <- genData$status
p <- dim(X)[2]
# -----------------------------------------------
# Fit elastic net penalized estimator
# -----------------------------------------------
fit.en <- penAFT.cv(X = X, logY = logY, delta = delta,
nlambda = 10, lambda.ratio.min = 0.1,
penalty = "EN", nfolds = 5,
alpha = 1)
# ---- coefficients at tuning parameter minimizing cross-valdiation error
coef.en <- penAFT.coef(fit.en)
# ---- predict at 8th tuning parameter from full fit
Xnew <- matrix(rnorm(10*p), nrow=10)
predict.en <- penAFT.predict(fit.en, Xnew = Xnew, lambda = fit.en$full.fit$lambda[8])
# \donttest{
# -----------------------------------------------
# Fit sparse group penalized estimator
# -----------------------------------------------
groups <- rep(1:5, each = 10)
fit.sg <- penAFT.cv(X = X, logY = logY, delta = delta,
nlambda = 50, lambda.ratio.min = 0.01,
penalty = "SG", groups = groups, nfolds = 5,
alpha = 0.5)
# -----------------------------------------------
# Pass fold indices
# -----------------------------------------------
groups <- rep(1:5, each = 10)
cv.index <- list()
for(k in 1:5){
cv.index[[k]] <- which(rep(1:5, length=50) == k)
}
fit.sg.cvIndex <- penAFT.cv(X = X, logY = logY, delta = delta,
nlambda = 50, lambda.ratio.min = 0.01,
penalty = "SG", groups = groups,
cv.index = cv.index,
alpha = 0.5)
# --- compare cv indices
if (FALSE) fit.sg.cvIndex$cv.index == cv.index
# }
Run the code above in your browser using DataLab