Recent Revision History

3.04 September 19 2001  

1.  ci set to F if p==1 to prevent seg fault identified by Marcel Wolbers.

3.05 December 21 2001  

1. "iid" case in summary.rq fixed to update call to l1fit 
2. documentation and consistency checking updates to conform with R1.4.0


3.06 March 5 2002  

1.  Added LEGAL directory to clarify the licensing arrangement with Splus/
Insightful Corp.

3.07 March  2002

1.  Expanded table.rq to use method="fn", and adapted plot.table.rq to
use the polygon strategy of recent papers for the confidence band.

2.  Adapted the old version of latex.table and latex.table.rq to use
output of table.rq to make latex tables from the output array.  This
eventually could be updated to fit better into the expected R version
of Frank Harrell's Hmisc.  (The function latex.table is a slightly
hacked version of Frank's old latex.table function for Splus.)

3.  Added argument transpose to allow the tables to be flipped so that
row dimension is quantiles rather than coefs.

4.  Added error checking for tau+/-h outside (0,1) in summary.rq 

5.  Revised rq.fit.fn and rqfn.[rf] to simplify the calling sequence
basically to move the initialization into the R function.  (This is
in preparation for a new version that will incorporate inequality constraints.)

6.  Also relaxed upper bound constraints so that they could be specified
in rq.fit.fn rather than assumed to take the value one.

7.  Added a (long awaited) anova function for rq to do F test like inference
for both nested models for a single quantile and tests of equality of slope
coefficients across identical models estimated at several quantiles.
These new functions are (for the moment) in the R directory as anova.R.

3.08 May 22 2002

1.  Fixed a bug in anova.rqlist ndf = (p-1)*(m-1) not p*(m-1).

3.09 May 27 2002

1.  Added new functions rq.fit.fnb and rq.fit.fnc and associated fortran
and ratfor code.  The former is a slightly revised version of rq.fit.fn
the interior point algorithm for computing rq;  it should have exactly
the same functionality as the prior version, but _might_ work somewhat
more efficiently on some problems.  The new function rq.fit.fnc
is an interior point method for fitting rq problems subject to inequality
constraints on the coefficients.  The algorithm is a modified version
of the interior point method used for unconstrained problems and should
be described in detail (eventually) in a paper with Pin Ng.

3.10 July 4 2002

1.  Revised slightly the rq.fit.fnb function and the related ratfor/fortran
code to enable it to start at a (dual) point  that doesn't satisfy the
equality constraints.  And attempted to fix the many places that used T/F
rather than TRUE/FALSE in preparation for R-1.6.0 (at the suggestion of
Kurt Hornik.)

3.11 July 10 2002

1.  Fixed a few more T/F's at Kurt's behest, and changed some _ to <- in
the examples.  And added PACKAGE = "quantreg") to the .Fortran calls.

3.12 Nov 1, 2002.  

1.  fixed two generic inconsistencies Kurt found in table.R.

3.13 December 18 2002

1.  Fixed bug in summary.rq when se=iid found by Xuming.
 
3.14 December 30 2002

1.  Added a graphics example to rq.Rd using the Engel data and added the data set 

3.15 January 22 2003 

1. Fixed a typo in the akj.Rd file and added a reference.

3.16 February 6 2003 

1.  Fixed a generic method mismatch in the latex family prompted by Kurt's notice
that R CMD check quantreg produced a warning in R 1.7.0.  Now seems to check cleanly
in the devel version of 1.7.0 installed today.

3.17 February 17 2003 

1.  Removed the last of the _ assignments in the example files.

3.18 March 4 2003 

1.  Fixed a documentation bug in rq.fit.br the entry for alpha was changed from:

 alpha: the nominal coverage probability for the confidence intervals            

to

 alpha: the nominal noncoverage probability for the confidence intervals            

3.19 March 25 2003 

1.  Added src/Makevars file in accordance with Brian's email request, see R email folder.

3.20 April 27 2003 

1.  Found a bug in the fn family of fortran/ratfor functions.  When the initial
least squares start produced a residual which was a hard zero, then the
initial value of Q had a NaN value and this caused the function to return
with all NaN coef values.  This was altered to make z and w = eps when
this happens.

2.  When interp=FALSE in rq.fit.br the tcrit flag was broken.

3.  added names to coef return when CI= FALSE in rq.fit.br


