Description Usage Arguments Details Value Author(s) See Also Examples
Extend lasso model fitting to big data that cannot be loaded into memory. Fit solution paths for linear or logistic regression models penalized by lasso, ridge, or elasticnet over a grid of values for the regularization parameter lambda.
1 2 3 4 5 6 7 8 9  biglasso(X, y, row.idx = 1:nrow(X), penalty = c("lasso", "ridge", "enet"),
family = c("gaussian", "binomial"), alg.logistic = c("Newton", "MM"),
screen = c("SSR", "SEDPP", "SSRBEDPP", "SSRSlores", "SSRDome", "None",
"NSNAC", "SSRNAC", "SEDPPNAC", "SSRDomeNAC", "SSRBEDPPNAC",
"SSRSloresNAC"), safe.thresh = 0, ncores = 1, alpha = 1,
lambda.min = ifelse(nrow(X) > ncol(X), 0.001, 0.05), nlambda = 100,
lambda.log.scale = TRUE, lambda, eps = 1e07, max.iter = 1000,
dfmax = ncol(X) + 1, penalty.factor = rep(1, ncol(X)), warn = TRUE,
output.time = FALSE, return.time = TRUE, verbose = FALSE)

X 
The design matrix, without an intercept. It must be a

y 
The response vector. 
row.idx 
The integer vector of row indices of 
penalty 
The penalty to be applied to the model. Either "lasso" (the default), "ridge", or "enet" (elastic net). 
family 
Either "gaussian" or "binomial", depending on the response. 
alg.logistic 
The algorithm used in logistic regression. If "Newton" then the exact hessian is used (default); if "MM" then a majorizationminimization algorithm is used to set an upperbound on the hessian matrix. This can be faster, particularly in datalargerthanRAM case. 
screen 
The feature screening rule used at each 
safe.thresh 
the threshold value between 0 and 1 that controls when to stop safe test in the "SSRDome" and "SSRBEDPP" rules. For example, 0.01 means to stop Dome test at next lambda iteration if the number of features rejected by safe test at current lambda iteration is not larger than 1% of the total number of features. So 1 means to always turn off safe test, whereas 0 (default) means to turn off safe test if the number of features rejected by safe test is 0 at current lambda. 
ncores 
The number of OpenMP threads used for parallel computing. 
alpha 
The elasticnet mixing parameter that controls the relative contribution from the lasso (l1) and the ridge (l2) penalty. The penalty is defined as αβ_1 + (1α)/2β_2^2.

lambda.min 
The smallest value for lambda, as a fraction of lambda.max. Default is .001 if the number of observations is larger than the number of covariates and .05 otherwise. 
nlambda 
The number of lambda values. Default is 100. 
lambda.log.scale 
Whether compute the grid values of lambda on log scale (default) or linear scale. 
lambda 
A userspecified sequence of lambda values. By default, a
sequence of values of length 
eps 
Convergence threshold for inner coordinate descent. The
algorithm iterates until the maximum change in the objective after any
coefficient update is less than 
max.iter 
Maximum number of iterations. Default is 1000. 
dfmax 
Upper bound for the number of nonzero coefficients. Default is no upper bound. However, for large data sets, computational burden may be heavy for models with a large number of nonzero coefficients. 
penalty.factor 
A multiplicative factor for the penalty applied to
each coefficient. If supplied, 
warn 
Return warning messages for failures to converge and model saturation? Default is TRUE. 
output.time 
Whether to print out the start and end time of the model fitting. Default is FALSE. 
return.time 
Whether to return the computing time of the model fitting. Default is TRUE. 
verbose 
Whether to output the timing of each lambda iteration. Default is FALSE. 
The objective function for linear regression (family = "gaussian"
) is
\frac{1}{2n}\textrm{RSS} + \textrm{penalty},
for logistic regression
(family = "binomial"
) it is
\frac{1}{n} loglike + \textrm{penalty}.
Several advanced feature screening rules are implemented. For
lassopenalized linear regression, all the options of screen
are
applicable. Our proposal rule  "SSRBEDPP"  achieves highest speedup so
it's the recommended one, especially for ultrahighdimensional largescale
data sets. For logistic regression and/or the elastic net penalty, only
"SSR" is applicable for now. More efficient rules are under development.
An object with S3 class "biglasso"
with following variables.
beta 
The fitted matrix of coefficients, store in sparse matrix
representation. The number of rows is equal to the number of coefficients,
whereas the number of columns is equal to 
iter 
A
vector of length 
lambda 
The sequence of regularization parameter values in the path. 
penalty 
Same as above. 
family 
Same as above. 
alpha 
Same as above. 
loss 
A
vector containing either the residual sum of squares ( 
penalty.factor 
Same as above. 
n 
The number of observations used in the model fitting. It's equal to

center 
The sample mean vector of the
variables, i.e., column mean of the submatrix of 
scale 
The sample standard deviation of the variables, i.e.,
column standard deviation of the submatrix of 
y 
The response vector used in the model fitting. Depending
on 
screen 
Same as above. 
col.idx 
The indices of features that have 'scale' value greater than 1e6. Features with 'scale' less than 1e6 are removed from model fitting. 
rejections 
The number
of features rejected at each value of 
safe_rejections 
The number of features rejected by safe rules at each
value of 
Yaohui Zeng and Patrick Breheny
Maintainer: Yaohui Zeng <[email protected]>
biglassopackage
, setupX
,
cv.biglasso
, plot.biglasso
,
ncvreg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  ## Linear regression
data(colon)
X < colon$X
y < colon$y
X.bm < as.big.matrix(X, backingfile = "")
# lasso, default
par(mfrow=c(1,2))
fit.lasso < biglasso(X.bm, y, family = 'gaussian')
plot(fit.lasso, log.l = TRUE, main = 'lasso')
# elastic net
fit.enet < biglasso(X.bm, y, penalty = 'enet', alpha = 0.5, family = 'gaussian')
plot(fit.enet, log.l = TRUE, main = 'elastic net, alpha = 0.5')
## Logistic regression
data(colon)
X < colon$X
y < colon$y
X.bm < as.big.matrix(X, backingfile = "")
# lasso, default
par(mfrow = c(1, 2))
fit.bin.lasso < biglasso(X.bm, y, penalty = 'lasso', family = "binomial")
plot(fit.bin.lasso, log.l = TRUE, main = 'lasso')
# elastic net
fit.bin.enet < biglasso(X.bm, y, penalty = 'enet', alpha = 0.5, family = "binomial")
plot(fit.bin.enet, log.l = TRUE, main = 'elastic net, alpha = 0.5')

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.