adaHuber.reg {adaHuber}R Documentation

Adaptive Huber Regression

Description

Adaptive Huber regression from a data sample, with robustification parameter \tau determined by a tuning-free principle.

Usage

adaHuber.reg(
  X,
  Y,
  method = c("standard", "adaptive"),
  epsilon = 1e-04,
  iteMax = 500
)

Arguments

X

A n by p design matrix. Each row is a vector of observation with p covariates. Number of observations n must be greater than number of covariates p.

Y

An n-dimensional response vector.

method

(optional) A character string specifying the method to calibrate the robustification parameter \tau. Two choices are "standard"(default) and "adaptive". See Wang et al.(2021) for details.

epsilon

(optional) Tolerance level of the gradient descent algorithm. The iteration will stop when the maximum magnitude of all the elements of the gradient is less than tol. Default is 1e-04.

iteMax

(optional) Maximum number of iterations. Default is 500.

Value

An object containing the following items will be returned:

coef

A (p + 1)-vector of estimated regression coefficients, including the intercept.

tau

The robustification parameter calibrated by the tuning-free principle.

iteration

Number of iterations until convergence.

References

Huber, P. J. (1964). Robust estimation of a location parameter. Ann. Math. Statist., 35, 73–101.

Sun, Q., Zhou, W.-X. and Fan, J. (2020). Adaptive Huber regression. J. Amer. Statist. Assoc., 115, 254-265.

Wang, L., Zheng, C., Zhou, W. and Zhou, W.-X. (2021). A new principle for tuning-free Huber regression. Stat. Sinica, 31, 2153-2177.

Examples

n = 200
p = 10
beta = rep(1.5, p + 1)
X = matrix(rnorm(n * p), n, p)
err = rt(n, 2)
Y = cbind(1, X) %*% beta + err

fit.huber = adaHuber.reg(X, Y, method = "standard")
beta.huber = fit.huber$coef

fit.adahuber = adaHuber.reg(X, Y, method = "adaptive")
beta.adahuber = fit.adahuber$coef

[Package adaHuber version 1.1 Index]