ADSIHT.ML | R Documentation |
An implementation of the sparse group selection in linear regression model via ADSIHT.
ADSIHT.ML(
x_list,
y_list,
group_list,
s0,
kappa = 0.9,
ic.type = c("dsic", "loss"),
ic.scale = 3,
ic.coef = 3,
L = 5,
weight,
coef1 = 1,
coef2 = 1,
eta = 0.8,
max_iter = 20,
method = "ols"
)
x_list |
The list of input matrix. |
y_list |
The list of response variable. |
group_list |
A vector indicating which group each variable belongs to
For variables in the same group, they should be located in adjacent columns of |
s0 |
A vector that controls the degrees with group.
Default is |
kappa |
A parameter that controls the rapid of the decrease of threshold. Default is 0.9. |
ic.type |
The type of criterion for choosing the support size.
Available options are |
ic.scale |
A non-negative value used for multiplying the penalty term
in information criterion. Default: |
ic.coef |
A non-negative value used for multiplying the penalty term
for choosing the optimal stopping time. Default: |
L |
The length of the sequence of s0. Default: |
weight |
The weight of the samples, with the default value set to 1 for each sample. |
coef1 |
A positive value to control the sub-optimal stopping time. |
coef2 |
A positive value to control the overall stopping time. A small value leads to larger search range. |
eta |
A parameter controls the step size in the gradient descent step.
Default: |
max_iter |
A parameter that controls the maximum number of line search, ignored if |
method |
Whether |
A list
object comprising:
beta |
A |
intercept |
A |
.
lambda |
A |
A_out |
The selected variables given threshold value in |
ic |
The values of the specified criterion for each fitted model given threshold |
Yanhang Zhang, Zhifan Li, Shixiang Liu, Jianxin Yin.
set.seed(1)
n <- 200
p <- 100
K <- 4
s <- 5
s0 <- 2
x_list <- lapply(1:K, function(x) matrix(rnorm(n*p, 0, 1), nrow = n))
vec <- rep(0, K * p)
non_sparse_groups <- sample(1:p, size = s, replace = FALSE)
for (group in non_sparse_groups) {
group_indices <- seq(group, K * p, by = p)
non_zero_indices <- sample(group_indices, size = s0, replace = FALSE)
vec[non_zero_indices] <- rep(2, s0)
}
y_list <- lapply(1:K, function(i) return(
y = x_list[[i]] %*% vec[((i-1)*p+1):(i*p)]+rnorm(n, 0, 0.5))
)
fit <- ADSIHT.ML(x_list, y_list)
fit$A_out[, which.min(fit$ic)]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.