| 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.