inst/doc/ElasticNet.R

## -----------------------------------------------------------------------------
set.seed(1)
library(LEGIT)
N = 500
train = example_2way(N, sigma=.5, logit=FALSE, seed=1)

## -----------------------------------------------------------------------------
g1_bad = rbinom(N,1,.30)
g2_bad = rbinom(N,1,.30)
g3_bad = rbinom(N,1,.30)
g4_bad = rbinom(N,1,.30)
g5_bad = rbinom(N,1,.30)
train$G = cbind(train$G, g1_bad, g2_bad, g3_bad, g4_bad, g5_bad)
lv = list(G=train$G, E=train$E)
# Elastic Net
fit = elastic_net_var_select(train$data, lv, y ~ G*E)
summary(fit)

## -----------------------------------------------------------------------------
best_model(fit, criterion="BIC")

## -----------------------------------------------------------------------------
fit = elastic_net_var_select(train$data, lv, y ~ G*E, cross_validation=TRUE, cv_iter=5, cv_folds=10)
summary(fit)
best_model(fit, criterion="cv_R2")

## -----------------------------------------------------------------------------
fit_mychoice = fit$fit[[8]]

## -----------------------------------------------------------------------------
# Elastic net only applied on G
fit = elastic_net_var_select(train$data, lv, y ~ G*E, c(1))
# Elastic net only applied on E
fit = elastic_net_var_select(train$data, lv, y ~ G*E, c(2))

## -----------------------------------------------------------------------------
# Most E variables not removed, use lambda_mult > 1 to remove more
fit = elastic_net_var_select(train$data, lv, y ~ G*E, c(2), lambda_mult=5)

## -----------------------------------------------------------------------------
# Want more lambdas (useful if # of variables is large)
fit = elastic_net_var_select(train$data, lv, y ~ G*E, n_lambda = 200)

Try the LEGIT package in your browser

Any scripts or data that you put into this service are public.

LEGIT documentation built on Jan. 12, 2022, 1:08 a.m.