oem.xtx  R Documentation 
Orthogonalizing EM with precomputed XtX
oem.xtx( xtx, xty, family = c("gaussian", "binomial"), penalty = c("elastic.net", "lasso", "ols", "mcp", "scad", "mcp.net", "scad.net", "grp.lasso", "grp.lasso.net", "grp.mcp", "grp.scad", "grp.mcp.net", "grp.scad.net", "sparse.grp.lasso"), lambda = numeric(0), nlambda = 100L, lambda.min.ratio = NULL, alpha = 1, gamma = 3, tau = 0.5, groups = numeric(0), scale.factor = numeric(0), penalty.factor = NULL, group.weights = NULL, maxit = 500L, tol = 1e07, irls.maxit = 100L, irls.tol = 0.001 )
xtx 
input matrix equal to 
xty 
numeric vector of length 
family 

penalty 
Specification of penalty type. Choices include:
Careful consideration is required for the group lasso, group MCP, and group SCAD penalties. Groups as specified by the 
lambda 
A user supplied lambda sequence. By default, the program computes
its own lambda sequence based on 
nlambda 
The number of lambda values  default is 100. 
lambda.min.ratio 
Smallest value for lambda, as a fraction of 
alpha 
mixing value for 
gamma 
tuning parameter for SCAD and MCP penalties. must be >= 1 
tau 
mixing value for 
groups 
A vector of describing the grouping of the coefficients. See the example below. All unpenalized variables should be put in group 0 
scale.factor 
of length 
penalty.factor 
Separate penalty factors can be applied to each coefficient. This is a number that multiplies lambda to allow differential shrinkage. Can be 0 for some variables, which implies no shrinkage, and that variable is always included in the model. Default is 1 for all variables. 
group.weights 
penalty factors applied to each group for the group lasso. Similar to 
maxit 
integer. Maximum number of OEM iterations 
tol 
convergence tolerance for OEM iterations 
irls.maxit 
integer. Maximum number of IRLS iterations 
irls.tol 
convergence tolerance for IRLS iterations. Only used if 
An object with S3 class "oem"
Huling. J.D. and Chien, P. (2022), Fast Penalized Regression and Cross Validation for Tall Data with the oem Package. Journal of Statistical Software 104(6), 124. doi:10.18637/jss.v104.i06
set.seed(123) n.obs < 1e4 n.vars < 100 true.beta < c(runif(15, 0.25, 0.25), rep(0, n.vars  15)) x < matrix(rnorm(n.obs * n.vars), n.obs, n.vars) y < rnorm(n.obs, sd = 3) + x %*% true.beta fit < oem(x = x, y = y, penalty = c("lasso", "elastic.net", "ols", "mcp", "scad", "mcp.net", "scad.net", "grp.lasso", "grp.lasso.net", "grp.mcp", "grp.scad", "sparse.grp.lasso"), standardize = FALSE, intercept = FALSE, groups = rep(1:20, each = 5)) xtx < crossprod(x) / n.obs xty < crossprod(x, y) / n.obs fit.xtx < oem.xtx(xtx = xtx, xty = xty, penalty = c("lasso", "elastic.net", "ols", "mcp", "scad", "mcp.net", "scad.net", "grp.lasso", "grp.lasso.net", "grp.mcp", "grp.scad", "sparse.grp.lasso"), groups = rep(1:20, each = 5)) max(abs(fit$beta[[1]][1,]  fit.xtx$beta[[1]])) max(abs(fit$beta[[2]][1,]  fit.xtx$beta[[2]])) layout(matrix(1:2, ncol = 2)) plot(fit.xtx) plot(fit.xtx, which.model = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.