## ---- echo=FALSE-------------------------------------------------------------- library(glmnetUtils) library(MASS) ## ----------------------------------------------------------------------------- # least squares regression (mtcarsMod <- glmnet(mpg ~ cyl + disp + hp, data=mtcars)) # multinomial logistic regression with specified elastic net alpha parameter (irisMod <- glmnet(Species ~ ., data=iris, family="multinomial", alpha=0.5)) # Poisson regression with an offset (InsMod <- glmnet(Claims ~ District + Group + Age, data=MASS::Insurance, family="poisson", offset=log(Holders))) ## ---- eval=FALSE-------------------------------------------------------------- # # least squares regression: get predictions for lambda=1 # predict(mtcarsMod, newdata=mtcars, s=1) # # # multinomial logistic regression: get predicted class # predict(irisMod, newdata=iris, type="class") # # # Poisson regression: need to specify offset # predict(InsMod, newdata=MASS::Insurance, offset=log(Holders)) ## ----------------------------------------------------------------------------- mtcarsX <- as.matrix(mtcars[c("cyl", "disp", "hp")]) mtcarsY <- mtcars$mpg mtcarsMod2 <- glmnet(mtcarsX, mtcarsY) summary(as.numeric(predict(mtcarsMod, mtcars) - predict(mtcarsMod2, mtcarsX))) ## ---- eval=FALSE-------------------------------------------------------------- # # generate sample (uncorrelated) data of a given size # makeSampleData <- function(N, P) # { # X <- matrix(rnorm(N*P), nrow=N) # data.frame(y=rnorm(N), X) # } # # # test for three sizes: 100/1000/10000 predictors # df1 <- makeSampleData(N=1000, P=100) # df2 <- makeSampleData(N=1000, P=1000) # df3 <- makeSampleData(N=1000, P=10000) # # library(microbenchmark) # res <- microbenchmark( # glmnet(y ~ ., df1, use.model.frame=TRUE), # glmnet(y ~ ., df1, use.model.frame=FALSE), # glmnet(y ~ ., df2, use.model.frame=TRUE), # glmnet(y ~ ., df2, use.model.frame=FALSE), # glmnet(y ~ ., df3, use.model.frame=TRUE), # glmnet(y ~ ., df3, use.model.frame=FALSE), # times=10 # ) # print(res, unit="s", digits=2) ## ---- eval=FALSE-------------------------------------------------------------- # df4 <- makeSampleData(N=1000, P=100000) # # glmnet(y ~ ., df4, use.model.frame=TRUE) ## ---- eval=FALSE-------------------------------------------------------------- # glmnet(y ~ ., df4, use.model.frame=FALSE)