Type: | Package |
Title: | Flexible Regularized Estimating Equations |
Version: | 1.0.2 |
Date: | 2024-05-22 |
Description: | Unified regularized estimating equation solver. Currently the package includes one solver with the l1 penalty only. More solvers and penalties are under development. Reference: Yi Yang, Yuwen Gu, Yue Zhao, Jun Fan (2021) <doi:10.48550/arXiv.2110.11074>. |
License: | GPL-3 |
Imports: | Rcpp (≥ 1.0.7) |
LinkingTo: | Rcpp, RcppArmadillo |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.1 |
Suggests: | testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
NeedsCompilation: | yes |
Packaged: | 2024-05-24 02:30:24 UTC; YLIAN |
Author: | Yi Lian [aut, cre], Yi Yang [aut, cph], Yuwen Gu [aut], Jun Fan [aut], Yue Zhao [aut], Robert W. Platt [aut] |
Maintainer: | Yi Lian <yi.lian@mail.mcgill.ca> |
Repository: | CRAN |
Date/Publication: | 2024-05-24 04:00:02 UTC |
free: Flexible Regularized Estimating Equations
Description
Unified regularized estimating equation solver. Currently the package includes one solver with the l1 penalty only. More solvers and penalties are under development. Reference: Yi Yang, Yuwen Gu, Yue Zhao, Jun Fan (2021) doi:10.48550/arXiv.2110.11074.
Author(s)
Maintainer: Yi Lian yi.lian@mail.mcgill.ca
Authors:
Yi Yang [copyright holder]
Yuwen Gu
Jun Fan
Yue Zhao
Robert W. Platt
Main solver of free
Description
Main solver of free
Usage
free_lasso(
p,
lambda,
est_func,
par_init,
alpha,
tau,
maxit = 1000L,
tol_ee = 1e-06,
tol_par = 1e-06,
verbose = FALSE
)
Arguments
p |
The dimension of the dataset |
lambda |
Lasso regularization coefficient |
est_func |
R function, the estimating function specified by the user |
par_init |
Optional, initial value for parameter update |
alpha |
Tuning parameter |
tau |
Tuning parameter |
maxit |
Maximum iterations |
tol_ee |
Convergence criterion based on the update of the estimating function |
tol_par |
Convergence criterion based on the update of the parameter |
verbose |
logical, print updates |
Value
A list containing the regularized estimating equation estimates and the number of iterations it takes to converge.
Examples
# Standardize data
dat <- scale(mtcars)
x <- as.matrix(dat[, -1])
y <- as.vector(dat[, 1])
n <- nrow(x)
p <- ncol(x)
# Specify estimating function
ufunc <- function(b) {
1/n * crossprod(x, (x %*% b - y) )
}
# Set hyperparameters
tau <- 0.6
alpha <- 0.5
# Set regularization coefficient
lambda1 <- 0
free_R1 <- free_lasso(p = p,
lambda = lambda1,
est_func = ufunc,
par_init = rep(0, p),
alpha = alpha,
tau = tau,
maxit = 10000L,
tol_ee = 1e-20,
tol_par = 1e-10,
verbose = FALSE)
free_R1$coefficients
# Compare with lm() - very close
lm(y~x-1)$coefficients
# Set regularization coefficient
lambda2 <- 0.7
free_R2 <- free_lasso(p = p,
lambda = lambda2,
est_func = ufunc,
par_init = rep(0, p),
alpha = alpha,
tau = tau,
maxit = 10000L,
tol_ee = 1e-20,
tol_par = 1e-10,
verbose = FALSE)
free_R2$coefficients