1\name{rq.fit.pfnb}
2\alias{rq.fit.pfnb}
3\title{
4Quantile Regression Fitting via Interior Point Methods
5}
6\description{
7This is a lower level routine called by \code{rq()} to compute quantile
8regression parameters using the Frisch-Newton algorithm.  It uses a form
9of preprocessing to accelerate the computations for situations in which
10several taus are required for the same model specification.
11}
12\usage{
13rq.fit.pfnb(x, y, tau, m0 = NULL, eps = 1e-06)
14}
15\arguments{
16\item{x}{
17The design matrix
18}
19\item{y}{
20The response vector
21}
22\item{tau}{
23The quantiles of interest, must lie in (0,1), be sorted and preferably equally
24spaced.
25}
26\item{m0}{
27    An initial reduced sample size by default is set to be
28    \code{round((n * (log(p) + 1) )^(2/3)} this could be explored further
29    to aid performance in extreme cases.
30}
31\item{eps}{A tolerance parameter intended to bound the confidence band entries
32    away from zero.}
33}
34\value{
35  returns a list with elements consisting of
36  \enumerate{
37      \item{coefficients}{a matrix of dimension ncol(x) by length(taus)
38      }
39      \item{nit} {a 5 by m matrix of iteration counts: first two coordinates
40	  of each column are the number of interior point iterations, the third is the
41	  number of observations in the final globbed sample size, and the last two
42	  are the number of fixups and bad-fixups respectively.  This is intended to
43	  aid fine tuning of the initial sample size, m0.}
44      \item{info} {an m-vector of convergence flags}
45  }
46}
47\details{
48  The details of the Frisch-Newton algorithm are explained in Koenker and Portnoy (1997),
49  as is the preprocessing idea which is related to partial sorting and the algorithms
50  such as \code{kuantile} for univariate quantiles that operate in time O(n).
51  The preprocessing idea of exploiting nearby quantile solutions to accelerate
52  estimation of adjacent quantiles is proposed in Chernozhukov et al (2020).
53  This version calls a fortran version of the preprocessing algorithm that accepts
54  multiple taus.  The preprocessing approach is also implemented for a single tau
55  in \code{rq.fit.pfn} which may be regarded as a prototype for this function since
56  it is written entirely in R and therefore is easier to experiment with.
57}
58\references{
59Koenker, R. and S. Portnoy (1997).
60The Gaussian Hare and the Laplacian Tortoise:
61Computability of squared-error vs. absolute-error estimators, with discussion,
62\emph{Statistical Science}, \bold{12}, 279-300.
63
64Chernozhukov, V., I., Fernandez-Val, and Melly, B. (2020), `Fast algorithms for
65the quantile regression process', Empirical Economics, forthcoming.
66}
67\seealso{
68  \code{\link{rq}}, \code{\link{rq.fit.br}},
69  \code{\link{rq.fit.pfn}}
70}
71\keyword{regression}
72