
Optimization for Lambda Selection
aic.islasso.RdMinimizes information criteria to select the optimal tuning parameter lambda for islasso models.
Supports AIC, BIC, AICc, GCV, and GIC.
Usage
aic.islasso(
object,
method = c("AIC", "BIC", "AICc", "GCV", "GIC"),
interval,
g = 0,
y,
X,
intercept = FALSE,
family = gaussian(),
alpha = 1,
offset,
weights,
unpenalized,
control = is.control(),
trace = TRUE
)Arguments
- object
Fitted model of class
"islasso".- method
Criterion to minimize. Options are
"AIC","BIC","AICc","GCV","GIC".- interval
Numeric vector (length 2) giving lower and upper bounds for
lambdaoptimization. Optional ifobjectincludes prior cross-validation.- g
Numeric in
[0,1]. Governs BIC generalization:g = 0is classic BIC,g = 0.5is extended BIC.- y
Response vector. Required only if
objectis missing.- X
Design matrix. Required only if
objectis missing.- intercept
Logical. Whether to include intercept in
X. Used ifobjectis missing.- family
Error distribution. Accepted:
gaussian,binomial,poisson. Uses canonical link.- alpha
Elastic-net mixing parameter,
0 <= alpha <= 1. Lasso:alpha = 1; Ridge:alpha = 0.- offset
Optional numeric vector. Adds known linear predictor component.
- weights
Optional weights for observations. Defaults to 1.
- unpenalized
Logical vector indicating variables to exclude from penalization.
- control
List of control parameters. See
is.control.- trace
Logical. If
TRUE, prints progress of optimization. Default isTRUE.
Details
Instead of using cross-validation, this function selects the best lambda by minimizing criteria like AIC or BIC.
Degrees of freedom are computed as the trace of the hat matrix (not necessarily an integer).
Author
Gianluca Sottile gianluca.sottile@unipa.it
Examples
set.seed(1)
n <- 100; p <- 100
beta <- c(rep(2, 20), rep(0, p - 20))
sim1 <- simulXy(n = n, p = p, beta = beta, seed = 1, family = gaussian())
o <- islasso(y ~ ., data = sim1$data, family = gaussian())
if (FALSE) { # \dontrun{
# Use the evaluation interval of the fit
lambda_aic <- aic.islasso(o, method = "AIC")
# Overwrites the evaluation interval for lambda
lambda_bic <- aic.islasso(o, interval = c(0.1, 30), method = "BIC")
# Overwrites the evaluation interval for lambda using eBIC criterion
lambda_ebic <- aic.islasso(o, interval = c(0.1, 30), method = "BIC", g = 0.5)
} # }