reg.sgl: Fit for sg-LASSO regression

View source: R/reg.sgl.R

reg.sglR Documentation

Fit for sg-LASSO regression

Description

Fits sg-LASSO regression model.

The function fits sg-LASSO regression based on chosen tuning parameter selection method_choice. Options include cross-validation and information criteria.

Usage

reg.sgl(x, y, gamma = NULL, gindex, intercept = TRUE, 
        method_choice = c("tscv","ic","cv"), verbose = FALSE, ...)

Arguments

x

T by p data matrix, where T and p respectively denote the sample size and the number of regressors.

y

T by 1 response variable.

gamma

sg-LASSO mixing parameter. γ = 1 gives LASSO solution and γ = 0 gives group LASSO solution.

gindex

p by 1 vector indicating group membership of each covariate.

intercept

whether intercept be fitted (TRUE) or set to zero (FALSE). Default is TRUE.

method_choice

choose between tscv ic and cv. tscv fits sg-LASSO based on time series cross-validation (see tscv.sglfit), ic fits sg-LASSO based on information criteria (BIC, AIC or AICc, see ic.sglfit), cv fits sg-LASSO based on cross-validation (see cv.sglfit). Additional arguments for each method choice are passed on to the relevant functions.

verbose

flag to print information.

...

Other arguments that can be passed to sglfit.

Details

The sequence of linear regression models implied by λ vector is fit by block coordinate-descent. The objective function is

||y - ια - xβ||2T + 2λ Ωγ(β),

where ι∈RTenter> and ||u||2T=<u,u>/T is the empirical inner product. The penalty function Ωγ(.) is applied on β coefficients and is

Ωγ(β) = γ |β|1 + (1-γ)|β|2,1,

a convex combination of LASSO and group LASSO penalty functions.

Value

reg.sgl object.

Author(s)

Jonas Striaukas

Examples

 
set.seed(1)
x = matrix(rnorm(100 * 20), 100, 20)
beta = c(5,4,3,2,1,rep(0, times = 15))
y = x%*%beta + rnorm(100)
gindex = sort(rep(1:4,times=5))
reg.sgl(x = x, y = y, gindex = gindex, gamma = 0.5,
  standardize = FALSE, intercept = FALSE)


jstriaukas/midasml documentation built on Oct. 5, 2022, 12:18 a.m.