3.30  August 13 2003

1.  added several bootstrapping methods to summary.rq including the MCMB
approach of He and Hu based on code by Xuming He and Maria Kocherginsky.

2.  added n choose m subsampling for the xy pair version of the bootstrap.

3.31  August 25 2003

1.  fixed a bug in anova.rqlist that messed up the checking for an intercept
found by Juan de la Garza.

3.33  January 09  2004

1.  Fixed a bug in ranks() found by Brian Cade involving the tau score function.

3.35  March 09  2004

1.  Changed the default behavior of rq to produce only the point estimates and
residuals when 0 < tau < 1, instead of automatically producing the rank inversion
confidence interval table.  The latter is now available from summary.rq by 
specifying se="rank".  (This is actually the default option in summary.rq when
the sample size is less than 1001.

2.  Altered anova.rq slightly to accomodate its use for two sample rank tests --
this task was simplified somewhat by (1.).

3.36 June 9, 2004

1.  Scoping problem in summary.rq made data invisible when formula
variables were specified using data=blot in rq().  This entailed a
somewhat extensive updating of rq and summary.rq in accordance with
the "Notes on model-fitting" white paper on the R developer page.
Thanks for that! to the anon author.  Now rather than passing x,y
a model object is passed indicating how the model should be 
reconstructed.  As a byproduct, the lowest level fitting routines
no longer return x,y,  thus saving some memory.

2.  added a error check to boot.rq to prevent users from calling with
tau outside (0,1).  Calls with   tau = 1 produced a rather nasty memory
overwrite as experienced by Alexis Diamond, debugging required some interesting 
adventures with gc().

3.  Major revision of the code to do inference on the rq process based
on the Khmaladze approach.  See khmaladze.test for further details.
In the process discovered a minor bug the resulted in problem with the
Joint test statistic.  (Two missing commas!)

3.50  July 17, 2004

1.  The function table.rq was made defunct, replaced by the more
direct ability to specify multiple taus in rq().  When a vector of
taus is specified, rq() returns an object of class rqs, and
summary.rqs produces output for each tau.  There are plot and latex
methods for objects of class summary.rqs.

2.  The Solaris f95 compiler choked on the & in column 1 of akj.f, so
this has been moved to col 6.  

3.60  September 20, 2004

1.  The choice of bandwidth was corrected for the "ker" method in
summary.rq() to account for the scale of the residual vector.  Thanks
to Victor Chernozhukov for pointing this out!


2.  On a 64bit gentoo linux system the statement 

	data one/1.d0/

set one = equal to zero...so I have systematically changed all data
statements to parameter statements.  This seems to be a general problem
that was created by gcc 3.4.  On the updating note that several of the
.f files were preprocessed by a new ratfor processor.  See the README
file in the src/ratfor directory for further details.  This bug in g77
was reported to the gnu folks and a patch was forthcoming with about
48 hours.  If only American foreign policy could respond so efficiently
to their snafus.

3.70  October 1, 2004

1.  The nprq and nlrq packages for nonparametric and nonlinear QR
were folded into quantreg.  The revision file for nlrq is reproduced
below:

  This is a package for estimating nonlinear in parameters quantile regression models.
  The algorithm is originally based on an Splus implementation of Koenker and
  Park (1996, J. Econometrics).   The interface to model specification a la nls()
  was very kindly provided by Philippe Grosjean.  It was originally submitted to
  CRAN in May, 2001.
  
  Version 0.1-4 (May, 2004)
  
  `       o Added method argument to nlrq() to be passed to optim() at the suggestion of
                  James Rogers (Pfizer)

See the documentation files for rqss() and friends for further details on the 
nonparametric functionality.  There is a strong dependence of the rqss fitting
functions on the SparseM package, and some use of tripack, and akima packages
as well.  Finally, the demo for the triogram fitting included in the demo
directory wants the rgl package.


2.  Brian Cade sent an example for forensic exam, which revealed that
the call to model.weights failed to work properly in summary.rq
This is now fixed using model.weights(object$model).

3.71  November 18, 2004

1.  The translation of boot.r and penalty.r were updated using the SEM
ratfor compiler so that their continuation characters appeared in col6
not col1  -- to comply with our local switch to Sun compilers on ysidro
and with the other code in the package.  (Isn't fortran wonderful?)
Now that we are back to gcc this isn't needed here, but might save some
one else some consternation.  

3.72  November 27, 2004

1.  Reference to nls package was removed (thanks Kurt) since it has
now been merged into stats.  Also upped Depends to R >= 1.9.0.

3.73  December 1, 2004

1.  Fixed a small bug in summary.rqs which had appended olscoefs for
no apparent reason, and this caused a printing error.

2.  Fixed large bug in anova.rqlist in which chi-squared statistic
was divided by numerator degrees of freedom (ndf) when this had already
been done in rq.test.rank, and modified the way that the score function
specification was passed.

3.  Also fixed a printing glitch in the anova.rq procedure by adding
an explicit print method for such objects.

3.74  February 24, 2005

1.  Fixed bug reported by Steve Portnoy in summary.rq.  The  se="iid"
option was broken after the switch from a matrix valued coef object
to a vector one.

3.75  March 11, 2005

1.  Fixed bug reported by Jose Machado in predict.qss2.  Further work
is needed to integrate these methods for qss2 and qss1 objects into
a upper level predict.rqss function, but this will have to wait.

3.76  March 17, 2005

1.  Jan deLeeuw reported that the warnings for rqbr.f had turned into
errors in g77 4.0 -- some hand editing of the ratfor translation fixed
this, but it is depressing to think that there isn't now an automatic
way to get from the ratfor.  See the README file in the ratfor directory
for gory details.

3.77  April 28, 2005

1.  Cleaned up a few unescaped % signs in the .Rd files at the request of Kurt.

3.78  May 2, 2005

1.  Finally added back in the vignette just in time for the first copies of QR
from CUP.

3.79  May 2, 2005

1.  Fixed 3 problems identified by Gabor Grothendieck having to do with rq
interaction with fitted() and residuals() and na.action.

3.80  May 11, 2005

1.  Added predict method for rq and a subset argument.

3.81  May 14, 2005

1.  Added a flag to enable anova.rq to allow computation of separate tests on each of the
slope parameters for equality across quantiles.

2.  Fixed reference to Engel (1857) in the vignette.

3.82  May 15, 2005

1.  Added a formula.rq function that seems to be necessary to make formula updating
work.  

3.82  May 20, 2005

1.  Modified initial bandwidth in akj() to insure default starting value, this
had produced a rather mysterious bug that was only apparent on a few machines
due to (essentially)  trying to check whether double(0) <= 0.

2.  Modified predict.qss1 to fix a problem with non-unique x observations.
This needs further work, ideally a predict.rqss function that would dispatch
pieces of the prediction problem to the right lower level prediction function.

3.83  Nov 23 2005

1.  Added a "cen" method to rq that fits the Powell censored regression
model using the Fitzenberger algorithm.  This is very beta for the moment
and needs to have some inference methods written, before it is terribly
useful.  A related project will add Portnoy's CRQ method as well.

2.  Fixed a bug in the predict.qss1 function that made it invisible.

3.  Fixed several bugs in the rank testing with anova.rqlist in response
to a report from Brian Cade.  In particular, to enable rank tests with
weighted QR.

3.84  Nov 28, 2005

1.  One (last?) bug fix for rq.test.rank which for weighted data introduced
a faulty intercept.  Again, thanks to Brian Cade for the report.

2.  Changed tau checking to not allow tau either 0 or 1 in an effort to
discourage these values, which seems to have dire consequences on some
machines, cf email of Andrew Clausen regarding segfault on Debian.

3.  Added summary.fcrq and summary.fcrqs to provide some basic inference
on the Powell censored regression estimator.

3.85  Feb 11, 2006

1.  Revised predict method for rqss objects motivated by an inquiry by
Denis Chabot.

2.  Added a note to explain that the default se method in summary.rq was
sample size dependent.

3.86 March 16, 2006

1.  Revised rq to allow taus to be 0 or 1 when there multiple taus.

3.89 March 31, 2006

1.  Changed summary.rq so that call to rq.fit.fn is to rq.fit.fnb based
on an example provided by Nantachai Kantanantha.  The former called 
produced NaN's for the coef vector, while the latter agreed with rq.fit.br.
This deserves some more attention at a later point.

2.  Added function kuantile which implements the O(n) algorithm of Floyd
and Rivest for computing univariate quantiles.
