R/group_sparse_lm_aliases.R

Defines functions sparse_coop_lasso sparse_group_l1linf sparse_group_lasso coop_lasso group_l1linf group_lasso

Documented in coop_lasso group_l1linf group_lasso sparse_coop_lasso sparse_group_l1linf sparse_group_lasso

#' @rdname group_sparse_lm
#' @export
group_lasso <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list(method = "quadra")) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "l2",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = 0.0,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

#' @rdname group_sparse_lm
#' @export
group_l1linf <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list()) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "linf",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = 0.0,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

#' @rdname group_sparse_lm
#' @export
coop_lasso <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list()) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "coop",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = 0.0,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

#' @rdname group_sparse_lm
#' @export
sparse_group_lasso <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           alpha     = 0.5,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list()) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "l2",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = alpha,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

#' @rdname group_sparse_lm
#' @export
sparse_group_l1linf <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           alpha     = 0.5,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list()) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "linf",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = alpha,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

#' @rdname group_sparse_lm
#' @export
sparse_coop_lasso <-
  function(x,
           y,
           group,
           lambda1   = NULL,
           lambda2   = 0.0,
           alpha     = 0.5,
           weights   = rep(1,nrow(x)),
           penscale  = sqrt(tabulate(group)),
           intercept = TRUE,
           normalize = TRUE,
           nlambda1  = ifelse(is.null(lambda1),100,length(lambda1)),
           minratio  = 1e-2,
           maxfeat   = ncol(x),
           beta0     = numeric(ncol(x)),
           control   = list()) {

    out <- group_sparse_lm(
      x,
      y,
      group,
      type      = "coop",
      lambda1   = lambda1,
      lambda2   = lambda2,
      alpha     = alpha,
      weights   = weights,
      penscale  = penscale,
      struct    = Matrix::Diagonal(ncol(x), 1),
      intercept = intercept,
      normalize = normalize,
      refit     = FALSE,
      nlambda1  = nlambda1,
      minratio  = minratio,
      maxfeat   = maxfeat,
      beta0     = beta0,
      control   = control)

    out
  }

Try the quadrupen package in your browser

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

quadrupen documentation built on Sept. 18, 2026, 1:06 a.m.