Internal function of cross-validation for irglmreg
Internal function of cross-validation for irglmreg
Internal function to conduct k-fold cross-validation for irglmreg, produces a plot, and returns cross-validated loss values for lambda
cv.irglmreg_fit(x, y, weights, offset, lambda=NULL, balance=TRUE, cfun=4, dfun=1, s=1.5, nfolds=10, foldid, type = c("loss","error"), plot.it=TRUE, se=TRUE, n.cores=2, trace=FALSE, parallel=FALSE,...)
Arguments
x: x matrix as in irglmreg.
y: response y as in irglmreg.
weights: Observation weights; defaults to 1 per observation
offset: this can be used to specify an a priori known component to be included in the linear predictor during fitting. This should be NULL or a numeric vector of length equal to the number of cases. Currently only one offset term can be included in the formula.
lambda: Optional user-supplied lambda sequence; default is NULL, and irglmreg chooses its own sequence
balance: for dfun=4, 5, 6 only
cfun: a number from 1 to 7, type of convex cap (concave) function
dfun: a number from 1, 4-7, type of convex downward function
s: nonconvex loss tuning parameter for robust regression and classification.
nfolds: number of folds >=3, default is 10
foldid: an optional vector of values between 1 and nfold
identifying what fold each observation is in. If supplied, nfold can be missing and will be ignored.
type: cross-validation criteria. For type="loss", loss function values and type="error" is misclassification error.
plot.it: a logical value, to plot the estimated log-likelihood values if TRUE.
se: a logical value, to plot with standard errors.
n.cores: The number of CPU cores to use. The cross-validation loop will attempt to send different CV folds off to different cores.
trace: a logical value, print progress of cross validation or not
parallel: a logical value, parallel computing or not
...: Other arguments that can be passed to irglmreg.
Details
The function runs irglmregnfolds+1 times; the first to compute the lambda sequence, and then to compute the fit with each of the folds omitted. The error or the log-likelihood value is accumulated, and the average value and standard deviation over the folds is computed. Note that cv.irglmreg can be used to search for values for alpha: it is required to call cv.irglmreg with a fixed vector foldid for different values of alpha.
Returns
an object of class "cv.irglmreg" is returned, which is a list with the ingredients of the cross-validation fit. - fit: a fitted irglmreg object for the full data.
residmat: matrix of loss values or errors with row values for lambda and column values for kth cross-validation
cv: The mean cross-validated loss values or errors - a vector of length length(lambda).
cv.error: estimate of standard error of cv.
foldid: an optional vector of values between 1 and nfold
identifying what fold each observation is in.
lambda: a vector of lambda values
lambda.which: index of lambda that gives minimum cv value.
lambda.optim: value of lambda that gives minimum cv value.
References
Zhu Wang (2024) Unified Robust Estimation, Australian & New Zealand Journal of Statistics. 66(1):77-102.