[R] Bootstrap Methods for Confidence Intervals -- glmnet

Lorenzo Isella lorenzo.isella at gmail.com
Thu May 12 16:49:52 CEST 2016


Dear All,
Please have a look at the code at the end of the email.
It is just an example of regression based on glmnet with some
artificial data.
My question is how I can evaluate the uncertainty of the prediction
yhat.

It looks like there are some reasons for not providing a standard
error estimate, see e.g.



http://stackoverflow.com/questions/12937331/how-to-get-statistical-summary-information-from-glmnet-model
and
https://www.reddit.com/r/statistics/comments/1vg8k0/standard_errors_in_glmnet/

However, from what I read in this thesis

https://air.unimi.it/retrieve/handle/2434/153099/133417/phd_unimi_R07738.pdf

(see sections 3.2 and 3.3)

and in the quoted papers

http://www.stat.cmu.edu/~fienberg/Statistics36-756/Efron1979.pdf
and
http://www.ams.org/journals/proc/2010-138-12/S0002-9939-2010-10474-4/S0002-9939-2010-10474-4.pdf

there are some bootstrap methods that are quite general and applicable
well beyond the case of glmnet.
Is there anything already implemented to help me out? Is anybody aware
of this?
Cheers

Lorenzo

#########################################################################
#########################################################################
#########################################################################
#########################################################################
#########################################################################


library(glmnet)


# Generate data
set.seed(19875)  # Set seed for reproducibility
n <- 1000  # Number of observations
p <- 5000  # Number of predictors included in model
real_p <- 15  # Number of true predictors
x <- matrix(rnorm(n*p), nrow=n, ncol=p)
y <- apply(x[,1:real_p], 1, sum) + rnorm(n)

# Split data into train (2/3) and test (1/3) sets
train_rows <- sample(1:n, .66*n)
x.train <- x[train_rows, ]
x.test <- x[-train_rows, ]

y.train <- y[train_rows]
y.test <- y[-train_rows]



fit.elnet <- glmnet(x.train, y.train, family="gaussian", alpha=.5)

yhat <- predict(fit.elnet, s=fit.elnet$lambda, newx=x.test)



More information about the R-help mailing list