Fit a robust penalized GLM where the loss function is a composite function cfunodfun + penalty. This is the wrapper function of irglmreg_fit
## S3 method for class 'formula'irglmreg(formula, data, weights, offset=NULL, contrasts=NULL,...)## S3 method for class 'matrix'irglmreg(x, y, weights, offset=NULL,...)## Default S3 method:irglmreg(x,...)
Arguments
formula: symbolic description of the model, see details.
data: argument controlling formula processing via model.frame.
weights: optional numeric vector of weights. If standardize=TRUE, weights are renormalized to weights/sum(weights). If standardize=FALSE, weights are kept as original input
x: input matrix, of dimension nobs x nvars; each row is an observation vector
y: response variable. Quantitative for rfamily="clossR" and -1/1 for classification.
offset: Not implemented yet
contrasts: the contrasts corresponding to levels from the respective models
...: Other arguments passing to irglmreg_fit
Details
The computing is done by the iteratively reweighted penalized GLM, an application of the iteratively reweighted convex optimization (IRCO). Here convex is the loss function induced by dfun, not the penalty function. The output weights_update is a useful diagnostic to the outlier status of the observations. The regularization path is computed for the lasso (or elastic net penalty), scad (or snet) and mcp (or mnet penalty), at a grid of values for the regularization parameter lambda. The sequence of robust models implied by lambda is fit by the IRCO along with coordinate descent. Note that the objective function is
weights∗loss+λ∗penalty,
if standardize=FALSE and
∑(weights)weights∗loss+λ∗penalty,
if standardize=TRUE.
Returns
An object with S3 class "irglmreg" for the various types of models. - call: the call that produced this object
b0: Intercept sequence of length length(lambda)
beta: A nvars x length(lambda) matrix of coefficients.
lambda: The actual sequence of lambda values used
nobs: number of observations
risk: if type.path="nonactive", a matrix with number of rows iter and number of columns nlambda, loss values along the regularization path. If type.path="fast", a vector of length nlambda, loss values along the regularization path
pll: if type.path="nonactive", a matrix with number of rows iter and number of columns nlambda, penalized loss values along the regularization path. If type.path="fast", a vector of length nlambda, penalized loss values along the regularization path
fitted.values: predicted values depending on standardize, internal use only
References
Zhu Wang (2024) Unified Robust Estimation, Australian & New Zealand Journal of Statistics. 66(1):77-102.
print, predict, coef and plot methods, and the cv.irglmreg function.
Examples
#binomialx=matrix(rnorm(100*20),100,20)g2=sample(c(-1,1),100,replace=TRUE)fit1=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="active", decreasing=TRUE,type.init="bst")#fit1$risk## Not run:### different solution paths via a combination of type.path, decreasing and type.initfit1=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="active", decreasing=TRUE,type.init="bst")fit2=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="active", decreasing=FALSE,type.init="bst")fit3=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="nonactive", decreasing=TRUE,type.init="bst")fit4=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="nonactive", decreasing=FALSE,type.init="bst")fit5=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="active", decreasing=TRUE,type.init="co")fit6=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="active", decreasing=FALSE,type.init="co")fit7=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="nonactive", decreasing=TRUE,type.init="co")fit8=irglmreg(x,g2,s=1,cfun="ccave",dfun="gaussian",type.path="nonactive", decreasing=FALSE,type.init="co")## End(Not run)