Skip to contents

Fits an L0-regularized linear regression model via `L0Learn::L0Learn.cvfit` and returns the coefficient vector at the (lambda, gamma) pair minimizing the cross-validation error. Default penalty is "L0"; the user can switch to "L0L1" or "L0L2" (and tune the corresponding gamma grid) by passing the relevant arguments through `...`.

Usage

l0learnWeights(X, y, penalty = "L0", nFolds = 5, ...)

Arguments

X

A numeric matrix of predictors.

y

A numeric response vector.

penalty

Type of regularization: "L0", "L0L1", or "L0L2". Default is "L0".

nFolds

Number of cross-validation folds. Default is 5.

...

Additional arguments passed through to `L0Learn::L0Learn.cvfit` (e.g. `nGamma`, `gammaMin`, `gammaMax`, `algorithm`, `maxSuppSize`).

Value

A numeric vector of length `ncol(X)` of variant weights.

Examples

data(eqtlRegionExample)
X <- eqtlRegionExample$X[, 1:30]
y <- eqtlRegionExample$yRes
l0learnWeights(X, y)
#>       [,1]
#>  [1,]    0
#>  [2,]    0
#>  [3,]    0
#>  [4,]    0
#>  [5,]    0
#>  [6,]    0
#>  [7,]    0
#>  [8,]    0
#>  [9,]    0
#> [10,]    0
#> [11,]    0
#> [12,]    0
#> [13,]    0
#> [14,]    0
#> [15,]    0
#> [16,]    0
#> [17,]    0
#> [18,]    0
#> [19,]    0
#> [20,]    0
#> [21,]    0
#> [22,]    0
#> [23,]    0
#> [24,]    0
#> [25,]    0
#> [26,]    0
#> [27,]    0
#> [28,]    0
#> [29,]    0
#> [30,]    0