conquer.process: Convolution-Type Smoothed Quantile Regression Process

View source: R/smqr.R

conquer.processR Documentation

Convolution-Type Smoothed Quantile Regression Process

Description

Fit a smoothed quantile regression process over a quantile range. The algorithm is essentially the same as conquer.

Usage

conquer.process(
  X,
  Y,
  tauSeq = seq(0.1, 0.9, by = 0.05),
  kernel = c("Gaussian", "logistic", "uniform", "parabolic", "triangular"),
  h = 0,
  checkSing = FALSE,
  tol = 1e-04,
  iteMax = 5000,
  stepBounded = TRUE,
  stepMax = 100
)

Arguments

X

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

Y

An n-dimensional response vector.

tauSeq

(optional) A sequence of quantile values (between 0 and 1). Default is \{0.1, 0.15, 0.2, ..., 0.85, 0.9\}.

kernel

(optional) A character string specifying the choice of kernel function. Default is "Gaussian". Choices are "Gaussian", "logistic", "uniform", "parabolic" and "triangular".

h

(optional) The bandwidth/smoothing parameter. Default is \max\{((log(n) + p) / n)^{0.4}, 0.05\}. The default will be used if the input value is less than or equal to 0.

checkSing

(optional) A logical flag. Default is FALSE. If checkSing = TRUE, then it will check if the design matrix is singular before running conquer.

tol

(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 5000.

stepBounded

(optional) A logical flag. Default is TRUE. If stepBounded = TRUE, then the step size of gradient descent is upper bounded by stepMax. If stepBounded = FALSE, then the step size is unbounded.

stepMax

(optional) Maximum bound for the gradient descent step size. Default is 100.

Value

An object containing the following items will be returned:

coeff

A (p + 1) by m matrix of estimated quantile regression process coefficients, including the intercept. m is the length of tauSeq.

bandwidth

Bandwidth value.

tauSeq

The sequence of quantile levels.

kernel

The choice of kernel function.

n

Sample size.

p

Number the covariates.

References

Barzilai, J. and Borwein, J. M. (1988). Two-point step size gradient methods. IMA J. Numer. Anal., 8, 141–148.

Fernandes, M., Guerre, E. and Horta, E. (2021). Smoothing quantile regressions. J. Bus. Econ. Statist., 39, 338-357.

He, X., Pan, X., Tan, K. M., and Zhou, W.-X. (2022+). Smoothed quantile regression for large-scale inference. J. Econometrics, in press.

Koenker, R. and Bassett, G. (1978). Regression quantiles. Econometrica, 46, 33-50.

See Also

See conquer for single-index smoothed quantile regression.

Examples

n = 500; p = 10
beta = rep(1, p)
X = matrix(rnorm(n * p), n, p)
Y = X %*% beta + rt(n, 2)

## Smoothed quantile regression process with Gaussian kernel
fit.Gauss = conquer.process(X, Y, tauSeq = seq(0.2, 0.8, by = 0.05), kernel = "Gaussian")
beta.hat.Gauss = fit.Gauss$coeff

## Smoothe quantile regression with uniform kernel
fit.unif = conquer.process(X, Y, tauSeq = seq(0.2, 0.8, by = 0.05), kernel = "uniform")
beta.hat.unif = fit.unif$coeff

conquer documentation built on March 7, 2023, 5:29 p.m.