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. 3.90 May 17 2006 1. Major revision of the rqProcess and KhmaladzeTest functions. 2006-08-14 Martin Maechler * tests/rq.R (stopifnot): regression tests added. * man/plot.Rd: improve; notably plot.qss2() arguments * man/predict.rqss.Rd: no rm(.) in example; improve 2006-08-12 Martin Maechler * R/quantreg.R (akj): 'iker2' is never used; add a check for length(p) == length(x) [vignette did not fulfill this and gave spuriously wrong results because of initialize memory in .Fortran("arj" ...) ! * inst/doc/rq.Rnw: fix the akj() weights * man/akj.Rd: no 'iker2'; cleanup 2006-08-11 Martin Maechler * tests/run-demos.R: one simple test suite .. * demo/cobar.R: make sure this also works when 'rgl' does not * demo/Frank.R: clean up a bit * demo/engel1.R: nicer; + legend * demo/engel2.R: is incomplete => if(FALSE) { .. } for the moment FIXME: use vignette ! * man/engel.Rd: added somewhat interesting example. * src/chlfct.c (chlfct): eliminate goto; correct timing also when error; more comments (timewd, etc) * R/sfn.R (rq.fit.sfn, rq.fit.sfnc): only keep what's needed from .Fortran(). Save one (sparse) matrix multiplication 2006-08-09 Martin Maechler * src/srqfn.c: new from src/srqfn.f ... * src/srqfnc.c: new from src/srqfnc.f ... 2006-08-05 Martin Maechler * src/cholesky.c: new from src/cholesky.f which must be renamed 3.91 Sept 11, 2006 1. Removed Makevars from src directory which seemed to be causing some difficulties with multiple definitions of symbols for gfortran. 4.00 Sept 11, 2006 1. Implements some suggested fixes by Martin Maechler. See detailed entries of Martin above. 4.02 Oct 21, 2006 1. Fixed problem with olscoef plotting in plot.summary.rqs. 2. Changed variable names in the engel data and examples to avoid long-standing problems of masking x,y names. Thanks to Marc Schwartz for pointing this out. 4.03 Nov 18, 2006 1. Fixed memory problem with rq.fit.fnc when n2 > n1, the vector u was being used as a scratch array but had insufficient space. 2. Fixed rqProcess bug with "location-scale" option noted by Alvaro Novo. 4.04 Dec 19, 2006 1. Removed [.terms from rqss.R at the advice of BDR. 2. Added a summary.nlrq function to bootstrap se's. This is highly experimental at this stage. 4.04 Jan 15, 2007 1. Modified penalty.r so that it checks to ensure that all triogram quadralaterals have the same orientation, this was a longstanding bug that prevented that convexity and concavity constraints from properly working. Still needs further checking.... 2. Some mostly cosmetic changes were made in rq1.f in the course of debugging an apparent problem in boot.rq.xy which eventually turned out to be caused by a rank deficient X matrix. Some attempt was made to improve the reporting of this, but I'm afraid there are some inherent problems in the BR code that makes it difficult to recognize this sort of problem. 3. Added a residual vector to the object returned from rqss.fit to conform with general R practice and also because it was needed to do some exploration of the number of exactly fit points in an example of Xuming He. 4. Added a demo called cpoint.R that illustrates how rqss can be used for a simple broken stick piecewise linear median regression problem. 4.06 Feb 1, 2007 1. Fixed legend ordering problem in rq.fit.fcen.Rd. 2. Fixed a call to as.matrix.csr(diag(n)) in rqss to avoid creating a dense matrix. 3. Added summary.rqss logLik.rqss and AIC.rqss functions 4. Fixed etime bug in Cholesky.c according to a patch kindly provided by Simon Urbanek. 4.07 April 17, 2007 1. Added two new methods for fitting: rq.fit.lasso and rq.fit.scad. 2. Added ... to a call to plot from plot.summary.rqs suggested by Tyler Smith. 3. Added the Peirce dataset and my attempt to reproduce the Wilson and Hilferty analysis of it. 4.08 July 1, 2007 1. Modified predict.rqs and added predict.rq.process to produce stepfun objects. 2. Added a function "rearrange" to do rearrangement of stepfun objects a la Chernozhukov, Fernandez-Val and Galichon. 4.09 August 7, 2007 1. Modified plot.summary.rqs according to a proposal by Achim Zeileis to improve default mfrow choice and tone down the colors to grey scale for better plotting. Also added a plot.rqs function 2. Changed predict.rqs and predict.rq.process so that the stepfun version is an option and the default is still returning a matrix. 4.10 September 12, 2007 1. Modified rearrange according to suggestions by Ivan Fernandez-Val and Victor Chernozhukov to acommodate right and left continuous stepfuns. 2. Cleaned up some Rd files that improperly documented methods. 4.11 Jan 15, 2008 1. Fixed summary.nlrq problem with coef/coefficient duplication 2. Fixed rqss problem with models without any qss terms Thanks to Hiroyuki Kawakatsu for pointing this out. 3. Fixed summary.nlrq to pass ... to boot.rq and updated man file 4. Fixed typo in demo/hinged.R pointed out by Brian Ripley 4.16 Jan 15 2008 1. Revised the formula handling for the Fitzenberger/Powell estimator and replaced the old rq1 fortran routine with an even more stripped down version from the crq package. (This seems to have eliminated a memory leak problem.) This is now called via crq() not rq(). 2. Added the Peng-Huang estimator as a option to crq(). This is preliminary step toward also folding in the crq package. 3. Fixed problem with crq FP method which required a new (bastardized) version of Surv called FSurv to accommodate fixed censoring times. 4. Incorporated crq package into quantreg and rationalized the interface to all crq functionality. Insert of revision history of crq: Version 0.3 Oct 2007 1. Fixed a bug in the boot.crq which led to double weighting in the bootstrap. Version 0.4 Nov 2007 1. Modified summary.crq (at the suggestion of S. Portnoy) to: a.) make .95 coverage the default rather than .90 b.) center intervals at betahat(tau) rather than median of bootstraps 5. Cleaned up the boot.whatever code to call rq1 in a consistent way as a prelude to investigating other bs methosd for crq. 6. Replaced Fitzenberger's qrcens fortran subroutine with a new version that was written from scratch along the lines of the pure R implementation of Barrodale and Roberts. 7. Reworked the naming conventions for the crq methods. Note that FSurv is now Curv. 8. Added an option to the Powell method to compute the full global optimum by pivoting through all the possible h's. This entailed a new function combos() that produces an ordered version of combn() output. 4.17 Feb 22 2008 1. boot.r had a wayward comma, 2. added start options for powell method. 3. Thanks to Robert McGehee for a report that g77 on his fedora system didn't like the ordering of the integer declarations in my fortran. Integers used as variable dimensions should be declared integer BEFORE they are used as dimensions in other arrays. (Picky, picky. Sometimes I wonder whether this is a conspiracy by the C-conspiracy to stamp out fortran altogether.) 4.18 Feb 23 2008 1. Revised the rho, logLik and AIC functionality of rq(), so it is easier to extract these values. 2. Revised predict.rqss and friends to fix a problem with variable names as suggested by Kyle Jennings. Further work is needed: print methods for rqss objects would be nice. 3. Changes to predict.rqs as suggested by Achim Zeileis. 4.19 Mar 31 2008 1. Added extractAIC method for rq objects. 2. Added singularity check for rq.fit.br since Gabor G pointed out that the checking otherwise isn't really reliable and when it fails, R may crash. (Still open question: should I provide some automagic aliasing for such situations?) 4.20 July 17, 2008 1. Added a reference for rq.fit.scad. 2. Added crq.pdf as a pseudo-vignette, pseudo because it isn't sweaved. 3 Fixed a bug in rq.fit.lasso for tau != .5. And for rq.fit.scad. 4. Fixed bug in plot.summary.rqs and plot.rqs when OLS=FALSE. Thanks to Jim Kossin UW-Madison for reporting this. 5. Modified both rq.fit.lasso and rq.fit.scad to allow a vector of lambdas to be passed thereby allowing users to fine tune the style of l1 shrinkage. In particular, to exempt some covariate effects from shrinkage by setting some elements of lambda = 0. In prior versions only the intercept was exempt and all slopes were shrunken equally. 6. Removed the function rq.fit.fn and made all invocations of method "fn" fitting call rqfnb version of the fortran algorithm. This was precepitated by finding that the earlier version of this alg had trouble with problems in which there were observations (x,y) = (0,0). Such observations shouldn't affect the solution, obviously, but on yzzy (my ppc mac desktop) they weren't so innocuous. This eventually was attributed to the fact that the initial setting of the dual variables was perhaps not feasible. The "fnb" version of the algorithm relaxed this requirement and seems to be generally more robust. 7. Modified the class structure for lassorq(s) scadrq(s), etc. objects so that they inherit from rq, rqs objects and therefore can use AIC evaluation for those methods. Note that there is a edfThresh option for AIC to determine how to evaluate the effective degrees of freedom when using the lasso and scad penalty methods. 4.22 Spetember 17 2008 1. Fixed bug in summary.crq which for the Bilias, Chen Ying bootstrap of the Powell estimator produced the wrong sample selection. Thanks to Ajay Shah for pointing out the problem. 2. Fixed bug in rq.test.rank which computed the denominator degrees of freedom incorrectly. (Thanks to Xuming He for pointing this out.) 3. Added a weighted bootstrap option to boot.rq a la Bose and Chatterjee using unit exponential weights. (This is a prelude to implementing another option for anova.rq using the approach of Chen, Ying, Zhang and Zhao (Biometrika, 2008). 4. Made a distinct version of rq1.f called rq0.f for use in the bootstrapping routines. So now rq1.f is used exclusively by crq, while rq0.f is used exclusively by boot.rq.: 5. Implemented the test proposed by Chen, Ying, Zhang and Zhao (2008) based on drop in the value of the objective function. (This uses the same resampling scheme as the Bose and Chatterjee GBS to compute a reference distn for the test the statistic. 4.23 October 13 2008 1. added the line: fstcol = 1; in cholesky.c which seemed to have been lost in MM's conversion to C. Thanks to to Kurt for pointing this out. (rather scary -- what?) 2. A major extension of the function predict.rq was made to provide confidence intervals for the predictions. This is now possible using a variety of methods, including percentile bootstrap and Portnoy and Zhou's "direct method". These methods can be used to construct prediction intervals as well. A more systematic study to compare the efficacy of these methods would be useful. A demo file has also been added to illustrate the useage of these predict methods: try demo(predemo). Thanks to Ivan Mizera for several contributions to this extension. 4.24 October 20 2008 1. Added an argument to nlrq.control called InitialStepSize that allows the user to control the starting value used by optim to compute a step size given a Meketon step. For some work on the AR(1) Clayton copula model, it seems that the only prudent value is 0. Default value remains 1. 2. Changed rq.fit.lasso to fix a bug when p=2, as suggested by Gal Goldshtein, and in rq.fit.scad. 3. Fixed a bug in predict.rq that involved factors. Fix required adding an xlevels object to the fitted rq object as in lm. Thanks to Sandy Weisberg for pointing out the bug. 4.25 January 6, 2009 1. Fixed buglet in latex.table diagnosed by Gert van Valkenhoef. 2. Fixed several .Rd files formatting identified by the new Rdversion 2 parser. 4.26 February 2, 2009 1. fixed rq.fit.pfn buglet for cases in which m > n. 2. Fixed Qhat at 0 and 1 in the sol array as suggested by Steve Portnoy. 3. Fixed logLik.rqs to have the right df attribute when pen = 0. Thanks to Brian Cade for pointing out this omission. 4. Fixed some issues with plot.rqss: added an "add" option so that one can either initiate a new plot, or add to an old plot, added a par(ask =TRUE) when there are multiple qss terms. Added title and better axis labels using names of the qss variables. 4.28 April 12, 2009 1. Fixed (I hope) an environmental issue in rqss: when data was specified in rqss, the eval of the qss formulas failed to find the lambda values. This seems to be resolved by defining pf <- parent.frame(), and then adding enclos = pf to the eval call. But at the suggestion of Duncan Murdoch and Peter Dalgaard I'm using instead pf <- enviroment(formula). Thanks to both for their help with this. 2. Added Boscovich data to the data directory with an example in the documentation file (Bosco.Rd). 4.30 May 10, 2009 1. Motivated by some trouble with rqss, I've reverted to the .f version of cholesky.c originally used before MM provided the .c version. This has somewhat reduced the frequency of occurance of the dreaded ierr=17. 2. rq.test.ranks and friends have been modified to allow trimmed Wilcoxon score functions. 3. In .First.Lib cat was replaced by packageStartMessage() at the suggestion of BDR. 4.34 June 3 2009 1. Added option in rqss to use lasso penalization for the linear covariate effects. See also the file rqsslasso.R in the demo directory. 2. Deleted the component tausplit from the output of crq.fit.por which seemed to do nothing useful, and had a potentially dangerous sideeffect. 3. Added coef names for rqss objects 4. Fixed rqss so that when no qss terms appear the fitting still by rq.fit.sfn and weighting can be handled. 4.35 June 27 2009 1. Some fixups of rqss to handle models without any qss terms. 2. Added a function dither() to facilitate dithering. 3. Portnoy's bug fix to crq.fit.por to handle cases without censoring. 4. Minor changes to plot.rqss to handle ask parameter. 4.36 July 10 2009 1. Fixed bug in rq() that prevented contrasts from being properly propagated forward to summary.rqs when there were multiple taus. Thanks (yet again!) to Brian Cade for the bug report. 2. Added two new functions in tools.R FAQ and ChangeLog to facilitate looking at those two files for packages that have such files in the package inst directory. 3. A very primative print method for rqss objects was added, summary.rqss needs some adaptation to provide better info for lasso fitting, etc and then a better print method could be written. 4.37 July 24 2009 1. Fixed computation of residual and fitted.value components in rq.wfit, thanks to Václav Varva#ovský for point this out. 2. At the suggestion of Steve Portnoy the default grid spacing in crq.fit.por was modified to reduce the number of grid points. 4.38 August 3 2009 1. Removed a comma in an .Rd file, at the prodding of Kurt. 2. Fixed a bug in summary.rqss which led to a miscalculation of the edf in cases when there was a lasso effect. This involved passed the number of rows of the lasso constraint matrix forward as part of the fit object. 4.42 August 24, 2009 1. Added a demo for the Melbourne temperature data. 2. Made some extensive changes in plot.rqss and summary.rqss to implement confidence bands and summary coef tables for rqss. 3. Added a faux vignette about rqss fitting and a function to read such objects. 4. Minor mod of coef.crq to deal with a zero index problem identified by Portnoy. 5. An experimental option to add uniform confidence bands for 1d rqss components based on Hotelling tubes has been added. Further work is needed to evaluate the performance of these bands, which will be eventually added to the rqss vignette. 6. Fixed yet another missing drop = FALSE in summary.crq. 7. Added an iid argument to rq.test.rank, and the option (when iid = FALSE) to do the nid version of the rank test, only when the score function is the special tau specific one. (I don't think that nid makes much sense otherwise.) 8. rq.fit.br modified so that it optionally returns dual vector, and rq.test.rank modified to use this vector when rank test uses tau-score function. This avoids computing the whole rq process in such cases. 9. Added a reference to the Peirce.Rd file. 4.43 October 17 2009 1. Fix bug in predict.rq so rdf were found, thanks to Richard Berk for report. 2. Added set.seed(1989) for Frank demo, after Kurt reported that it choked on a random realization. 4.44 October 17 2009 1. latex.table was producing two captions... why didn't I see this earlier? 2. pwy bootstrap method was badly centered for prediction intervals, this was eventually traced to a mistaken inequality in boot.rq. Thanks to Richard Berk (Wharton) for pointing out the original anomaly. 4.45 January 12 2010 1. Added 3 score functions to "ranks" for the work on the Jana Festschrift paper. 2. Added shading option for plot.rqss confidence bands. Color of these bands is hard coded to grey scale and this probably should be fixed. 3. Modified plot.rqss to (optionally) plot and return both pointwise and uniform bands. 4. Added titles option for plot.rqss bands. 5. In plot.rqss the eigenvalue decomposition once in a while produced negative eigenvalues which then caused havoc. I replaced E$values with pmin(0,E$values). 4.46 March 15 2010 1. Added select argument to plot.rqss to plot subset of qss objects. 2. Commented out a line in latex.table at the suggestion of David Epstein, Warwick. 4.47 April 21 2010 1. Updated mcmb.c to fix a problem with the 64bit version, thanks to Garth Tarr for pointing this out. 2. Updated the references for rearrange manpage and fixed an ambiguity in the summary.rq manpage. 3. Fixed a bug in predict.rqss having to do with name wrangling: when qss terms had a variable name specified for lambda, this got carried along for the ride and caused problems with name matching for newdata. Fix entailed adapting the mcgv interpret.gam to do something similar for rqss. Thanks to Ivan Mizera for pointing out the original problem. 4.48 May 21 2010 1. Added error message to alert users that summary.rq doesn't know how to deal with lasso'd fitting. Thanks to Richard Berk (U. Penn) for pointed this out. 2. Fixed summary.rqss problem that made models without qss terms choke. 3. Changed predict.rqss so that confidence intervals for the prediction can be returned. 4. Modified the fix in 4.47.3 to avoid using interpret.rqss. This avoids calling qss twice for each fit, and returns a fake.formula directly from rqss that can then be used by predict.rqss. Involved some semi-fancy footwork to deal with the formula wrangling, but seems cleaner than the prior approach (which had the unfortunate additional flaw that it didn't work as intended). 5. Fixed a bug in predict.qss1 by adding the argument include.lowest = TRUE in the call to cut. This (seems to) allow newdata values equal to the minimum of those used in the fitting. Prior version produced NAs in such circumstances and generated a god-awful error message when new() was called to construct the design matrix for the predicted observations. Thanks again to Richard Berk for the example that led to this fix. 4.50 May 26 2010 1. Added fitted() and resid() methods for rqss objects. 2. Fixed bug in powell.f -- failure to declare ddot double precision which (curiously) caused example(crq) to produce something insane in 64bit R, even though in 32bit R it was ok. 3. Updated some references in rq.fit.sfn.Rd as suggested by Ott Toomet. 4.51 Sept 25 2010 1. Fixed the vignette fiasco thanks to help from Bob Obenchain. See inst/doc for the dummy Rnw files to enable one to make non-Sweave vignettes. 2. Fixed bug in predict.rq.process pointed out by Stephen Wegland (Mayo). 4.52 Sept 28 2010 1. Revert to my old Makefile processing of rq.tex, after Kurt reported infinite loop in the texi2pdf step in Vienna. 4.53 Sept 28 2010 1. Changed run-tests.R in tests directory to conform to a suggestion of BDR 4.54 1. Added sentence to summary.rq.Rd to make it easier to find how to change coverage probability for rank based confidence intervals. Thanks to Jochem Kail for this suggestion. 2. Modified definition of S in summary.crq to fix a problem with bootstrap inference. Thanks to Xianghua Luo for this suggestion. 3. Fixed vignette call to plot.summary.rqs... thanks to Jan Henckens. 4. Fixed call to latex.table to pass optional ... args. Thanks to Jan Henckens, again. 5. Fixed rqss problem to pass optional space allocation arguments. Thanks to Jungmo Yoon for noticing this problem. 4.55 1. Fixed bug in rq.wfit to allow fitted values to be computed when tau = -1. Thanks to Brian Cade for this report. 2. Fixed bug in rqss that prevented models without qss terms to be estimated. 4.56 1. Cleanup and compression of vignettes for Kurt. 4.57 1. Slight change in summary.rq to clarify default behavior 2. Compactification of rqss0.pdf 4.58 1. bug fix in summary.crq for cases with only one tau. 4.59 1. bug fix in predict.rqss for cases without any qss terms. 4.60 1. bug fix in rqss lasso rhs. Thanks to Stefan Bache for reporting this. This also affects rq.fit.panel as posted on my webpages, which as been modified accordingly. 4.61 1. Moved non-R data files to extdata directory and fixed some problems with the vignettes, as requested by Kurt. 4.64 1. Added an option to predict.rqs and predict.rq.process to allow one to predict conditional dfs rather than just conditional qfs. 4.65 1. rqss fitting now passes a list called control that contains various parameter for rq.fit.sfn(c) functions. 4.66 1. rqss now allows partially linear part of X to be made sparsely thanks to maodel.Matrix from the Matrix package. 2. Typo introduced by the 4.65 change that caused cobs to seg.fault corrected. 4.68 1. Added demo for the Mammal plot. 2. Added warning for specifying a vector of taus in rqss indicating that only the first element will be used. (Thanks to Hadley Wickham for pointing out that this used to generate a rather mysterious error message.) 4.69 1. Added an experimental new function dynrq() modeled after dynlm() by Achim Zeileis, which is intended to make formula specification for dynamic models involving time series data simpler and more natural. 4.70 1. Added NAMESPACE file kindly provided by BDR. Now that there is a namespace it is somewhat more difficult to debug using old fashioned work habits. A trick suggested by Martin Maechler is the following: example(source) # needed to define function sourceDir sourceDir("/quantreg/R") This has the effect of putting all of the R functions in the global workspace where they can be edited and changed at will. 4.71 1. Kurt's new gfortran found an error in the crq.f code: det in the call to dgemi wasn't dimensioned, but it was supposed to be a 2-vector. Now fixed. 2. Added a new wild bootstrap option to boot.rq based on Xuming's forthcoming Biometrika paper. For the moment only the two point weight distribution is implemented, but stay tuned for a smoother variant. 4.72 1. Added a demo to illustrate automatic lambda selection for univariate rqss fitting. This is based on a test problem in a recent paper by Oh and Nychka. 2. Changed the default bootstrap method in boot.crq from xy-pair to Bose, at the urging of Steve Portnoy. 4.73 1. Changed the default score function in anova.rqlist to score = "tau" as suggested by a question from Mo Dang-Arnoux (Grenoble). 4.74 1. Altered taus in rq() so that any tau == 0 or tau == 1 are replaced by values strictly in (0,1). As noted by Christophe Rolphe under some exotic circumstances this produced crashes from rq.fit.br. 2. Clarified the documentation for summary.rq to indicated that when se == "boot" you can't get separate Hinv and J components only the full sandwich cov component. 3. Fixed the license designation to explicitly reflect the ambiguity of the status of the cholesky.f code. 4.75 1. Fixed the documentation for qss where convexity was imposed by "V" not "U". 4.77 1. Removed the LICENSE file that had described some uncertainties with respect to the license status of the code in src/cholesky.f. These uncertainties have now been resolved by the original authors, Esmond Ng and Barry Peyton, declaring their code to be open source, and thus the quantreg package can now be considered fully GPL. 2. Commented out some vestigial write and printf calls in mcmb.c and cholesky.f. 4.78 1. Fixed a bug in summary.crq which failed to check whether censoring in the Powell method was "right" or "left" before calling boot.rq. 4.79 1. Added logLik and AIC functions for the nlrq class. 4.80 1. added optional se argument to anova.rqlist so one can specify "ker" standard errors. 4.81 1. modified crq to allow left censoring for both Portnoy and Peng-Huang methods. 2. added tsp to the object returned by crq.fit.por to facilitate conputing the weights used by the Portnoy method. Eventually, there should be some further documentation of this. 4.83 1. modified rq1.f to fix a dimension problem for the workspace, and added a new argument to control the maximum number of simplex iterations. This was needed to fix problems encountering severe degeneracy, which induced the possibility of an (essentially?) infinite loop. A fixed 100000 limit is currently implemented, with a warning when exceeded that users might want to consider dithering the response variable. 2. added a few lines in summary.crq and print.summary.crq to provide the number of NA replications in the bootstrap simulation for each of the requested taus. 3. Modified the documentation files to mention the above changes and also to mention that the grid for the Portnoy method is equally spaced. 4.84 1. Removed wayward files in ratfor directory 2. replaced call to dqrls in rq.fit.br by call to R qr function. 4.85 1. Changed example for uis data in crq.Rd to Peng from Portnoy. 4.86 1. Changed crq.f so that it stopped the tau iteration whenever IFT = 9 "simplex iteration limit exceeded" occurs. 4.90 1. Reverted to earlier code for rq1.f and crq.f pending resolution of strange disparity between results for R CMD check for osx and windoz. in versions 4.85-8 demo(KMvCRQ) produced errors on windows that were irreproducible on osx. 4.91 1. Tried to clarify documentation for summary.rqs concerning changes in the level of the confidence intervals when the rank method is being used. 2. Increased the default number of iterations in rq.fit.fnc. 4.91 1. Added a drop = FALSE in nas definition of summary.crq to preserve the matrix structure there. 4.93 1. Fixed several bugs in the crq code for left censored data. Thanks to Brian Cade as always for bringing this to my attention. 4.94 1. Moved UIS crq example from man directory to demos to save check time as advised by Uwe Ligges. 4.95 1. Bug in summary.crq when ctype == "left" and some specified taus weren't estimable -- upper quantiles from bootstrap were deleted, but it was the lower ones that should have been. 2. BIG in crq.f was changed from 1.d37 to 1.d17 which "fixes" a segfault condition in an example of Brian Cade's, but I have no frigging idea why. 4.96 For left censoring the idea of reversing the order of the taus in the solution array turned out to cause all sorts of havoc in my interpolation scheme for coef.crq.... so I've reverted to the usual ordering. 4.97 1. Yet another modification of coef.crq. This time I've decided to eliminate the midpoint interpolation scheme that was originally motivated by the pivoting method for the Portnoy crq estimator, and go back to conventional linear interpolation. This is more consistent with the default grid methods that are now being used and was endorsed at coffee by Steve. This change was again stimulated by Brian Cade's careful checking of anomalies in crq output. 2. Added drop = FALSE for the coef object returned from crq.fit.[por,pen], to hangle the case in which there is only one column of the solution, which hopefully is a very rare occurrence. 3. Changed Curv to return a type object, to fix a bug introduced into the Powell methods when I added ctype for left censoring for Portnoy and PengHuang. Thanks to Mike Smithson for reporting this. 4.98 1. Fixed a plethora of places that the new dimension checking for fortran arrays identified issues. 5.00 1. Fixed several places with excessive line lengths in the .Rd files. 2. Purged the econometrica.bst bib style, as requested by Brian R. 5.04 1. Fixed logLik.nlrq bug as noted by Erin Graham. 2. Changed the default bootstrap method for crq objects to the delete-d jackknife method proposed recently by Portnoy. This seems to work better especially when, as is ofter the case the process is "defective." 3. Fixed predict.crq so it would return fitted values when newdata was omitted, bug report by Carles Forné Izquierdo. 5.05 1. BDR suggested a fix to dynrq to avoid a ":::" usage. This led to some adventures in environments that eventually led to inclusion of a model component in the first element of dynrqs objects so that plotting of summary.dynrqs objects could find the appropriate design matrix. 2. And in addition the Description file was augmented with a greatly expanded authors component -- which should have been done years ago but was greatly facilitated by the (relatively) new person() function.