cpernet | R Documentation |
Fits regularization paths for coupled sparse asymmetric least squares regression at a sequence of regularization parameters.
cpernet( x, y, w = 1, nlambda = 100L, method = "cper", lambda.factor = ifelse(2 * nobs < nvars, 0.01, 1e-04), lambda = NULL, lambda2 = 0, pf.mean = rep(1, nvars), pf2.mean = rep(1, nvars), pf.scale = rep(1, nvars), pf2.scale = rep(1, nvars), exclude, dfmax = nvars + 1, pmax = min(dfmax * 1.2, nvars), standardize = TRUE, intercept = TRUE, eps = 1e-08, maxit = 1000000L, tau = 0.8 )
x |
matrix of predictors, of dimension (nobs * nvars); each row is an observation. |
y |
response variable. |
w |
weight applied to the asymmetric squared error loss of the mean part. See details. Default is 1.0. |
nlambda |
the number of |
method |
a character string specifying the loss function to use. Only
|
lambda.factor |
The factor for getting the minimal lambda in the
|
lambda |
a user-supplied |
lambda2 |
regularization parameter |
pf.mean, pf.scale |
L1 penalty factor of length p used for adaptive
LASSO or adaptive elastic net. Separate L1 penalty weights can be applied
to each mean or scale coefficient to allow different L1 shrinkage. Can be 0
for some variables, which imposes no shrinkage and results in that variable
being always included in the model. Default is 1 for all variables (and
implicitly infinity for variables listed in |
pf2.mean, pf2.scale |
L2 penalty factor of length p used for adaptive elastic net. Separate L2 penalty weights can be applied to each mean or scale coefficient to allow different L2 shrinkage. Can be 0 for some variables, which imposes no shrinkage. Default is 1 for all variables. |
exclude |
indices of variables to be excluded from the model. Default is none. Equivalent to an infinite penalty factor. |
dfmax |
limit the maximum number of variables in the model. Useful for very large p, if a partial path is desired. Default is p+1. |
pmax |
limit the maximum number of variables ever to be nonzero. For
example once β enters the model, no matter how many times it
exits or re-enters the model through the path, it will be counted only
once. Default is |
standardize |
logical flag for variable standardization, prior to
fitting the model sequence. The coefficients are always returned to the
original scale. Default is |
intercept |
Should intercept(s) be fitted (default=TRUE) or set to zero (FALSE). |
eps |
convergence threshold for coordinate descent. Each inner
coordinate descent loop continues until the maximum change in any
coefficient is less than |
maxit |
maximum number of outer-loop iterations allowed at fixed lambda
values. Default is 1e7. If the algorithm does not converge, consider
increasing |
tau |
the parameter |
Note that the objective function in cpernet
is
w*1'Ψ(y-Xβ,0.5)/N + 1'Ψ(y-Xβ-Xθ,τ)/N + λ1*|β| + 0.5*λ2*||β||^2 + μ1*|θ| + 0.5*μ2*||θ||^2,
where Ψ(u,τ)=|τ-I(u<0)|*u^2 denotes the asymmetric squared error loss and the penalty is a combination of L1 and L2 terms for both the mean and scale coefficients.
For faster computation, if the algorithm is not converging or running slow,
consider increasing eps
, decreasing nlambda
, or increasing
lambda.factor
before increasing maxit
.
An object with S3 class cpernet
.
call |
the call that produced this object. |
b0, t0 |
intercept sequences both of
length |
beta, theta |
|
lambda |
the actual sequence of |
df.beta, df.theta |
the number of nonzero mean and scale coefficients
respectively for each value of |
dim |
dimensions of coefficient matrices. |
npasses |
total number of iterations summed over all lambda values. |
jerr |
error flag, for warnings and errors, 0 if no error. |
Yuwen Gu and Hui Zou
Maintainer: Yuwen Gu <yuwen.gu@uconn.edu>
Gu, Y., and Zou, H. (2016).
"High-dimensional generalizations of asymmetric least squares regression and their applications."
The Annals of Statistics, 44(6), 2661–2694.
plot.cpernet
, coef.cpernet
,
predict.cpernet
, print.cpernet
set.seed(1) n <- 100 p <- 400 x <- matrix(rnorm(n * p), n, p) y <- rnorm(n) tau <- 0.30 pf <- abs(rnorm(p)) pf2 <- abs(rnorm(p)) w <- 2.0 lambda2 <- 1 m2 <- cpernet(y = y, x = x, w = w, tau = tau, eps = 1e-8, pf.mean = pf, pf.scale = pf2, standardize = FALSE, lambda2 = lambda2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.