cv.clogitL1 {clogitL1} | R Documentation |
Cross validation of conditional logistic regression with elastic net penalties
Description
Find the best of a sequence of conditional logistic regression models with lasso or elastic net penalties using cross validation
Usage
cv.clogitL1 (clObj, numFolds=10)
Arguments
clObj |
an object of type |
numFolds |
the number of folds used in cross validation. Defaults to the minimum of 10 or the number of observations |
Details
Performs numFolds
-fold cross validation on an object of type clogitL1
. Using the sequence of regularisation parameters generated by clObj
, the function chooses strata to leave out randomly. The penalised conditional logistic regression model is fit to the non-left-out strata in turn and its deviance compared to an out-of-sample deviance computed on the left-out strata. Fitting models to individual non-left-out strata proceeds using the cyclic coordinate descent-warm start-strong rule type algorithm used in clogitL1
, only with a prespecified sequence of \lambda
.
Value
An object of type cv.clogitL1
with the following fields:
cv_dev |
matrix of size |
lambda |
vector of regularisation parameters. |
folds |
vector showing the folds membership of each observation. |
mean_cv |
vector containing mean CV deviances for each value of the regularisation parameter. |
se_cv |
vector containing an estimate of the standard error of the CV deviance at each value of the regularisation parameter. |
minCV_lambda |
value of the regularisation parameter at which we have minimum |
minCV1se_lambda |
value of the regularisation parameter corresponding to the 1-SE rule. Selects the simplest model with estimate CV within 1 standard deviation of the minimum cv. |
nz_beta |
number of nonzero parameter estimates at each value of the regularisation parameter. |
References
http://www.jstatsoft.org/v58/i12/
See Also
Examples
set.seed(145)
# data parameters
K = 10 # number of strata
n = 5 # number in strata
m = 2 # cases per stratum
p = 20 # predictors
# generate data
y = rep(c(rep(1, m), rep(0, n-m)), K)
X = matrix (rnorm(K*n*p, 0, 1), ncol = p) # pure noise
strata = sort(rep(1:K, n))
par(mfrow = c(1,2))
# fit the conditional logistic model
clObj = clogitL1(y=y, x=X, strata)
plot(clObj, logX=TRUE)
# cross validation
clcvObj = cv.clogitL1(clObj)
plot(clcvObj)