| cv.gamlr {gamlr} | R Documentation | 
Cross Validation for gamlr
Description
Cross validation for gamma lasso penalty selection.
Usage
cv.gamlr(x, y, nfold=5, foldid=NULL, verb=FALSE, cl=NULL, ...)
## S3 method for class 'cv.gamlr'
plot(x, select=TRUE, df=TRUE, ...)
## S3 method for class 'cv.gamlr'
coef(object, select=c("1se","min"), ...)
## S3 method for class 'cv.gamlr'
predict(object, newdata, select=c("1se","min"), ...)
Arguments
x | 
  Covariates; see   | 
y | 
  Response; see   | 
nfold | 
 The number of cross validation folds.  | 
foldid | 
  An optional length-n vector of fold memberships for each observation.  If specified, this dictates   | 
verb | 
 Whether to print progress through folds.  | 
cl | 
 possible   | 
... | 
  Arguments to   | 
object | 
 A gamlr object.  | 
newdata | 
  New   | 
select | 
  In prediction and coefficient extraction, 
select which "best" model to return: 
  | 
df | 
 Whether to add to the plot degrees of freedom along the top axis.  | 
Details
 Fits a gamlr regression to the full dataset, and then performs nfold 
cross validation to evaluate out-of-sample (OOS)
performance  for different penalty weights.
plot.cv.gamlr can be used to plot the results: it 
shows mean OOS deviance with 1se error bars.
Value
gamlr | 
  The full-data fitted   | 
nfold | 
 The number of CV folds.  | 
foldid | 
 The length-n vector of fold memberships.  | 
cvm | 
  Mean OOS deviance by   | 
cvs | 
  The standard errors on   | 
seg.min | 
  The index of minimum   | 
seg.1se | 
  The index of   | 
lambda.min | 
  Penalty at minimum   | 
lambda.1se | 
  Penalty at   | 
Author(s)
Matt Taddy mataddy@gmail.com
References
Taddy (2017 JCGS), One-Step Estimator Paths for Concave Regularization, http://arxiv.org/abs/1308.5623
See Also
gamlr, hockey
Examples
n <- 100
p <- 100
xvar <- matrix(ncol=p,nrow=p)
for(i in 1:p) for(j in i:p) xvar[i,j] <- 0.5^{abs(i-j)}
x <- matrix(rnorm(p*n), nrow=n)%*%chol(xvar)
beta <- matrix( (-1)^(1:p)*exp(-(1:p)/10) )
mu = x%*%beta
y <- mu + rnorm(n,sd=sd(as.vector(mu))/2)
## fit with gamma=1 concavity
cvfit <- cv.gamlr(x, y, gamma=1, verb=TRUE)
coef(cvfit)[1:3,] # 1se default
coef(cvfit, select="min")[1:3,] # min OOS deviance
predict(cvfit, x[1:2,], select="min")
predict(cvfit$gamlr, x[1:2,], select=cvfit$seg.min)
par(mfrow=c(1,2))
plot(cvfit)
plot(cvfit$gamlr)