ahazpen.pen.control {ahaz}  R Documentation 
Describe the penalty function to be used in the penalized
semiparametric additive hazards model. Typically only used in a call
to ahazpen
or tune.ahazpen
.
# (Adaptive) lasso/elasticnet
lasso.control(alpha=1, ada.wgt=NULL)
# Stepwise SCAD
sscad.control(a=3.7, nsteps=1, init.sol=NULL, c=NULL)
alpha 
Elasticnet penalty parameter with default

ada.wgt 
Optional covariate weights used for fitting the adaptive
lasso. Default is not to use weights, i.e. fit the standard lasso. A
userspecified 
a 
Parameter of the stepwise SCAD penalty, see details. Default
is 
nsteps 
Number of steps in stepwise SCAD. Default is

init.sol 
Optional initial solution for stepwise SCAD
consisting of a numerical vector of length corresponding to the number of covariates in the
model. Default
is a vector of regression coefficients obtained from

c 
Optional scaling factor for stepwise SCAD. Usually it is not necessary to change supply this; see the details. 
The lasso/elasticnet penalty function takes the form
p_\lambda(\beta)=\lambda((1\alpha)\\beta\_2 +
\alpha\\beta\_1)
where 0 <\alpha \leq 1
. Choosing \alpha<1
encourages joint selection of correlated covariates and may
improve the fit when there are substantial correlations among
covariates.
The stepwise SCAD penalty function takes the form
p_\lambda(\beta)=w_\lambda(cb_1)\beta_1+\ldots+
w_\lambda(cb_{nvars})\beta_{nvars}
where b
is some
initial estimate, c
is a scaling factor, and for
I
the indicator function
w_\lambda(x)=\lambda I(x \le \lambda) + \frac{(a\lambda
 x)_+}{a  1}I(x>\lambda)
The scaling factor c
controls how ‘different’ the
stepwise SCAD penalty is from the standard lasso penalty (and is
also used to remove dependency of the penalty on the scaling of the time
axis).
The onestep SCAD method of Zou & Li (2008) corresponds to taking
b
equal to the estimator derived from ahaz
. See
GorstRasmussen & Scheike (2011) for details. By iterating such
onestep SCAD and updating the initial solution b
accordingly,
the algorithm approximates the solution obtained using full SCAD. Note
that calculating the full SCAD solution generally leads to a nonconvex
optimization problem: multiple solutions and erratic behavior of
solution paths can be an issue.
The arguments ada.wgt
and init.sol
can be specified as
functions of the observations. This is convenient, for example, when
using crossvalidation for tuning parameter selection. Such a function
must be specified precisely with the arguments surv
,
X
and weights
and must output a numeric vector
of length corresponding to the number of covariates. ahazpen
will take care of scaling so the function should produce output on the
original scale. See the examples here as well as the examples for
tune.ahazpen
for usage of this feature in practice.
An object with S3 class "ahaz.pen.control"
.
type 
Type of penalty. 
init.sol 
Function specifying the initial solution, if applicable. 
alpha 
Value of 
nsteps 
Number of steps for stepwise SCAD penalty, if applicable. 
a 
Parameter for stepwise SCAD penalty, if applicable. 
c 
Scaling factor for stepwise SCAD penalty, if applicable. 
ada.wgt 
Function specifying the weights for the adaptive lasso penalty, if applicable. 
GorstRasmussen, A. & Scheike, T. H. (2011). Independent screening for singleindex hazard rate models with ultrahigh dimensional features. Technical report R201106, Department of Mathematical Sciences, Aalborg University.
Leng, C. & Ma, S. (2007). Path consistent model selection in additive risk model via Lasso. Statistics in Medicine; 26:37533770.
Martinussen, T. & Scheike, T. H. (2008). Covariate selection for the semiparametric additive risk model. Scandinavian Journal of Statistics; 36:602619.
Zou, H. & Li, R. (2008). Onestep sparse estimates in nonconcave penalized likelihood models, Annals of Statistics; 36:15091533.
data(sorlie)
# Break ties
set.seed(10101)
time < sorlie$time+runif(nrow(sorlie))*1e2
# Survival data + covariates
surv < Surv(time,sorlie$status)
X < as.matrix(sorlie[,3:ncol(sorlie)])
# Fit additive hazards regression model with elasticnet penalty
model < ahazpen(surv,X,penalty=lasso.control(alpha=0.1),dfmax=30)
plot(model)
# Adaptive lasso with weights 1/beta_i^0.5. Note that, although
# we do not use 'weights', it MUST be included as an argument
adafun < function(surv,X,weights)
return(1/abs(coef(ahaz(surv,X)))^.5)
model < ahazpen(surv,X[,1:50],penalty=lasso.control(ada.wgt=adafun))
plot(model)
# Onestep SCAD with initial solution derived from univariate regressions
scadfun < function(surv,X,weights){
fit < ahaz(surv,X,univariate=TRUE)
return(coef(fit))
}
set.seed(10101)
model.ssc < tune.ahazpen(surv,X,dfmax=30,penalty=sscad.control(init.sol=scadfun))
plot(model.ssc)