quantreg/0000755000176200001440000000000013235153017012100 5ustar liggesusersquantreg/inst/0000755000176200001440000000000013225711624013060 5ustar liggesusersquantreg/inst/TODO0000644000176200001440000000065712761363677013577 0ustar liggesusers# To Do List 1. Return full covariance matrix for multiple quantile cases, and perhaps expand anova.rq to do more general testing. (Portnoy: January, 2012) 2. Add option for mfrow and mfcol in plot.rqss (Ng: January, 2012) 3. Add error for models with lasso when there aren't coefs to penalize, see example in tests/tong/test2.R. 4. Allow predict.rqs to do confidence bands see tests/fischer/test.R August 30 2016. quantreg/inst/chlog0000644000176200001440000014150713101113072014071 0ustar liggesusersRecent Revision History (For older revision history diff the code ;-)) 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. 5.07 1. Bug fix in predict.rq: when mofn < n and percentile method the interval needed to be recentered and rescaled, not enough to just rescale B matrix. 5.08 1. Incorporated my qrisk package for portfolio selection into quantreg. This includes the function rq.fit.hogg() that does what Zou and Yuan call composite quantile regression, or more accurately a generalized version of this. 5.13 1. Fixed several namespace problems identified by BR. 2. Fixed bug in qrisk code to convert data.frame X to matrix. 5.16 1. Fixed bug in rq.fit.lasso whose .Fortran call had an extra argument. 2. Fixed bug in rq.fit.pfn to correct behavior when m > n. Pointed out by Ivan Diaz (Google). Cause of this was rather pathological but ((p-1)*n)^/2/3 > n can happen when p is large as it tends to be these days. 5.17 1. Added anova.rqs at the suggestion of Jon Peck (IBM). This just takes rq() output from a multiple tau command and converts it to something that anova.rqlist can understand. Peck is writing something on the SPSS <-> R interface, so I was curious to see what is going on with that. The answer seems to be not too much, but there is a very annoying article here: http://www.ibm.com/developerworks/library/ba-call-r-spss/ -- ugly hacks indeed! It does make me wonder why I've spent part of my weekend making this extension just to accommodate a commercial implementation by IBM that enables SPSS to call quantreg. 2. Fixed a bug in rq.test.rank which produced the wrong p-value for the chi-squared version of the test. 3. Added various importFrom directives in NAMESPACE in accordance with Kurt's July 2015 suggestions. 4. Removed calls to crq.fit.por2 provisionally while we resolve some problems with the code for this new procedure. 5.18 1. Added a couple of further importFrom directives in NAMESPACE at Kurt's suggestion. 2. Added some further cautionary verbiage about the dangers of using rank inversion for large problems at the suggestion of Jon Peck (IBM). 5.19 1. Changed the printing of the number of NAs in the crq bootstrap functions so that it also reported "out of" number of bootstrap replications. 2. Changed the coef matrix for the Powell crq method so that it conformed to the other methods to facilitate plotting as requested by Vladimir Pazitka. 3. Changed the eps in summary.rq from .Machine$double.eps^(2/3) to .Machine$double.eps^(1/2). This will reduce (somewhat) the likelihood of getting one or two influential f_i's that dominate a covariance matrix estimate. 4. Introduced the Portnoy2 method for crq, which still should be considered experimental. It is a pure R rewriting of the original algorithm that iterates on a fixed grid. 5.20 1. Added FAW to the rq.Rd see also list at the suggestion of Terry Therneau. 5.21 1. Allowed ... to be passed in plot.summary.crqs. 2. Fixed namespace bug in dynrq, and added an Edgeworth wacky AR(1) example to dynrq.Rd. 3. Fixed rqss bug about length of residual vector 5.23 1. Added a "cluster" option for summary.rq() when using the bootstrap option this option implements the wild gradient bootstrap method of Hagemann (2016). See boot.rq for further details. [Needs further testing.] 2. Added a sfn method for rq models, and in the process modified somewhat the return object for both rq.fit.sfn and rq.fit.sfnc so that it is compatible with other rq.fit objects. 5.24 1. Reverted to the old fortran versions of srqfn.f and srqfnc.f, ie removed Martin Maechler's C versions, in preparation for some new sparse forms of the bootstrapping functions. Made a couple of slight changes in the return object for these functions. 2. Fixed a sign error in the cluster option pointed out in an email of Andreas on May 9 2016. 3. Added jackknife option to boot.rq for the proposal of Portnoy. 4. Adapted boot.rq and friends so that when there are multiple taus summary.rqs reuses the same randomization for each of the taus to facilitate joint inference with the bootstrap realizations. 5.25 1. When method = "sfn" store model$x in sparse form. Then when bootstrapping use method = "sfn" rather than the usual "br" method. 2. When using the "cluster" option for bootstrap allow "sfn" as above. 3. When na.action = "omit" and length(fit$na.action) > 0, then omit these values from the strata indicator "cluster". This would seem to help bring together the survey package and quantreg as desired by email correspondance with donald706. 5.26 1. Fixed long line per Kurt's suggestion. 2. Added some comments about method "sfn" in the man page for rq. 5.27 1. removed lines that cat'd taus from rqprocess in the khmal.R 2. fixed environment problem in nlrq, according to suggestion of Vaidotas Zemlys-Balevicius email August 9 2016. 5.28 1. Cleaned up the fortran source a bit in accordance with Kurt's mandate of late August 2016. There are still some offensive items mainly in crq.f that should be dealt with, but I wasn't able to dig into this at the moment. 5.29 1. I'd botched the fixup of rq0.f which was only revealed by a test from the package Qtools as discovered by CRAN checking and reported by Duncan Murdoch. 5.30 1. Removed Y argument in crq GRAD subroutine, which seems to be superflous. 5.31 1. Added bag of little bootstraps option to summary.rq. Needs further testing. 5.32 1. Modified the BLB code to use boot.rq.wxy so that the inner loop was all in fortran, would be nicer if this loop were done with "fn" rather than "br". See the note in boot.rq above boot.rq.spwy. 2. modified the crq.pdf file to fix a mento in the description of the Peng Huang algorithm. 5.33 1. Added option to return density estimates from predict.rqs 2. modified rq.fit.fnb to include a rhs input argument. 3. modified boot.crq to properly deal with only one tau requests and also changed the default for printing progress report to n - 100,000. Both suggested by Steve Portnoy. 4. modified boot.rq so it returns cov(B$B) not cov(B) as reported by Marco Geraci 5. Fixed bug in anova.rqlist to correct error when "fn" method was used and no $y component was returned. Reported by Tom LaBone. 6. Fixed bug in summary.rqss -- control parameters weren't getting passed to chol call properly. (Reparted by Geoffrey Shideler (NOAA).) quantreg/inst/ChangeLog0000644000176200001440000014337313141423757014651 0ustar liggesusersRecent Revision History (For older revision history diff the code ;-)) 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. 5.07 1. Bug fix in predict.rq: when mofn < n and percentile method the interval needed to be recentered and rescaled, not enough to just rescale B matrix. 5.08 1. Incorporated my qrisk package for portfolio selection into quantreg. This includes the function rq.fit.hogg() that does what Zou and Yuan call composite quantile regression, or more accurately a generalized version of this. 5.13 1. Fixed several namespace problems identified by BR. 2. Fixed bug in qrisk code to convert data.frame X to matrix. 5.16 1. Fixed bug in rq.fit.lasso whose .Fortran call had an extra argument. 2. Fixed bug in rq.fit.pfn to correct behavior when m > n. Pointed out by Ivan Diaz (Google). Cause of this was rather pathological but ((p-1)*n)^/2/3 > n can happen when p is large as it tends to be these days. 5.17 1. Added anova.rqs at the suggestion of Jon Peck (IBM). This just takes rq() output from a multiple tau command and converts it to something that anova.rqlist can understand. Peck is writing something on the SPSS <-> R interface, so I was curious to see what is going on with that. The answer seems to be not too much, but there is a very annoying article here: http://www.ibm.com/developerworks/library/ba-call-r-spss/ -- ugly hacks indeed! It does make me wonder why I've spent part of my weekend making this extension just to accommodate a commercial implementation by IBM that enables SPSS to call quantreg. 2. Fixed a bug in rq.test.rank which produced the wrong p-value for the chi-squared version of the test. 3. Added various importFrom directives in NAMESPACE in accordance with Kurt's July 2015 suggestions. 4. Removed calls to crq.fit.por2 provisionally while we resolve some problems with the code for this new procedure. 5.18 1. Added a couple of further importFrom directives in NAMESPACE at Kurt's suggestion. 2. Added some further cautionary verbiage about the dangers of using rank inversion for large problems at the suggestion of Jon Peck (IBM). 5.19 1. Changed the printing of the number of NAs in the crq bootstrap functions so that it also reported "out of" number of bootstrap replications. 2. Changed the coef matrix for the Powell crq method so that it conformed to the other methods to facilitate plotting as requested by Vladimir Pazitka. 3. Changed the eps in summary.rq from .Machine$double.eps^(2/3) to .Machine$double.eps^(1/2). This will reduce (somewhat) the likelihood of getting one or two influential f_i's that dominate a covariance matrix estimate. 4. Introduced the Portnoy2 method for crq, which still should be considered experimental. It is a pure R rewriting of the original algorithm that iterates on a fixed grid. 5.20 1. Added FAW to the rq.Rd see also list at the suggestion of Terry Therneau. 5.21 1. Allowed ... to be passed in plot.summary.crqs. 2. Fixed namespace bug in dynrq, and added an Edgeworth wacky AR(1) example to dynrq.Rd. 3. Fixed rqss bug about length of residual vector 5.23 1. Added a "cluster" option for summary.rq() when using the bootstrap option this option implements the wild gradient bootstrap method of Hagemann (2016). See boot.rq for further details. [Needs further testing.] 2. Added a sfn method for rq models, and in the process modified somewhat the return object for both rq.fit.sfn and rq.fit.sfnc so that it is compatible with other rq.fit objects. 5.24 1. Reverted to the old fortran versions of srqfn.f and srqfnc.f, ie removed Martin Maechler's C versions, in preparation for some new sparse forms of the bootstrapping functions. Made a couple of slight changes in the return object for these functions. 2. Fixed a sign error in the cluster option pointed out in an email of Andreas on May 9 2016. 3. Added jackknife option to boot.rq for the proposal of Portnoy. 4. Adapted boot.rq and friends so that when there are multiple taus summary.rqs reuses the same randomization for each of the taus to facilitate joint inference with the bootstrap realizations. 5.25 1. When method = "sfn" store model$x in sparse form. Then when bootstrapping use method = "sfn" rather than the usual "br" method. 2. When using the "cluster" option for bootstrap allow "sfn" as above. 3. When na.action = "omit" and length(fit$na.action) > 0, then omit these values from the strata indicator "cluster". This would seem to help bring together the survey package and quantreg as desired by email correspondance with donald706. 5.26 1. Fixed long line per Kurt's suggestion. 2. Added some comments about method "sfn" in the man page for rq. 5.27 1. removed lines that cat'd taus from rqprocess in the khmal.R 2. fixed environment problem in nlrq, according to suggestion of Vaidotas Zemlys-Balevicius email August 9 2016. 5.28 1. Cleaned up the fortran source a bit in accordance with Kurt's mandate of late August 2016. There are still some offensive items mainly in crq.f that should be dealt with, but I wasn't able to dig into this at the moment. 5.29 1. I'd botched the fixup of rq0.f which was only revealed by a test from the package Qtools as discovered by CRAN checking and reported by Duncan Murdoch. 5.30 1. Removed Y argument in crq GRAD subroutine, which seems to be superflous. 5.31 1. Added bag of little bootstraps option to summary.rq. Needs further testing. 5.32 1. Modified the BLB code to use boot.rq.wxy so that the inner loop was all in fortran, would be nicer if this loop were done with "fn" rather than "br". See the note in boot.rq above boot.rq.spwy. 2. modified the crq.pdf file to fix a mento in the description of the Peng Huang algorithm. 5.33 1. Added option to return density estimates from predict.rqs 2. modified rq.fit.fnb to include a rhs input argument. 3. modified boot.crq to properly deal with only one tau requests and also changed the default for printing progress report to n - 100,000. Both suggested by Steve Portnoy. 4. modified boot.rq so it returns cov(B$B) not cov(B) as reported by Marco Geraci 5. Fixed bug in anova.rqlist to correct error when "fn" method was used and no $y component was returned. Reported by Tom LaBone. 6. Fixed bug in summary.rqss -- control parameters weren't getting passed to chol call properly. (Reparted by Geoffrey Shideler (NOAA).) 7. Added init.c to register .Fortran calls and removed the package = "quantreg" argument. 5.34 1. Fix a bug in rqss to allow control parameters to be passed to rqss.fit when the method is "lasso" (pointed out by Heracles Apergis.) 2. changed nrow(R) to NROW(R) in rq.fit.hogg thanks to Paul Newell for bug report. 3. fixed axis label typo in demo engel2. 4. Added Panel.R demo to illustrate fixed effect panel estimation, a la Galvao job market talk. 5. Some changes to crq.fit.por as suggested by SLP: line 1: add an input variable mw (the error messages suggest changing mw if there are problems with resolving degeneracies or trying to pivot too far, and so it should be possible to do this without getting into the deep part of the code) lines 3 and 5: test that x is a matrix and add column names if they are missing line 39: define mw so that the fortran constraint is satisfied quantreg/inst/FAQ0000644000176200001440000002041413166210524013410 0ustar liggesusers The Quantreg FAQ 1. [Non-uniqueness of Solutions] "The estimation of regression quantiles is a linear programming problem. And the optimal solution may not be unique. However, rq() provides a single solution. My question is what are the additional constraints to get the single solution? Because when we do the research, we can write our own routine in different software like in SAS to estimate quantile regression, does that mean people will get different solutions?" From ?rq.fit.fn: eps: tolerance parameter for convergence. In cases of multiple optimal solutions there may be some discrepancy between solutions produced by method '"fn"' and method '"br"'. This is due to the fact that '"fn"' tends to converge to a point near the centroid of the solution set, while '"br"' stops at a vertex of the set. There is already facility for doing QR in SAS and it is based _very_closely_ on my R package and uses essentially the same algorithms. 2. [Non-uniqueness redux] "And all these solutions is [sic] correct? Or do we need additional constraints to get the same solutions as derived in R?" Yes, they are all correct. Just as any number between the two central order statistics is "a median" when the sample size is even and the order statistics are distinct. The main point here is that the differences between solutions are of order 1/n and the inherent uncertainty about the estimates is of order 1/sqrt(n) so the former variability is essentially irrelevant. 3. [Basic Obervations] "How can we identify the cases (data pairs) that belong to different quantiles in a scatterplot? It seems that they must be identified by the code in the process of analyzing the quantile means, but I've been unable to figure out how to find and extract them." For a given fit: f <- rq(y ~ x +z, tau = .4) h <- which(abs(f$resid) < tol) will recover the indices of the observations that have zero residuals. Of course you need to specify tol which I would recommend to be something like: tol <- .Machine$double.eps^(2/3) If f has p fitted parameters then h should have p elements. If this isn't the case then you might need to experiment with tol a bit. 4. [R^2] "I am currently trying to caculate the coefficient of determination for different quantile regression models. For example, how do you calculate the the sum of the weighted absolute deviations in the models ..." R-squared is evil, that is why there isn't an automated way to compute something similar for quantile regression in the quantreg package. But if you insist use: R1 <- 1 - f1$rho/f0$rho Provided that f0 is nested within f1 and the taus are the same, 0 <= R1 <= 1. If you want to test f1 vs f0 then use anova(f1,f0) For further details see: Koenker R. and Jose A.F. Machado. Goodness of Fit and Related Inference Processes for Quantile Regression J. of Am Stat. Assoc, (1999), 94, 1296-1310. 4a. [R^2 redux] "I am very interested in the coefficient of determination for different quantile regression models. And, I have f1, but don't know what is f0, so that I failed to run R1 in your FAQ 4. Could you please help me solve my question?" f0 could be any nested fit, but usually it would be rq(y ~ 1, ...) a model with only an intercept that returned unconditional quantile estimates. 5. [Singular Designs] "R crashes in some cases when fitting models with rq()." This happened in some earlier versions of the package when the design matrix was singular. This is now checked more carefully, and shouldn't happen in versions 4.17 or later. Eventually, I may try to treat singular designs in a way that is more compatible with lm(). 6. [Confidence Intervals] "Why does summary(rq(...)) sometimes produce a table with upper and lower confidence limits, and sometimes a table with standard errors?" There are several methods for computing standard errors and confidence limits. By default on small problems (n < 1001) summary uses the rank inversion method, which produces (potentially asymmetric) confidence intervals,while for larger problems the default is to estimate the asymptotic covariance matrix and report standard errors of the parameter estimates. 7. [Non-positive fis] "What does the message "Non-positive fis" mean? When method ="nid" is used in summary local density estimates are made at each x_i value, in some cases these estimates can be negative and if so they are set to zero. This is generally harmless, leading to a somewhat conservative (larger) estimate of the standard errors, however if the reported number of non-positive fis is large relative to the sample size then it is an indication of misspecification of the model. 8. [rq vs lm fits] In the Engel example in ?rq both rq fits and the least squares fit are plotted -- what should we expect to see in such a comparison? In the classical linear regression model with iid error we could integrate betahat(tau) over [0,1] and should get something quite similar to the least squares estimate. In the one-sample model this is exact: averaging the order statistics is equivalent to averaging the unordered original observations. In non-iid error situations this is more complicated but generally one sees that least squares coefs look roughly like some sort of average of their corresponding rq coefficients when averaged over tau. 10. [AIC and pseudo likelihoods] In quantreg of R package, rq.object can compute AIC (Akaile's An Information Criterion).but, AIC=-2L/n+2k/n ,where L is log-likelihood, k represents the number of parameters in the model ,n is the number of observation. We know likelihood base on distribution,but quantile regression can not assume specific distribution,this is AIC maybe not compute accurately, or AIC maybe can not calculate.Why do rq.object can compute AIC? This is discussed many places in the literature. Yes, it is not a "real" likelihood, only a pseudo likelihood, but then the Gaussian likelihood is usually not a real likelihood either most of the time.... 11. I would like to know why the equivariance property is so important in the quantile regression model. I have read a lot of article about it; but I don't really get the idea. As a basic philosophical matter it really isn't that important, the nearest star is very far away and we will all die, but in math the idea that functions commute: in the QR case that Q_h(Y) = h(Q_Y) is interesting, and it doesn't hold if you replace Q by E. 12. My recent paper used quantile regression model which is interesting for plant physiologists, the reviewers questioned that my independent (x) and dependent (y) variable should be exchanged as OLS showed. In my research, x=stomatal conductance, y=stomatal density, however, the reviewer suggested to plot as x= stomatal density, y=stomatal conductance. But, the meanings of x and y in quantile regression model should be different with OLS, what are the differences? Could you kindly give me some indications? From a predictive point of view, the question is straightforward: both QR and LS answer the question how would you predict y given information on x, QR by delivering an entire conditional distribution function, LS by producing a mean of that distribution at each x. More difficult is the usual causal question: if we imagine an intervention that changes x and ask: what is the consequence for the distribution of y? If this formulation doesn’t make sense for a particular choice of x,y then one might consider reversing them. 13. "My student has discovered a couple of corner cases that hang inside the Fortran code when trying to find bootstrap CIs on quantile regression fits." This seems to be invariably due to repeated values of the response variable that create degeneracy of the solution to the LP problem. In the dual simplex algorithm (method = "br") this can lead to cycling. There are two work arounds: 1. Use method equal "fn" in rq() since the interior point algorithm isn't bothered by such difficulties (since it only approaches vertices from the inside of the constraint set). 2. Use dither() to perturb the y observations slightly. quantreg/inst/doc/0000755000176200001440000000000013027552050013621 5ustar liggesusersquantreg/inst/doc/rq-mcycle1.pdf0000644000176200001440000001455412504576632016315 0ustar liggesusers%PDF-1.4 %âăĎÓ\r 1 0 obj << /CreationDate (D:20150325132530) /ModDate (D:20150325132530) /Title (R Graphics Output) /Producer (R 3.1.3) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 7 0 obj << /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >> endobj 8 0 obj << /Length 2453 /Filter /FlateDecode >> stream xśµšMŹ·†ďó+ú(Ô&‹ß_l$$€˛ ä`ř`Č ,aW†´ň÷óľErš»Đn05öÁk—{ŞIë©*Űoo7ż}ÚľśŢm_¶vqăo¨~ĎřW‰{tŰ×Űż¶Ď§ďţů·¶oNnwÎmëß›˙˙[ŇößÓO?onűőä··řçÓÉóŰßO?Üžľű«Çp·˙柯[ŮcĹ/]˙Ź÷P6)y/q»˝ß^Ý˝Ţn?áéí×Ó_n˙ŻvÚs‚vÜS5h·=6hË.ůrí,»Kć™ç¸go»Ô˝8ł6öjfmŮS4ŰĽÖ˝EóŘÍďÉľî–ö`źůÔ¶ŤíťŰŁÝčŢ…ÝÉęŔ †Ëe/†Ą{—÷zÍäšŘG÷~oŐLš—pŤÓxÉ»»bíRşŰ'DÝa2[L7Ô­–˙ÔýükwĚLfő€#őŔ3ď{(Ś2öŃ»:|)ĘŞîmťÉtCéµXÔ«† –&Óuőčwg=şÝÇkŐ}÷Ô˝Ć:—LIfŞĂwŤ.Z×®ęöµwu$Ř`qZ” ­ŮŁMWçż‚I=íR0y8źiíyOió Ľ_ˇ. .ŘŐc!9—«'OĐĹG–vVu"OVuÚd×ö^c ´IöËyŮÉr]ĺY˛l;Ü 6„Ë®wm3®ČËÍ›ížĂî›}Ó‡zBei© p~šs2^Y‘WŢöÔxŠň–8čX<Ď˝¦=+IśŐŰݰä–÷fń·ŇöĚf«(*ěFG)SÚŻI–ÔDW­śµ@PĽŻ´˝YťIŮb°[ps-×Úî‚:­©ęěFçąaV̇ş ĽZŠpqÂdn­¦XÄĹ`.H§fNĽfh[K9A„` ŔÜ-¨ ÎÜ5šĎ^âÝE·Ď_ˇ2›‘fućE‹ĺ}âa[j`kŇ ŽôŔŃ1yC1%âöj/á‡zÚg3¨Ëîęž’Ĺm¤Đ_„u¨eň5&źmŔáŘăéu–µĂf…‡,a™<@&€¸jqÚˇŽH™-N±áŮľq¨cé6 ´˧Äň9ŕ-&dRS·áŮ˲v˛%Ű÷µ$ĽÎëşşµY"¨ayă‚`e)'%#łX”áŃ’!‡ş4¶X/W/N‘1‡z şˇ&”ŠĽžě>ßŐĄEJőĆÔ*Üw‹Ó6TTŢ|!-éő“5M´˘÷OĆľr@e$ nXg(*‡ş$[AĽŰŁÇ艍}ş°GcmÉOuóäŁ:-•ĹtČďW\y ÝëŚkdž;;2 šűnUŹQ/‚ŚĺüTg’2D›<‹fd2ÜĆŮ-_Ľ6Ĺ­¦ĂŃť·¶Öµ7Í%ŘT·NčlżüŚl–¸çG·}ąîŹpÇę_PÜëN;âÝvóôůQäşńśgóv<ďâń\Üť;?âňĽŐÝůăyŹçŹ&tžßńśöÓőżřĆúކyeWöń ˙é2ޏö/KďhŕóÖĽ¨ËF ˧ł˛\ ĚóF‹r¸D^â˘/P¬xÓ˘śÎĘÝ·PTd÷óĂ]ŠšűÉóľC\žłíăŽç]<ž ĆŇçó!ĎÇ€óů2ţş¸eEo–…"ł6á¶¶,Ţx÷MŰĽ¨îkŢĄ§¸7éruFĘŃđş\™Ű3…O7f`pŠyäžEěhVą˙ř‰8~|ŁAăjnŘÁ¦ KpNőţăÝÝLJď˙üëĂKöž ě˝ç{~zőËű÷î>|}ŤXł˝úĺ?˙üúçíöívň_I™”˘íŢűSŽý{ˇÄvČÝ©čYŤőKMkŻĹ†—ńőřC;D~D“Ý*¶٧ţ•Ě”NÔ“’Są±A %0!@f)éÉĎ©Ě3xÖ¶!Š+ČI«kŹç^߇šő‹ÇJ…kńY+P6 Ďŕż/}~<FÔ©xmÓßĂhG|_:‚uŐ‚ń#;ë”+ ęhPXëQŤď4*?Ar¬ )7íoâȸv ^/%f;q!ĽĆ?ËÁsˇ‰˘rÝSV7Ó˝ 1íĄô-Çg/B«=í%AĆŔž·Ë•UĺÂy *—ţEFş䢊v6šľŻj#śď×í Č_‹N¸`—ŁĘpŢ©Î÷Ýś©Ůú©Rççŕ%¸…—ü—ÜÝŕĎáűďrđ’‡M^`Ş$ /05¶~á%“…—Ę­=x iĽŻóÂi¤vĂiv&:1ě»ÎRÚ‚LĐE?BF‡źČŔ“ş Č9ˇ§*ľ"Ľ_ńźČpąaE&ý‰ŚăQîEdš ™Čzí@¦ęµĂ <ŁÄ™Ú׳ _BˇWę‚ ęK˙ŚLč!ŕ9dŕ‚YVdüo ůčöNdÎHdxg™Vd´kp2 ţÉ}SS´?4»ümͧ`ľ~‘×wtůé …˘ťfŹNz*}őŰ÷ţ‚ţĘPnjˇ.—«Ç2ŐĂĺęîüĺúoßÇ©ţîô?¨8ô†endstream endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 /MediaBox [0 0 432 432] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font << /F1 10 0 R /F2 11 0 R >> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xśť–wTSهϽ7˝P’Š”ĐkhRH ˝H‘.*1 JŔ"6DTpDQ‘¦2(ŕ€ŁC‘±"Š…Q±ëDÔqp–Id­߼yďÍ›ß÷~kź˝ĎÝgď}ÖşüÂLX € ˇXáçĹŤ‹g` đlŕpłłBřF™|ŘŚl™ř˝ş ůű*Ó?ŚÁ˙ź”ąY"1PŚçňřŮ\É8=Wś%·Oɶ4MÎ0JÎ"Y‚2V“sň,[|ö™e9ó2„<ËsÎâeđäÜ'ăŤ9ľŚ‘`çřą2ľ&ctI†@Ćoä±|N6(’Ü.ćsSdl-c’(2‚-ăyŕHÉ_đŇ/XĚĎËĹÎĚZ.$§&\S†Ť“‹áĎĎMç‹ĹĚ07Ť#â1Ř™YárfĎüYym˛";Ř8980m-mľ(Ô]ü›’÷v–^„îDřĂöW~™ °¦eµŮú‡mi]ëP»ý‡Í`/Оľu}qş|^RÄâ,g+«ÜÜ\Kźk)/čďúźC_|ĎRľÝďĺaxó“8’t1C^7nfz¦DÄČÎâpů 柇řţuü$ľ/”ED˦L L–µ[Č™B†@řźšřĂţ¤Ůą–‰ÚřĐ–XĄ!@~(* {d+Đď} ĆGů͋љťűĎ‚ţ}W¸LţČ$ŽcGD2¸QÎěšüZ4 E@ę@čŔ¶Ŕ¸ŕA(q`1ŕ‚D €µ ”‚­`'¨u 46ptcŕ48.Ë`ÜR0ž€)đ Ě@„…ČR‡t CȲ…XäCP”%CBH@ë R¨ކęˇfč[č(tş C· Qhúz#0 ¦ÁZ°lł`O8Ž„ÁÉđ28.‚·Ŕ•p|î„OĂ—ŕX ?§€:˘‹0ÂFB‘x$ !«¤i@Ú¤ąŠH‘§Č[EE1PL” Ę…⢖ˇVˇ6ŁŞQPť¨>ÔUÔ(j őMFk˘ÍŃÎčt,:ť‹.FW ›Đčłčô8úˇcŚ1ŽL&łłłÓŽ9…ĆŚa¦±X¬:ÖëŠ Ĺr°bl1¶ {{{;Ž}#âtp¶8_\ˇ8áú"ăEy‹.,ÖXśľřřĹ%ś%Gщ1‰-‰ď9ˇśÎôŇ€ĄµK§¸lî.îžoo’ďĘ/çO$ą&•'=JvMŢž<™âžR‘ňTŔT ž§ú§ÖĄľN MŰźö)=&˝=—‘qTH¦ ű2µ3ó2‡łĚłŠł¤Ëś—í\6% 5eCŮ‹˛»Ĺ4ŮĎÔ€ÄD˛^2šă–S“ó&7:÷Hžrž0o`ąŮňMË'ň}óż^ZÁ]Ń[ [°¶`tĄçĘúUĐŞĄ«zWëŻ.Z=ľĆo͵„µik(´.,/|ą.f]O‘VŃš˘±ő~ë[‹ŠEĹ76¸l¨ŰÚ(Ř8¸iMKx%K­K+Jßoćnľř•ÍW•_}Ú’´e°ĚˇlĎVĚVáÖëŰÜ·(W.Ď/۲˝scGÉŽ—;—ěĽPaWQ·‹°K˛KZ\Ů]ePµµę}uJőHŤWM{­fí¦Ú×»y»ŻěńŘÓV§UWZ÷nŻ`ďÍzżúÎنŠ}}9ű6F7öÍúşąIŁ©´éĂ~á~é}ÍŽÍÍ-š-e­p«¤uň`ÂÁËßxÓÝĆl«o§·—‡$‡›říőĂA‡{ʰ޴}gř]mµŁ¤ę\Ţ9Ő•Ň%íŽë>x´·ÇĄ§ă{Ëď÷Ó=Vs\ĺx٠‰˘źNćźś>•uęééäÓc˝Kz=s­/ĽođlĐŮóç|Ďťé÷ě?yŢőü± ÎŽ^d]ěşäp©sŔ~ ăű:;‡‡ş/;]îž7|âŠű•ÓW˝Żž»píŇČü‘áëQ×oŢH¸!˝É»ůčVú­ç·snĎÜYs}·äžŇ˝Šűš÷~4ý±]ę =>ę=:đ`Á;cܱ'?e˙ô~Ľč!ůaĹ„ÎDó#ŰGÇ&}'/?^řxüIÖ“™§Ĺ?+˙\űĚäŮwżxü20;5ţ\ôüÓŻ›_¨żŘ˙ŇîeďtŘôýWŻf^—ĽQsŕ-ëm˙»w3ąď±ď+?~čůôńî§ŚOź~÷„óűendstream endobj 9 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 9 0 R >> endobj xref 0 12 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000002817 00000 n 0000002900 00000 n 0000003024 00000 n 0000003057 00000 n 0000000212 00000 n 0000000292 00000 n 0000005752 00000 n 0000006009 00000 n 0000006093 00000 n trailer << /Size 12 /Info 1 0 R /Root 2 0 R >> startxref 6190 %%EOF quantreg/inst/doc/rq-cobar.pdf0000644000176200001440000002037612504576634016047 0ustar liggesusers%PDF-1.4 %âăĎÓ\r 1 0 obj << /CreationDate (D:20150325132532) /ModDate (D:20150325132532) /Title (R Graphics Output) /Producer (R 3.1.3) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 7 0 obj << /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >> endobj 8 0 obj << /Length 4507 /Filter /FlateDecode >> stream xśÍZ»Žm9Íű+vAoü~¤3¤‘@‚‰ ŚîA‚ ř}ÖŞ*ŰuNß›Ü3Smo»\ĎUeÇë‡+^?_˙~ű“ţ»JľS°ß<âÝđź^î®˙üăúËőŻ·ßüňçßw}˙ńîÂĺ?ľ˙#ţÚëőß·żţí ×ßßâőţýü9áúĂ[nX¸^­Ţł]őÎýjýŽůúňöń+¶ŠWĚýbm÷śW?˝aFÄ÷ăE ÝîPA·»']a”;vüĄß-q…ď\Ýdˇ+żH!ÝIwŔĆ ŁÍwnBٶ8" –ń}wBctś\t rţ9ÝîÁń@*Ý0ĘťŤăŢőLýÎáz\Ď'řr}Ľ}÷ŁIý§_ľ"ő_~‚R~— Ç˙y‰¸Ođ.ż*>H ĚĆRî„YŹëWř˙ë×׏?żýöGěźďąOôŘ2Í…Ş‚Äę¤1žA9† k]g~l™‚®*ătϤô”/RĚÂJᱥŚ?‘ZwçxĽgŃ/2ä ÖCĽkäyÜ{@]EľČ“Sm4ĎąLÉ>ČeR?Yp”+ץ=O®KqĐđWnK±ö}›f(%Rą/C€áĂ<̰ôUI7c¦Ű*čNŹŽŕG˝ËŚBÓL˝Qăg…‘i*ąŹ;ČŽ4„ěvÄ8Ž|8´ů-™A—âN4“;±íF9JXîqx# 1W¬çO@ô'„ʦ±DĽD˝ÄĺÄŘ!©L&MűYË´ťíš-Ä'?B“ ř…k|µ]Á[xȉŚ ‰ç¬QÚ2ČyéuX?&»&ŮŃ ç‰ó‚;t‡r =,7 ŕáĂ8Ó('Q©”nî‘bÄú5(6ô%ůşBZĺ‚ó lv=-öY2ZäĎ»ü¶ĄÇ1.¸ôĎ‚AŘ5/ŢÎL˛Ňŕpr8,Žh›˝ehV´!;ŹxFaÁá$4ZÁbF Łg/?´µ":Mćwü‡"°žx9á–ŐĹSĺ4椂Z:Äx.ËČ››Ż&Ä+FݵtÖ‡˙ŽäöG˛ÉŽ_šhu6ˇ>›|“šÄ­=Ş1‘Ż„X~Î>‰0¶Çv‚˛hĂB ‚×á!) Ç+hL÷dŃÁÎe)Mę>‚ ]?U¦A&QŃÜĘE-Ü)Ynű’DłËu Gwą†P\®„Ď·2,{ ˇ±bp7ńDŘWÄ~pŁ“Čg|Vfá2AčĘ…Ýxˇ’Ďz–ý1­Mˇ‘wúáź)’™ ohŤČŔеŢArYŃn‰DH(N‘XŃĚôĽ˛/Â<‹đNÉo8âGFç@Ű‹›m…¨ć<±Ü l®0ˇÂĽ F’!ôÜNŘăŕT Ö6|Ťáőd:PwQZß7¸P.ĎšaK˛>÷‡HrŢÝh-9mGWŽ;4¦›^řĹ2â2;/…¬đ`Eý°ĚÎň LJË3ŚŮĺ¸QZ™n°w\yŚôxÜ€ŚjČPłĎ°î.4PFęçfö­Şšá>1Á%¶$’ 5m &Äŕó*«^Ä(ĂiHÝŠô3GěI›Qă ź<˛Řăí¬/ăC×:Ď´Ě´ÎĎe˛“–ÉÓÉ©4°/Ď7M>/:EކM!5žźťB.ňv""ĹŹĐ4‚NĄúÉ«Sd¨QygZp Qô`&…`źě‡ÍÄČîUeb„ Éf(9’ÔôŐ"aÓÎWš–‡čy8Żťľ4-ĂÇŠ’]íÎfĚ6S"¸*Y©śŃ%¤#m{Î>G lś¨”wů:#Mś5+’ řâţIŽ€“"Ť#Őě !H* nî]řé‚mĚ–oXvŇ4˛Fpڱĺ.ş\OÓ_ů•Ě _Ě×»ü*=Äy!TŘŚň;żĚ¶05XPŁ«Ë>ŃoXWUacřŔ 6#ÉülTŢ9băy9•O†ÇVĄ+Ý ŠkQ UĐ@ÁRc¨¸Z jŇ0×:ę&_ˇ'hsmŇ!©Ůy¸“Şńoű±rŢ)ˇ‹%çŮ㎜—µ‡ś§)}™¸ŤĄăćWé°ůšÄř5zó«ôŘüŠüvF%ÍZ®mţÄ9v~,„.®Z6ţcIfS`ŘF$Ű^'A۵WWg¤ú0˝ýŞ?ĹaľÚĄčÝČě%ŞšÔ[1ńřŁ:3"U—ĺráŐŰ™5°âO>n00F 3R‚řÂ0ÓÂůšał»˝4(±âś˛Íń« ©}6¦™âÎĄqYÇ Ů-;(µ¸^†$Öpt±t“Şî‹‰âŃ›!e˘·Uţq}€¨!iË1łm;i— LĐ”ĄÝŘşĄ9CŻÄő¤ ˘˝şĐ++ňeK }Âw¦¦aEÖËöúб´+Uŕ¶Ő…>áÂR0Ą ť’ąÓh~˛}K{ĚÖYÓr`šÝľa›°µíKQĐö5¦Q|¸}ÓŇj*ĹľG¬AĄľ}ŰĐn"č”őh»ĂŤwg=Eż‚V”ŽÄ/gEżlÉů¨”~‡_(˛úóŘüT˙T Ęů-Qd:ňZčb¨k=VfKŢ,˘ÓĎB×ĐçX4+±Ťľ ł;'üŔFűXµZ>hܰ7cĄŚ'éY ĐŤĐMB‡U;}Hăa_+˝ËŻĐôo¸˘9Nř)7%QÄŢęϲÄߢÄöĽ!h|ľa™ůoV7RĹĆÖI™Üěă¸ŔŔôű˛ľŹŇş:ąQĺqrˇń—Şb ŇĂçFätrˇF3˛QłŃĂó5^V<«Ä;r}â“• m˙mŃâsYßńMÎĂÜhň2ĺJ‹W,¸S=ń‰ö¬'>Y×IŰCęˇě±ZłÄÔĂájĘ{‹P‰őg<ŠNŰ‘ŘWë®+'Fg—í-%€ŕzÁéq-[B‘y§ 2‚M… ŤdOĚ–[cěEłI;)$ňŽ8ťhd[E ú…ň ˛”\ĆĐë~Ś@\Y¨E$Ňb!Ś !¸ÂC#éîęí<‚¶,-0iwYŚqż]hD ‡…!r÷…»1đjŠ@!ń¤ńoůx/VH(Ää—ó+N®€ ×N\Ă&\@ąť˛iíע&™Ź–Öşµ"mVŻ0·é"ďSXě+-0_ĎĎa•}`mźMs. sż¶«ńëú=ÓÜĐő3!ŃI E°ÓI ˇ”“f´IrŇ’­#j‹Ş`§1â‡z îJ;Mî9HOb¨í„±«tgtL{0mŇté§érÓrśĆŚ2…€\Źas;;˘Á9 7ÎÎiĚhsdPÓ(ťp;\]FM'ŞF×őfۆýŹíDfôXV›TE®śŽS™ŃłŻNÚc%4ňI{ąWÓ_”FĎq:6á¦tůĄZ'ľlYîÚ&żź˘>g©†t‰÷×C‚ą´Š’ěŐ,Ţ äâ>ň'…b’‹.`ŁY*!Ł#/…\§ăˇ–RnťuEbKĹ>ńXc€‹ş ŁS·•á‘Q–‰Z›>®gýFH$’ ąN‚]‹uP$K‡ĺ H˛ŹqËŻÚ0"Í>jß™YŞÚíâRÂ;$›ůYŐ,—fć ĺ¸t2FÉż]X ‡TWćÍ+SżŢŹKłSĺ‘ćšĎŹş^’ĽW7żŇŮ.mH€.-Č‹JŮeî, ódz-›MRĆK ŻťqíżHdţ‹ÜŢąq YŘüi!‘4lí „ŘîBMľsŽňC1L9_–[b‡ŚéŕXző}@ŢYiËt#Ż”ž.ľňކ\„öČîŚŰúQBĘF‚I‘ÜFŽĆĎȢň—_ăv†•o˘˝śőŠ4ŕĎţ*?&9ŐGŤ2ó_«ĚßçS\Mµ©ľ‘r8ËI’óÓs‹ŚtÔ*\»D[ţÖĹá%®vm´Kű–;rvirvúł.MHšBJ ×…Ń® ZíJHt]™ôŇ•I’˛NWtń]]ŻöußlŇ#¦Ŕ‚!˝Đă!]ŠňăQ6żH Ű'শ€}&zČéŰčŽHB]9Čl%¸>ŽŇ§ŹŁôéăíú8Fď*}ú8Ňyu}śH ¸>ŽöiZŇZŽöm`čq´ŹwzÖ·A$˛źŢšź^‰ZĂtyVi¸ž^‹Z,iąYË1ÍÝî›D^!„ăA‘ň,ćaŇ'ÝMţŕ‘Ő÷ĄÔC™»[± Ó>çG„ĆFG^)=Ý#=g±8¨ŽµfŔt׳~ĺiđ©É=RSZřj¤)JbĐ &F˝x,Ř 0ÓÁ –ÂŃJ˘Ł M C7L5Ř Č0¬aScř»5ި+,š/Ý,µa-|79`ún…®Ç»•ˇă™űX«űÓÚâ§{›łzÜ‚…ĐđS÷…ŕ»7¶^]µ^"[tţ†µĆ_ß°9˙ćVaěŔZŐ8żÝUJ‘v`.`6cö†µCqţ°ÁîKv\ËđcëĐmGZť/†ŘNΡU𖢸jì„MÓÍÁěO‰ŚV“ü ěűu-´¬ĽŁÍ+pPĄŮ+^"^bëeŰ9Ł>mcG'Čý÷W^ýu¨§I=Ź_ˇ)ć OHĆg%Ń"ů.j®÷§YŻ«Ăs‹†ôTl }ÜE’¶äž[>l߆lŘĄů›“……ěÁĹÂJchuđńňd3ä1ľ†ţÄšňäGh4Ľľ’Ő#ź÷| CKŇ*ç#Ěčc±Ť÷á¶ŹĹj—'¶4y!ubŹůöśzyH?}l6+Ť˙QşűŘfVś]ěIqZěá‹ĂŕcˇĽ2r±Pşx.Ę#S “4'jlÁ.gőç‘ÇĐ˰ö\ŕ JłXe'†qv‘hŔwľx’¸zŞ<ŚŤúâq=ŻđŮ®‡ĽcŮŔˇYYW˝ íł’MČC^Eëk _Ëk‹ě\ßćĂdş† íÓĚĄL«Ú>´ÎŰÁá±Ő4ÄëT¬Ă‡3ďĂęb[1Jé®Á ?×v_‰+Z1×óŻ,ËŁwy«,?BStĎ!šQ–Ď+Ö$ń#Ő<ĄŰÁË˝ĺŹĐj6䟤,dôžĽ!nQÄôluuPs5`)ÁůF3}Čť17V+ë1ŢĐVd+٦iŐŁJUůÄé˙+ůńö§·˙®~ä$endstream endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 /MediaBox [0 0 432 432] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font <> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xśť–wTSهϽ7˝P’Š”ĐkhRH ˝H‘.*1 JŔ"6DTpDQ‘¦2(ŕ€ŁC‘±"Š…Q±ëDÔqp–Id­߼yďÍ›ß÷~kź˝ĎÝgď}ÖşüÂLX € ˇXáçĹŤ‹g` đlŕpłłBřF™|ŘŚl™ř˝ş ůű*Ó?ŚÁ˙ź”ąY"1PŚçňřŮ\É8=Wś%·Oɶ4MÎ0JÎ"Y‚2V“sň,[|ö™e9ó2„<ËsÎâeđäÜ'ăŤ9ľŚ‘`çřą2ľ&ctI†@Ćoä±|N6(’Ü.ćsSdl-c’(2‚-ăyŕHÉ_đŇ/XĚĎËĹÎĚZ.$§&\S†Ť“‹áĎĎMç‹ĹĚ07Ť#â1Ř™YárfĎüYym˛";Ř8980m-mľ(Ô]ü›’÷v–^„îDřĂöW~™ °¦eµŮú‡mi]ëP»ý‡Í`/Оľu}qş|^RÄâ,g+«ÜÜ\Kźk)/čďúźC_|ĎRľÝďĺaxó“8’t1C^7nfz¦DÄČÎâpů 柇řţuü$ľ/”ED˦L L–µ[Č™B†@řźšřĂţ¤Ůą–‰ÚřĐ–XĄ!@~(* {d+Đď} ĆGů͋љťűĎ‚ţ}W¸LţČ$ŽcGD2¸QÎěšüZ4 E@ę@čŔ¶Ŕ¸ŕA(q`1ŕ‚D €µ ”‚­`'¨u 46ptcŕ48.Ë`ÜR0ž€)đ Ě@„…ČR‡t CȲ…XäCP”%CBH@ë R¨ކęˇfč[č(tş C· Qhúz#0 ¦ÁZ°lł`O8Ž„ÁÉđ28.‚·Ŕ•p|î„OĂ—ŕX ?§€:˘‹0ÂFB‘x$ !«¤i@Ú¤ąŠH‘§Č[EE1PL” Ę…⢖ˇVˇ6ŁŞQPť¨>ÔUÔ(j őMFk˘ÍŃÎčt,:ť‹.FW ›Đčłčô8úˇcŚ1ŽL&łłłÓŽ9…ĆŚa¦±X¬:ÖëŠ Ĺr°bl1¶ {{{;Ž}#âtp¶8_\ˇ8áú"ăEy‹.,ÖXśľřřĹ%ś%Gщ1‰-‰ď9ˇśÎôŇ€ĄµK§¸lî.îžoo’ďĘ/çO$ą&•'=JvMŢž<™âžR‘ňTŔT ž§ú§ÖĄľN MŰźö)=&˝=—‘qTH¦ ű2µ3ó2‡łĚłŠł¤Ëś—í\6% 5eCŮ‹˛»Ĺ4ŮĎÔ€ÄD˛^2šă–S“ó&7:÷Hžrž0o`ąŮňMË'ň}óż^ZÁ]Ń[ [°¶`tĄçĘúUĐŞĄ«zWëŻ.Z=ľĆo͵„µik(´.,/|ą.f]O‘VŃš˘±ő~ë[‹ŠEĹ76¸l¨ŰÚ(Ř8¸iMKx%K­K+Jßoćnľř•ÍW•_}Ú’´e°ĚˇlĎVĚVáÖëŰÜ·(W.Ď/۲˝scGÉŽ—;—ěĽPaWQ·‹°K˛KZ\Ů]ePµµę}uJőHŤWM{­fí¦Ú×»y»ŻěńŘÓV§UWZ÷nŻ`ďÍzżúÎنŠ}}9ű6F7öÍúşąIŁ©´éĂ~á~é}ÍŽÍÍ-š-e­p«¤uň`ÂÁËßxÓÝĆl«o§·—‡$‡›říőĂA‡{ʰ޴}gř]mµŁ¤ę\Ţ9Ő•Ň%íŽë>x´·ÇĄ§ă{Ëď÷Ó=Vs\ĺx٠‰˘źNćźś>•uęééäÓc˝Kz=s­/ĽođlĐŮóç|Ďťé÷ě?yŢőü± ÎŽ^d]ěşäp©sŔ~ ăű:;‡‡ş/;]îž7|âŠű•ÓW˝Żž»píŇČü‘áëQ×oŢH¸!˝É»ůčVú­ç·snĎÜYs}·äžŇ˝Šűš÷~4ý±]ę =>ę=:đ`Á;cܱ'?e˙ô~Ľč!ůaĹ„ÎDó#ŰGÇ&}'/?^řxüIÖ“™§Ĺ?+˙\űĚäŮwżxü20;5ţ\ôüÓŻ›_¨żŘ˙ŇîeďtŘôýWŻf^—ĽQsŕ-ëm˙»w3ąď±ď+?~čůôńî§ŚOź~÷„óűendstream endobj 9 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 9 0 R >> endobj xref 0 11 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000004871 00000 n 0000004954 00000 n 0000005066 00000 n 0000005099 00000 n 0000000212 00000 n 0000000292 00000 n 0000007794 00000 n 0000008051 00000 n trailer << /Size 11 /Info 1 0 R /Root 2 0 R >> startxref 8148 %%EOF quantreg/inst/doc/rq-Frankplot.pdf0000644000176200001440000003012212504576632016705 0ustar liggesusers%PDF-1.4 %âăĎÓ\r 1 0 obj << /CreationDate (D:20150325132527) /ModDate (D:20150325132527) /Title (R Graphics Output) /Producer (R 3.1.3) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 7 0 obj << /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >> endobj 8 0 obj << /Length 8314 /Filter /FlateDecode >> stream xśĄťMĎ%ÉQ…÷ý+îľ®üÎÜÚ$K ™‰be`1[˛˝ţ=qÎÉŞ÷u{Nîžčşy«*?"ă‰8yť^żyĄ×Ż?~ůí돯ZŢůâźe¦wż^ą\ďz˝ţôŻyýáË/˙üĎ˙đ«×Żżűr˝ŻëzáĎ~÷ë˛íő__ţőß^×ëßż¤×oě?|Iţ±×?~ůŐ÷_~ů÷Én÷ýú˛†sŘ'/üGëď¶^­ľK}˙ű×ßüř·Żď°‹ß˙éËß}˙5NW{'˙Ëš×ćuĽgĄ\ýŻooŢŇ»”W*íÝÚAón=dÍŻńîó¤y~ĎfßŢW>i^ŢkEsłľ˝ůďjźĘ;ť<üĚ1pĄżÇQóň®vůšgÓĆ›[×Ůĺ¤y}çüZĺ=O:~ö÷e—s~_GŻŢß©˝Öu6eçIcožŽšŰ¨Ű›ç÷X­íˇ‹ý•§ű–ććšěÍŰ»ź¬u{čYíÍó»5Żď”­ůzŻŁćöÔůŐ«OŰÖý]’Źy>ń3ÖzŘĺ4ŢőŕŃóuů+§TŹćkľlĄ{óţ®‡Í;Vz:XŞů*Ńľťt|¶ýĹ·ş«»ł;jžŕ˘űIsër{iŰeŽ:ŢZçi~ľľ×ÁR÷ćáb«O˝ŁćÍ·Vł›Ű*O6|ë¨ç¦ď©)Żw?Řܲ­ňpT6ó›7űďş|?k^bÁÍ“őjO±Möŕä ą5×kŤw;yu ĄlkH%˝×‹Wsľ|t÷ö^ć¤G:syř®čw/G?|®§RĎfŤo‹ÍO–»5ď%\Őu2klÄ,Śô»źD“Ţ<"érËćbđQ#ď'ޢ`s6/4pÖÜĐÇŃŁ9ďÍíáŰu6pÖÜÇ˝.wŁ bĂÍ5ďď\"&»Žz~8y ó—GłfĆćnM?lîYÎÖ[Y1ęÖď'ôćÍ"‹|ŇqîžG8Ęv˛;[óa“Ƹů„A˛˝´Ç56wŽöGoŢcÎĄĂ»{HŘÖ˝ĺjQUŠÍý$εcµ§ł°Nźë©šŻ9şűŚŔĆöŠqôîËÁÔşgiľ˝ąÇ’ ŽĆ˝ĺ6ćĺÇaó•âáŹć|«x÷ꉋŁćîgíîGńpkŽľî.ŽÂŞ6ÂĎÎt¶IXsĂVk]Ž:~:|ĄUšŻČsů¤;Ůb¬y‘e;›łćh/ űQĎ-xĘqöîý ޱ,'“Λ/¤ÉN&]OŘř¤;ş{ÄňiÔłőjÍëăžŢ{ľä3´ć¶ŻŹńľŽ^=űÎÚYş'w HWt|>Ůálg´§ö»ípÖ|Ř&aaŐ:Ůcz ŽńťęhŘ‘T÷á;ńtlîţňd˝öČ”ůÝŰѬ GsöčÝ#N#ôŁžźńđ-jGÍçs´Avs´ ŮíŁ%v䣔ľ7wt”;i>.O4y˘ď:8kî›LďghÍGŽWOz~¤ŘÝ^4/ď†ň(˘5˙îďîŰűQóí´…wôîÍűĚłVGI—ŃĂQ»Çy-dúŃ&U®sŢ6Úëŕîĺ*1mćYpâÍŠĐ'W¨nňĺ`Ĺ•«ëÝOf]qqŤőĽEĆë`Ü‹KLrČUćŁ.6[}Ü×<ŞysOł¶3wQR ·­îDčâÍçDŢĺŔ]xó…;Źľˇ°1<Ë~Ô<¶:Ň5ŹtÝi×µ«Řś?¸î9/Gž$Jľ7Fý˙Ä]8ůz?+)ysŰťÂ]śÜ=[lcÍ=ůpňî9EŞ˛[py2p9Kr1NÖ{F ÖBśzâ*­yd:Żłsá€7/GŠŤ’‡ËT˛»ĽŁžGŇiÍŁÚ›;XŚrŰ1/ô~×yóČUÖł‡š}ĐÄÉÝKv꼓WBabÖ“YW‚Ŕ\zq’úđć6ŕą–#ü/e:Ie qŽΛ7{ř|öđ5{U x±Ýɻά“Ëć.JŃ=O:ˇ¸p´AĎâť+ěŽÂ‹׌÷I1°¬8Ąs?J´ىl]ç2Ą“‡÷ćH´ž'őZľM8Ă~5<říëŹ_?jqýĚŁ#;­ŕ Çď_ĄGóÇ×wź.Ă2t᪳qmű2Íűz6ÝŇľNóľţávűî÷uďśxąßýů+/÷çßýÁú.łďBfpí?`÷•Ř!˙EőŢŰýţ“mý°„řÝ8˙üĆ^ Săëç·-ýň âÝvß—§nş÷ňďŮm^ü˛©áÝőń2şÖ}uf÷ş ëľęZusOşLóq˝ĹżďëmŻńŰďë0ďë9šë:ÍÇuĽĚľ~żŰłŰ}ő‹GBÉY–˘‚_”ŻőůO6]Ű×ű''d´NßŢÚ6ÖRľ:W~ş±Q'ĂČożłK`Y řö—ö˘9ĹlĺÓ4ĹŞţRý¨”ĚezýއŤ˙hęĂß…ű»PŞÚ_NŘţ¤˙ý Żi¶—kÚ.×üŹźźűąÎą O§Ě+ÖÔ?ą¶’ zĚłüřĹkőv;Ű[mŇ™éB«ńň´SqÓë f6w%n'5Ż×Í0«ŻĚśaŽ€P›DWss†čj]žĽułňřP]2—›í˘ąş›#ĂËöáä±LCĂ"$7§?†™ ^ž–^qÜĂLűw»ăŠCjnf—°x8ŢhĹ+xĹ2cĹ ĽçfwŚó”oÜw —Ą×7ł†YĽ­ÇżÖöŹŃÖŚĚ0Ł7<Ŕ´PÍĐ*^ßŃÜ<Š™ń‚~@Ăţc-Ľ ›ţ‚ËÇÜLWŕătaŤďJqÔÎí6hűń˙ÎNŰYĆěŃdϰ'ľQç5Đ®Ô÷ŚşŮ3ÓöŠÚů>Úv ;é,Ě„ť=-™,¬Hhßpp yI”v…ĎcQSďáÚ ěÔ›B|íöŚâ'żđ}PȦ#°]łj6ş«@ŕ“˘|évunŹxľR"ÖłÍoD˙ôgŠŚ0ě8Y4cc=aÇó$˛Ě¸ŢŁÎíE»E{áĆ…ďźQRôcń~¶}”gPVĄíý—9EÝöűçĚń®±8ÝŽ9`–B¸†ń0Űë­Ö­v t˛nÝöĽ`7Ů3lôWm8±’&·;î?řĽ.îě8µ"» Ą˛.Ú^*wÉqô_K8pĽ<ŕvdřC>ýŃŠ‘+2°4 vŤŽńič_łěş!ďöx>sY‹‡4ăůŰŚE%”nŻmĘŕxřV˙|śĘ„íĄľt »Ö°ń~=ÜNŘhŹňXŃrě<_»ĽN ;&‹ë«cţ›=m_Ź>¬vśĂą8żÍYÔ/„¨©FŤŔíđ·n×LŰ+5năvHšÜFudŤŞćKźv˙Şn-iCtąŹ÷§MöÇŚůTăĐ™Ű źo\/ó×l|~\ˇ:qů@˘Ý ^B˙™íë±庍ęeí\O®ZÁçáOĚŽ“‘…˝pJžÖË_çšâyFC{ŤÇ@Áˇ]˙Ąu»8ţ®Ő衒©¸Ţżi}މúfćü´ťĚďçÁ”lĎ Łxkö„ż´iŽ÷ť áÂů±­g˛á_f&°ůnęv“"ăZEHEa\źô3U”o‡ě6üí›ńţ‹×Ylî‘„˝`ăýÝ^°ă~¶efŘ_łlĚç…ůQ(l?Ýą!»íĎßÂ//ąúzń¨߇c2fcţ/¤ę{áüpE@ ;˘· lô‡ď±-řµČn8aŘp?Ôę\‹Óh»?éŤëia?q[×]avě^¬›ČĆ~W.śčóˇŕ,˘Ű1Ţ^óxŮ–EŚŹĽ&ŠĽŃĹ6F÷G¶ b~{IjBv1`g Ţb˙öş‹ű[łěŘř=+űżŰ^qµVĄíGoFÄ2n7dV"Ärë}Tř/·+®—)»=íűŤëyd´Źń÷ú€ű“ѰxÂßÇÓí¸Ž@-ٲk¸žQÁëź%—?ĆŔřxŇ<ž—űŹgÁ/Úřľ|{v´ăű¦«e<ŔÄűdř«±0˙<ÜpýYČľôĎnG._–n§¸ź-ă‚K n^Ľ?ă…I\lŁ‘€aŃ.ü-|ߌő53ćoŘ vĽź9^‡€Yý•:ń}•ăýŮnń`.Ś‹őẔ¸Ş×µC°áßĚîń|ľđgś±ŹőVĽ#fđ\ěoĹľŘă1ŹĹŁ?]”q,>ľĎÖëÂuĚĎĺ‘tě?őşP'móąŐL°ŔÉÖ‘­Ë ÉŹ`ű ‘2x¦wcF°¤3ĽÉ"fvߤávĽ QĂŇP˛†¤sÓ~m‘;h#ěňÚ¸áv…Ľáö’=ńůő hĂa9Üî Š`pńý€˛ü¦pÁUŔ·ŁÉqÔŕáv®ŻM?ĐĂŢ těá6"ŕ#bŘAc~D€ś^›?âqľ€Â)ű@ĚF@Aq[€dĆx @rĺ†LqŠoŻ@Ü/Ů8ą —‚Ă ąé:$nXŰ€d€,ŕ"€ `"€¸‘]†ÎyŢR?O±ż0@\’ `Ab§ÄlĐR¸— _O)ę/},=¤4 űëŇo ‰ű¬OŮí ; &€ŤźâíĽuÉža¨ 5 X 5q| µ0 !€Ô ©\Păű 5˛ó7€Ô qŕ u0%€ÔPŐŢ‚ŰŢâîx_H»řý˙]žúşÄNŮľ·Ć7€´¤śú< ¦Š˛RHË_HËśOě7€Í"@€´*@€´ĘůJńnŰ€q…ÝžŔń×mř·ĆBŇ";}Ů|?H›OH›|~Ůđoeűzl“óklů$“âÄ$tÓułś®ń#€X·Â@zćú#€X7cý@đÓG7€ě–Ň•°!€t?¤7 ¤k˝@şü?¤& ÖÍXŻ®÷%€ ­WČ`@$ń6Ëf@‹€22ç ÄTÄě˘ë Ť" €ŚÂń'€Śň@Fĺű@FĄ˙&€ %Ä Ł ŞVĽdt dtdH cĐ@ĚĆz#€Ř0b˙$€ŤőEq[×VlÉţ€Ě 'ń€3jČäú€x€Ů%dv~ĆůB€ńaŹď'€Ě‰ů+q{˝n1›Ŕ1{âű±Ţ=ś_7€LĽd.Ý2—î™|˙ř˛.d1)Y™3de]Çţ»č «Ŕ?@÷_‡mëuĹE˙(YśohoY ű˝Äő¶ń<Ś–€‰˛ÔßŘâ~Ąţ'€¸Ďń_TÂüpx ĺż° ńJŚhfĆó@B0;ÄĂĚđ‡| ř/Űă nČ ů˘"€¸ĎOąmHľfghó@2‰GâŮ'€ä ‚€ŘHQ†ŤRŃ€e¸ E@qŐTl@R€@vŔL)Ę@ 34Ň1 eÜŔâ­(ăM)SŔp)ŔÍ’\_âč@ęĹ”R/nĐšř<·,Ş 9¤~Ş€Tft f#CO©•aŔČŔ@gß‚ă¤7€TüĘ*©IJdŚ7Ä–6tŮ  Çp uqü ŤóKŇävńý ; &€]źŇ HČÎČ@Ü`@š€ŠŇ*HëśżÖůţÖ`@<@ @Ěću˙€ÁłŇ/öÄlDž0žůüŹëńyźW…ăÂokNUD"@0@ü‡SôyďOł1ţ€@z%@v@JńŚ«€Ă×ăθ@::ł (ŢUˇ€ô®ű@ú`€HéŞP@”ˇpüuţÍě&ŕđţ´—f/”qČ CČPĹ“˛bŮS ÷§#ł˙ fo © ë@FfŔHńí CýML @đ× öć d°?˛ç€Ś‰€R2Tˇ d^ěŮ S@K±FÂbŰ"€2ŮđŻeD žp¸?5›>ÄěµdÁVĹĂdŞâBÁ¶{ČÜ>dĘß@ü„#lČŇţ@qůîYJ@~ČĘ|ŮŘ˙ 8wČŞzÄ‹ WŰĎ ČŞ+ ř˝Ď@ă   @0Čb”r”âa˘ŕBĹü'€xXâ6LHŘřţ†’ţ›â6"$쀄ý·çŁ,ě@Ă@Ü„U±â6+ .Ôď¸űoy$ nł‚’Ą €äÄx”â6*·§€#C¦ś$ŢźřiÎ ńc™ŠŚC0@rŇ|€ä¤ Ämô?ÄĹą>HŘń|´x?‡u[î_ł 9±âDÉ™H.H0 @<Á× řeÄ@ňäó@2»·c?€l›˘řXʬôW”YŻđ{ţ3 ĐhQ“‡Ŕ7­¸ł`°˛2|YeeÖ"€*«Ş4AKÍ•Uń^äóý©Éš,[P“µ«(ĐdMĚYi˛– 4Yë–hA˛!Ĺú‰’-8 K/Š9T„(KĆ”+c P.n㊠í(×ÖuP®Â ”€â@@ąT‚' \ÚP(ćÚPĚ`C%  ‡L@I J҆O@q{˝n@IĘxPßW€’ä° (îç¶$ ?†Ś Ĺ×(©qĂ# Ť\­! ˇDk h(ŃRFU­Ĺ€[-I‚(ůŇóî_®­O‰–/`%gI®(đ‹7 d¬·0ńůĘ™€’µáPÜŹ XllČ’huV°$ŃęI´4ľ’hI2'‰Ö ŔJ˘µTń DK’JŮ@@)*ŠŰJIĎ”’ů>”ЎĄ|Ş [o@)MB‰Vc$‰VçxH˘5$Ábj0Ŕ•DK˘$ZdI´čŕ(ÖmI’«řŔ‹ó‹€â¶€Ą¨—*&”Pá}(.‘Ú’-wŔLHŞćS˘U5˙(•Á-ŃÚJ´2ç‹$Z ¸$ŃR‚B­Âő/‰–2Ô’h)C-IV•ěłM‰V•$Ť-Šk·D« ŕ(Ń’ż’D«ß‘hÉI˘5î J'ŕăó”h ’$ZĘxß­-Ůbď{K´ÚłBŇ®H(ŃjO@i—€ć–h@¶D‹´%ZI@B‰*·D ţň–h]ź$Ző“Dëú$ŃJ˘Ő’huŽŹ$ZJ8I˘5¸ľ%Ń đ)ŃRFż"‰)Ĺ+VO@iJXPÚ ~Ęô”&D@i’¬Pš$‹’hmI%Z%Ć’hm‰%Zé®Úř>J´¤D+3!#‰V°Q˘Ą Ą$Z Hh ŕ•D‹°-Ѣ¤kK´”q—D«x·D‹ UHú ’>PłBҲBŇ×-ÉŞ°Q`…¤Kb$‰ÖĄ %Zڇ¶D‹óK´č·DkŰ”h]ŞčP˘•H”h1žŘ-I–$Ѣ„tK´˛*”h1ˇ´%ZT,l‰VaEA­úP‰3$Z“x ‰ÖÄ„P…ÄźĽ€ IJ -ѢŮ­„ ż%Z ˛%ZĚm‰VpP˘Ĺ Ă–heU@(Ń*Ľż$ZÔn‰VeĹH-žÁxH´ÖłB’ˇÚ-Nđ‡Dk<އxŽT­}|dK´(”hM:TI´Xň{H´’€C-‡$Z»"‚Ľčó’háű¶D«H’E‰`K´»%Z’-ŃŞź$ZăyFÄčţ<#’µAŢ- ·D ô-Ń*Ď ‰ÜóőĹ€á–h! –D+©"Qtx|’hĺO­ňI˘ĹŠäBÉĹ-Ńâý(Ń’$á–h•g…Ä˙yFÄż&żn)ťýuK´.UDÎ8ĚO­KŔ1žgn‰ÖµĎŚ@˘u=+$8¶D«©"B‰ÖőŞ3’hIÂqK´đ<’hQsýh!ŕ»%Zčď[˘…€ę–h8¶DëĂ‘ş°Ý­®3!’hI˛%‰–lI´(’hé $Z]6%ZI´$ą˘DkŞ"B‰%P[˘•tf„­ň¬4I†n‰Ţ˙–hńĚÉ–hUŮ”hˇżoIÖ–t}´)ŃRě–hˇ˙o‰lK´ę@ÚdI˘Ą3b’h1cĽ%ZŞ Ü-ś»%ZS“Š€•H—Q- ·Dk=+$ťÇDë€t$ZJ I˘% Ń-ѢČ­Îő ‰–üż$ZďK´(±˘DKhw>O‰V’Ä‹-®$Z€(ŃRĹ]­ňI˘UąI˘% •D‹Ő-ŃŞĎŚĘç—D«1A ‰V`P˘% Ż$Z].J´úG’J˘µ+8”h±B±%ZJ`I˘ő`…Dk}’h­O­ Hy}’h1áđh$Ń"ŕ<$Zë “č-Ńj’8m‰Ö‡3">Ä%Xřü–hőO-Ĺ–h±=%ZŞŘÜ­ö<#2)ń}H´ÚóŚČdP˘ ×–h H$ŃJ¬ŘÜ­ůI˘ ¸%Ză“D gTn‰+,·D+ň‡DëyFdUô·D‹g>¶D‹Ŕ°%Z´[˘»%Z”-Ńş·ůyJ´ę–hĺ]1D ďOYŚo¶$‹ńó_Ř’h%Jş$ѢDsK´¨ŔŮ-žaŰ-UĐ$Ńb‚|K´$”D«óů$ŃbBdK´dK˘5đ|O‰Vz=ÜnO±y’GŃÝ.J´tÎ[­Ě3’he Đ–hUV$ŃjŞ˙ŹĽV_7€äF •$ZM@Ňuč…I´ş¸S˘ŐuÂť-ŇŮ-J’¶DkHŠ$^ăDkŞâ›§ÎŚ@2Ľ$«D-‰–2p’h]ĚčK˘uŃÁJ˘%‰$ZĘČI˘•¨‘—DKž$ZÚ$Ńj’tQ˘%@’D« H(Ń:ôM‰Öŕý$Ń’HQ˘Ą?¤LIşxHw H(Ńb…jK´¶M‰–2Đ’hńŚĎ–h©D/‰–$:’he`’h %Z:Ă#‰– I´ÚÇ3"µ}<#RUŃ‘D««bB‰–$4’hI.‰ÖĐJ´ö!wf)€X@ŤŚ¤. ’h%“$Z‰–$Zůă‘–?žń˙Ł \§DKgn‰Öő XˇÁ—DK’·[˘•ž¦Câ·D Ç-ŃJź$Z×g‰Ö@ľ"ŃbeK´Ćóz J˘Ą5¸%Zĺ“D«ę:%Zí ţ˙rń¬€Ü’¬-Ńę’dQ˘5$Á˘Dk>©÷Îő*‰V˙ ]Ŕ)‰ÖPĹ‚­}F­)€Ú­µ+"d­öU›­}K´ö™‘Č(jľI˘Ą3X’hi}J˘Ąń‘DK±$Zů“D«°%Ń’¤P-J€·DKMI´´^%Ńę’Pue(ËóŚČÄM-ý…$Z‹ş$ZKJ´+TIdꌒ$Zé–l-d$h’hI‚*‰VŐˇs°Ť÷“D«óů%Ńôg’h©˘(‰Ö”Š­yÉjOI%ZHI´H’h-UP(ŃR…šâ‡^źĄD+Q"(‰–~$@-ƉÖÔˇő‚€ I´TĽ%Z((ŃÚ6%Z<ăB‰–~„A­ö±˛ }H´˛*"”h•Ď­'€,U,n‰%N[˘…€Q-ŕ’hJ„$ŃŞ·$+$ZU’,J´$É‘D«éĚ%ZŞH˘Őn@ ‰Ö¶)ŃjŞŘP˘ĄCč’hQRż%ZÜ˙¶DKş$Z¬hK˘uńڍ$Z~ĆŔ‰ÖµTń DKI´tč_­ űő–h%§DKI´_m‰VúPqIÎřH˘Ußm‰VŃJ´ŠÁS˘ĄC˙’hU%ZŞ 8lfúšMI\ßD@€$ž©€¤Ĺţ–D+ń}$ŃŇ™I´pŰ-Ş—D‹?š°%Z˛ ™đďľüöË˙Ňl(Aendstream endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 /MediaBox [0 0 432 288] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font << /F1 10 0 R /F2 11 0 R >> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xśť–wTSهϽ7˝P’Š”ĐkhRH ˝H‘.*1 JŔ"6DTpDQ‘¦2(ŕ€ŁC‘±"Š…Q±ëDÔqp–Id­߼yďÍ›ß÷~kź˝ĎÝgď}ÖşüÂLX € ˇXáçĹŤ‹g` đlŕpłłBřF™|ŘŚl™ř˝ş ůű*Ó?ŚÁ˙ź”ąY"1PŚçňřŮ\É8=Wś%·Oɶ4MÎ0JÎ"Y‚2V“sň,[|ö™e9ó2„<ËsÎâeđäÜ'ăŤ9ľŚ‘`çřą2ľ&ctI†@Ćoä±|N6(’Ü.ćsSdl-c’(2‚-ăyŕHÉ_đŇ/XĚĎËĹÎĚZ.$§&\S†Ť“‹áĎĎMç‹ĹĚ07Ť#â1Ř™YárfĎüYym˛";Ř8980m-mľ(Ô]ü›’÷v–^„îDřĂöW~™ °¦eµŮú‡mi]ëP»ý‡Í`/Оľu}qş|^RÄâ,g+«ÜÜ\Kźk)/čďúźC_|ĎRľÝďĺaxó“8’t1C^7nfz¦DÄČÎâpů 柇řţuü$ľ/”ED˦L L–µ[Č™B†@řźšřĂţ¤Ůą–‰ÚřĐ–XĄ!@~(* {d+Đď} ĆGů͋љťűĎ‚ţ}W¸LţČ$ŽcGD2¸QÎěšüZ4 E@ę@čŔ¶Ŕ¸ŕA(q`1ŕ‚D €µ ”‚­`'¨u 46ptcŕ48.Ë`ÜR0ž€)đ Ě@„…ČR‡t CȲ…XäCP”%CBH@ë R¨ކęˇfč[č(tş C· Qhúz#0 ¦ÁZ°lł`O8Ž„ÁÉđ28.‚·Ŕ•p|î„OĂ—ŕX ?§€:˘‹0ÂFB‘x$ !«¤i@Ú¤ąŠH‘§Č[EE1PL” Ę…⢖ˇVˇ6ŁŞQPť¨>ÔUÔ(j őMFk˘ÍŃÎčt,:ť‹.FW ›Đčłčô8úˇcŚ1ŽL&łłłÓŽ9…ĆŚa¦±X¬:ÖëŠ Ĺr°bl1¶ {{{;Ž}#âtp¶8_\ˇ8áú"ăEy‹.,ÖXśľřřĹ%ś%Gщ1‰-‰ď9ˇśÎôŇ€ĄµK§¸lî.îžoo’ďĘ/çO$ą&•'=JvMŢž<™âžR‘ňTŔT ž§ú§ÖĄľN MŰźö)=&˝=—‘qTH¦ ű2µ3ó2‡łĚłŠł¤Ëś—í\6% 5eCŮ‹˛»Ĺ4ŮĎÔ€ÄD˛^2šă–S“ó&7:÷Hžrž0o`ąŮňMË'ň}óż^ZÁ]Ń[ [°¶`tĄçĘúUĐŞĄ«zWëŻ.Z=ľĆo͵„µik(´.,/|ą.f]O‘VŃš˘±ő~ë[‹ŠEĹ76¸l¨ŰÚ(Ř8¸iMKx%K­K+Jßoćnľř•ÍW•_}Ú’´e°ĚˇlĎVĚVáÖëŰÜ·(W.Ď/۲˝scGÉŽ—;—ěĽPaWQ·‹°K˛KZ\Ů]ePµµę}uJőHŤWM{­fí¦Ú×»y»ŻěńŘÓV§UWZ÷nŻ`ďÍzżúÎنŠ}}9ű6F7öÍúşąIŁ©´éĂ~á~é}ÍŽÍÍ-š-e­p«¤uň`ÂÁËßxÓÝĆl«o§·—‡$‡›říőĂA‡{ʰ޴}gř]mµŁ¤ę\Ţ9Ő•Ň%íŽë>x´·ÇĄ§ă{Ëď÷Ó=Vs\ĺx٠‰˘źNćźś>•uęééäÓc˝Kz=s­/ĽođlĐŮóç|Ďťé÷ě?yŢőü± ÎŽ^d]ěşäp©sŔ~ ăű:;‡‡ş/;]îž7|âŠű•ÓW˝Żž»píŇČü‘áëQ×oŢH¸!˝É»ůčVú­ç·snĎÜYs}·äžŇ˝Šűš÷~4ý±]ę =>ę=:đ`Á;cܱ'?e˙ô~Ľč!ůaĹ„ÎDó#ŰGÇ&}'/?^řxüIÖ“™§Ĺ?+˙\űĚäŮwżxü20;5ţ\ôüÓŻ›_¨żŘ˙ŇîeďtŘôýWŻf^—ĽQsŕ-ëm˙»w3ąď±ď+?~čůôńî§ŚOź~÷„óűendstream endobj 9 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 9 0 R >> endobj xref 0 12 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000008678 00000 n 0000008761 00000 n 0000008885 00000 n 0000008918 00000 n 0000000212 00000 n 0000000292 00000 n 0000011613 00000 n 0000011870 00000 n 0000011954 00000 n trailer << /Size 12 /Info 1 0 R /Root 2 0 R >> startxref 12051 %%EOF quantreg/inst/doc/engelcoef.pdf0000644000176200001440000002133112504600177016246 0ustar liggesusers%PDF-1.4 %âăĎÓ\r 1 0 obj << /CreationDate (D:20150325133751) /ModDate (D:20150325133751) /Title (R Graphics Output) /Producer (R 3.1.3) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 7 0 obj << /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >> endobj 8 0 obj << /Length 4733 /Filter /FlateDecode >> stream xśµ\KŻ&7Ýß_ŃËÉ‚Ćvůą"H‘X6„°&$Hđó©sŞúkß«IČWŔbuÝŐíG=ŽËÇ7źůřęřűËďôĎOżűýŻ~vüüł—t¦”ŽýďĎ~ţ[ýéhÇ?_>˙Ó‘ŽżĽäăSýóŐKĆÇo^ę8Ű:j={=ľ>JšgĘ.~8>{Ól’ŚłZëXgŹV“îÖśó9úŁŮĹ­˝Ę9ëÝnâÖ>Úąän7ńnŐŮGßďöź˝÷©ů⻏LÍw_|óňÓ_ťÇ÷=r9˝Áţ2YÖYÚ‘ç9Ęńţëăť6}rĽ˙ęĺďůîVů”úJąüxĺśä¬ĺ•v}B[ÚŮŇ+íţ„vç*ďÚó íE+¸µó=i¶Rµź2aL”ňR«XfkŻšmMş[g9‡«Fď2#ç†đY'Ëäa˛v ňŔZA^řp.ľ2ądjČÖ^ L?ÎÔW‡BRŃĎJącsi°5ČśüĂŐĚeÁ”sŃua˙$Ă!WŽW Ěň ľ5hČ‹ď×8!ë|Yű@lË’Ěłćö™ÝVą&6^[9žZ°nYÓţáÂ*̬‹rǵ8>ÓŮ˙:aYć)|ľqb O“3Ě<Ä€,0tt#±żŤf™6›[gZŐnYŐeŐÜŃ­nú ŮěĄg|Öü™L=d›/‚DyeʆĎaX; rç÷4Ŕöë2źÍęÂ0~_“ń ›˝©Ăü›{§·Ü¸Lí_‡éí‹öŻĂ4ű™‰öŻňäú«CĂţ5n1ä)´Lż?í_ĺfň ýk,łő“öŻÓbăS׆ýë´T®‡¦zŘżN‹· íÓÂţ¨wgť_‹j;íq‘ýS˙†ýN3äEűŚÁšéh†gTÚ?¦aP®´ŤbŚČ.CMd{^cçďz߬>ţ=Ő·řŕýÁ4ĘŢß ·şÇ3şűŁŹ±\¶ůĐţçşÍ×÷WźO]öٶů†Yôm=Ôll>}˝#ʶž*çą­·®3ËeŹőq{Ńőëcł§ž<žş˝©Ěů{Řăt˙ąěőŠnĎíaßfďjoK6PŮü×ýĄ˝ń'dŐ¶ůě»nţŘ/o…ŚÍźţăţŢŘÍ-L·Źꏒ¶xňđ_Ź7đďľĹ#•m|ŻôźľÇ3ü“¶x÷'őÇU¶x©?vŮâ©ĘÖ_Ź·g}‹ÇďÖŻËĎő5­oń^áł­źç!jąó…ĘuĎ'ĎmË7úóĎG’Ý~<_!ţŻ-źšÁťďOę–UnuË—ĺŠçžO‹Ł+ߪlöáů¸ÍÜůZ»eöçů\óĄ­§ç{•“µxä[Ç šŹé'®1]6˛Ce‡"Hö|Ř€ †@Ń`ŚŽ€©ÂAŽ€ş†€4 a8Ś{†ť[ŘJ`ETCôDÔ…±2č$@˘ ^Č)70‡&b;"=`-:Lš‡AÄ ˛|ÔĆĄ7h©cd-@k4Ł[$U‰ŕÎŕęňoPöšsuxz /¸jđPö†ÎŹH Vąµ şÇŃ#L»AuŤ#„ÇţžíÉÇk8Ü„eŰ·č¶úŰŁŕťú„ýGł˛Îçúb˙ő»/m|˙íc÷ýĘY÷ žWÄ÷^ŻMďsĘ+`ŰŽç•™©tńgäËa9"”ŠşäžVá&©I@ąpß$đÔç•+ ¦*ĎPnČó“AëyĺP8ą5~^YŹ*ĎĐR nŚŐăS Űj…Ę3ňeáTîźWnPÓ(ž.©‘ISFǰ05ĚÎťň ŚY1\áĆ:¤śmŻťž×V<5{¤Ŕ¨Ő®ł]{`µPą°:@ní‰ ´gD{YY°őimů͵s®Ćť­„‘p±ň­h˙ĽvđöĨS"®­[­V‰źJ`ÜD8V©‰DqŕĄa…ť°31őRo(ŘhFâlĄ™zÄ\±`,BuŕŞçŐQ,<(‘ÎgÖ^ ‰Pň5­"0Y@ýuľ% ®^ş¸‘@Ávi@˝#«=Ż®ŰšjŐ˝{±Ł%Uď!uA[ĘĂ–†í·‚ŁĹśeî4C‡ŠgáƵŔ=ôR±}p¤óŞ×­L:CęÎÍ$ÖIĹgńOüˇ€S<Ľ%ôő Ř·ŚĐŘ—U€đëóę5óđŮ:PgaÎë-ő ČÎru$ÖˇělŐí ¨:NAŤ+Ý«•ŹË`Ł>©ľ"_Ç®rCcG a˛PÁ,H.SŤ}Âsý"Vצť°ĘýĽzçij™‘ŠN]ă[l ’.p|˰ž€z#×ĺ/‘`Ő;‘ĽŞ‡ŇDź„ňŤç}Ď«ŹdÇ/5öu«xÁřZděşYS_‘`5*á|ë(ˇÔ;ńĽš~ČhŹlýd* ľçŰ‚ő<ŻŽŞ¤©‡ü}âůĄłĎ«ăEŠJ8ÍžWÇËŹCmzĐńZÄhQéž—ă=ŻŽşůä Wś  o!ŹCMńü-”ßqB`ꡧhŕyÔ©Bc_Äóęx=¬Jâˇ./˛ů/‰'ŽúşĎ«é´ě‘?ZŔwz¶ \E#>ą ‚ŮEóŃŹ(ěÓLÔŚđs)ňÜuS´sŘ›ą&4„ű“ń8Ju˝$)ý×DŇ2ó+ި§WLŇ7í.ŢlMɬľ]í.níµílR·ö1v6©‹w{Mkg“ş¸µď~ô˙Č&-8Ä ÓI%ń¨/Č'Ś#Ě'–‡ů¤ő˘*„ř¤U·ßÇ'u«¶3÷Ż/#Gt'6÷öŚŐô3ú»}đh7qkgÍMî\Ţź(,ˇŢOĽ?XY¶'LŢź@4íŰ&ďOŘČî'î‘ţ–¦&y xę7~Чńď’§©ăśuąz{^ťűŇéú# żňµ5ν1„‹eZő?ËÔĹ­Ôź~+żć™:»ô˙Č4•F®ŃM5}÷Ż]úq1ű˙I,-łîĚŇ2YsU‘ôş2Y¶»fQ\ą”­‹¶Ý«qÁĘ"SZn[jsÓdň»d°ŔŠ#ňŰD@á!‘Mč ×g¦?Č †LţžĂ4{ß"_ ü]~_­)ů±ß7Iŕóěżşk1~/ů}˘&ľľZű ˝7־ȾÉĂřt˛ččÍZ`EvŘAţ•,žgóFű´sňÓDÝ6™Ľě}“ĽˇRڤS‰N»ÉvÜ«2ů‚UQ5HI·ÜČYRďŕŇ×Dâ*jńĂôYŘ„L:ŤĂ9ČöţLb¦@¶ĂJ«ÂCf¬baŰžďäc©lďÇD4ÖŽéUŢL¦9Őb§xRmţ«v|0ńXqĐŇYýťÖŢČ'ç'×Bâ'ÚIŞÚ1đ1 §©,ÉřjÝ(HUěđI¦Ů`Ѳ:-ůÄŐÉľ`ňšPIöü$ź®. Â.?řĄ×óóe{_[F!»ľ§r[p× mýmÓřu×xšóç®ńŞS’˙zÍGĎfß×|µîëéóŮ®ńů|ŁÂT¶őĐŃöőşř–×zZ5ő^ďć7.{Đç—lö‚—7{j×ü¸˝µ|ŮłŮcsľíeŻ-ż¶g0łv{ŻÎ˙ľüˇăó^ţľćÚü©v[ŻË߬®{űc­Ö˙Ë_땿ܟ˛ű;ŞŇe‹5{Đöx!Ţß+ž¨lQÜăŤř­+É?<^©ý[föx¦fTŇďÄý˙ЇRŚ xĹË[¶xŞ˛ĺEŹ·ęźemń¸,ŹŹŻË2ţčĎ‹ßä¸â}—~ľî¸~˛űĂřžL€ă-ĺY®a|éw*‚lýłL…xeók‰ěĎ<Ď=îCx$-µŢY’rľ“(ďSŚ;Ç2^ç;Cöśě>Č4ęĄ'đ;Ţ[~G~°üféůiZ{µű(ËüĂÁéüľa PdÔ,»í"Ď™d3űplůĐp eĂ9b4Sqű1Tr„ŇIF4-ŽÖ Sńî żg t!‡`͸¦ŮÁž6ČŚ˙Žçî÷ÜľCËYŻŽQ§Ú$. ’$Î\k…bgdŻ"FE}ŹL}C°Ë‰ęŽoo±;ďtT&6žŐ˛¬#gőµiŻ"®Ë0€Łîá”tÇä¨ňĆ€!öî@Ëńüł˙§ôÓ2YS̡O•É;@ť™5 =śa`ΰŰPőĽč**>Fč Tţ±šš«ű ż ¨…•·Ś#ELŔqrXSčŰť« + hOěWĆŽáN“ߎ ‹úżşzP„Î ­µ#glë° Ěą$n qg2`©gء¶ĄJâŰ‚ÔóÚšc4GÂÓBÚHµCăÎĽŞÚ%¤Í­ĄÝhK¬ŠŠ˘H 'îu#Úš>G¬â vm™⥂˘VxY#2k…ńh/ =XŐ°™€öÄn —i§Z"¬˙¬aK‘”~;GVL·gŠŰěŇ_@»±€łBäi@ÉAíH0”­"$+±ý‰Á¶çµu÷Ó ĺEÖ»ňŘš3bl•WńAČŤĐĹ86P%#Ýo,»Ş5"SYGCą+rv.Ř&/î>BžÖČěÂć¦E–˝qSőXě(Ő#&ŰxEę9¤ľxzť[ä„}.NŻAˇŽŕ§^xލę)˛îv˝š\ćŃęîĄŰ%ȉYú ěóŐuÖְ奦‘ěwŇŚĐĄĽÄ„‚@„Śú ę7Şá@ Qš•sCťďdŁ˘úń8 ý˙úLdŁ–űäťs–~"«€lTü’ś.Ľ0ĘÂUÄăPĆ"MÝ$Ü÷ú"µ°xóĽúbµĎ)đőbg ÜoÔ+Y’bYgZvc=„Ş€€óá÷ęęäB=r9 ĺi°Q%jbń‹ż °Ç݉ąż\ BÜG-lÔšcdÚXE5 Î#ţć–ŔşW…TÍÔ#4âŠ_Ô¨‰´8µ–P‚®–™ń[$"¬DÚ€»†CŤ:[@”y_ń»Śě$R¨Ŕ Ő°[\WQ·śq™ÂÓwţÚŹĐ×;ń|]ˇ2KEőß.^DȬ8,¦‰´—›Ś÷ß"áBH‰óľEüÝŽ„q2ąţ[5ÄĎC=4vÂItţŁ›ĐŹłQťZ´xX®cő]t–$Ł^zä®ÜzFeŮůrüĺŹ\&őĺß pRendstream endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 /MediaBox [0 0 468 252] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font << /F1 10 0 R /F2 11 0 R /F3 12 0 R >> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xśť–wTSهϽ7˝P’Š”ĐkhRH ˝H‘.*1 JŔ"6DTpDQ‘¦2(ŕ€ŁC‘±"Š…Q±ëDÔqp–Id­߼yďÍ›ß÷~kź˝ĎÝgď}ÖşüÂLX € ˇXáçĹŤ‹g` đlŕpłłBřF™|ŘŚl™ř˝ş ůű*Ó?ŚÁ˙ź”ąY"1PŚçňřŮ\É8=Wś%·Oɶ4MÎ0JÎ"Y‚2V“sň,[|ö™e9ó2„<ËsÎâeđäÜ'ăŤ9ľŚ‘`çřą2ľ&ctI†@Ćoä±|N6(’Ü.ćsSdl-c’(2‚-ăyŕHÉ_đŇ/XĚĎËĹÎĚZ.$§&\S†Ť“‹áĎĎMç‹ĹĚ07Ť#â1Ř™YárfĎüYym˛";Ř8980m-mľ(Ô]ü›’÷v–^„îDřĂöW~™ °¦eµŮú‡mi]ëP»ý‡Í`/Оľu}qş|^RÄâ,g+«ÜÜ\Kźk)/čďúźC_|ĎRľÝďĺaxó“8’t1C^7nfz¦DÄČÎâpů 柇řţuü$ľ/”ED˦L L–µ[Č™B†@řźšřĂţ¤Ůą–‰ÚřĐ–XĄ!@~(* {d+Đď} ĆGů͋љťűĎ‚ţ}W¸LţČ$ŽcGD2¸QÎěšüZ4 E@ę@čŔ¶Ŕ¸ŕA(q`1ŕ‚D €µ ”‚­`'¨u 46ptcŕ48.Ë`ÜR0ž€)đ Ě@„…ČR‡t CȲ…XäCP”%CBH@ë R¨ކęˇfč[č(tş C· Qhúz#0 ¦ÁZ°lł`O8Ž„ÁÉđ28.‚·Ŕ•p|î„OĂ—ŕX ?§€:˘‹0ÂFB‘x$ !«¤i@Ú¤ąŠH‘§Č[EE1PL” Ę…⢖ˇVˇ6ŁŞQPť¨>ÔUÔ(j őMFk˘ÍŃÎčt,:ť‹.FW ›Đčłčô8úˇcŚ1ŽL&łłłÓŽ9…ĆŚa¦±X¬:ÖëŠ Ĺr°bl1¶ {{{;Ž}#âtp¶8_\ˇ8áú"ăEy‹.,ÖXśľřřĹ%ś%Gщ1‰-‰ď9ˇśÎôŇ€ĄµK§¸lî.îžoo’ďĘ/çO$ą&•'=JvMŢž<™âžR‘ňTŔT ž§ú§ÖĄľN MŰźö)=&˝=—‘qTH¦ ű2µ3ó2‡łĚłŠł¤Ëś—í\6% 5eCŮ‹˛»Ĺ4ŮĎÔ€ÄD˛^2šă–S“ó&7:÷Hžrž0o`ąŮňMË'ň}óż^ZÁ]Ń[ [°¶`tĄçĘúUĐŞĄ«zWëŻ.Z=ľĆo͵„µik(´.,/|ą.f]O‘VŃš˘±ő~ë[‹ŠEĹ76¸l¨ŰÚ(Ř8¸iMKx%K­K+Jßoćnľř•ÍW•_}Ú’´e°ĚˇlĎVĚVáÖëŰÜ·(W.Ď/۲˝scGÉŽ—;—ěĽPaWQ·‹°K˛KZ\Ů]ePµµę}uJőHŤWM{­fí¦Ú×»y»ŻěńŘÓV§UWZ÷nŻ`ďÍzżúÎنŠ}}9ű6F7öÍúşąIŁ©´éĂ~á~é}ÍŽÍÍ-š-e­p«¤uň`ÂÁËßxÓÝĆl«o§·—‡$‡›říőĂA‡{ʰ޴}gř]mµŁ¤ę\Ţ9Ő•Ň%íŽë>x´·ÇĄ§ă{Ëď÷Ó=Vs\ĺx٠‰˘źNćźś>•uęééäÓc˝Kz=s­/ĽođlĐŮóç|Ďťé÷ě?yŢőü± ÎŽ^d]ěşäp©sŔ~ ăű:;‡‡ş/;]îž7|âŠű•ÓW˝Żž»píŇČü‘áëQ×oŢH¸!˝É»ůčVú­ç·snĎÜYs}·äžŇ˝Šűš÷~4ý±]ę =>ę=:đ`Á;cܱ'?e˙ô~Ľč!ůaĹ„ÎDó#ŰGÇ&}'/?^řxüIÖ“™§Ĺ?+˙\űĚäŮwżxü20;5ţ\ôüÓŻ›_¨żŘ˙ŇîeďtŘôýWŻf^—ĽQsŕ-ëm˙»w3ąď±ď+?~čůôńî§ŚOź~÷„óűendstream endobj 9 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 9 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding 9 0 R >> endobj xref 0 13 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000005097 00000 n 0000005180 00000 n 0000005315 00000 n 0000005348 00000 n 0000000212 00000 n 0000000292 00000 n 0000008043 00000 n 0000008300 00000 n 0000008384 00000 n 0000008481 00000 n trailer << /Size 13 /Info 1 0 R /Root 2 0 R >> startxref 8583 %%EOF quantreg/inst/doc/rq.Rnw0000644000176200001440000012206613032732201014734 0ustar liggesusers%\VignetteIndexEntry{Quantile Regression} %\VignetteDepends{quantreg,MASS,SparseM,tripack} %\VignettePackage{quantreg} \documentclass{amsart} \usepackage{natbib} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\textit{#1}}} \newcommand{\R}{{\normalfont\textsf{R }}{}} \renewcommand{\S}{{\normalfont\textsf{S }}{}} \title{Quantile Regression in R: A Vignette} \thanks{Version: \today} \author{Roger Koenker} \begin{document} \bibliographystyle{plainnat} \begin{abstract} Quantile regression is an evolving body of statistical methods for estimating and drawing inferences about conditional quantile functions. An implementation of these methods in the \R language is available in the package \Rpackage{quantreg}. This vignette offers a brief tutorial introduction to the package. \R and the package \Rpackage{quantreg} are open-source software projects and can be freely downloaded from CRAN: \texttt{http://cran.r-project.org}. \end{abstract} \maketitle \pagestyle{myheadings} \markboth{\sc Quantile Regression in R}{\sc Roger Koenker} <>= options(width = 60) options(SweaveHooks = list(fig = function() par(mar=c(3,3,1,0.5),mgp = c(2,1,0)))) @ \section{Introduction} Beran's (2003) \nocite{Beran.03} provocative definition of statistics as ``the study of algorithms for data analysis'' elevates computational considerations to the forefront of the field. It is apparent that the evolutionary success of statistical methods is to a significant degree determined by considerations of computational convenience. As a result, design and dissemination of statistical software has become an integral part of statistical research. Algorithms are no longer the exclusive purview of the numerical analyst, or the proto-industrial software firm; they are an essential part of the artisanal research process. Fortunately, modern computing has also transformed the software development process and greatly facilitated collaborative research; the massive collective international effort represented by the \R project exceeds the most idealistic Marxist imagination. Algorithms have been a crucial part of the research challenge of quantile regression methods from their inception in the 18th century. \citet*{Stigler.84} describes an amusing episode in 1760 in which the itinerant Croatian Jesuit Rudjer Boscovich sought computational advice in London regarding his nascent method for median regression. Ironically, a fully satisfactory answer to Boscovich's questions only emerged with dawn of modern computing. The discovery of the simplex method and subsequent developments in linear programming have made quantile regression methods competitive with traditional least squares methods in terms of their computational effort. These computational developments have also played a critical role in encouraging a deeper appreciation of the statistical advantages of these methods. Since the early 1980's I have been developing software for quantile regression: initially for the S language of Chambers and Becker (1984), later for its commercial manifestation Splus, and since 1999 for the splendid open source dialect \R, initiated by \citet*{IG} and sustained by the \citet*{Rcore}. Although there is now some functionality for quantile regression in most of the major commercial statistical packages, I have a natural predilection for the \R environment and the software that I have developed for \R. In what follows, I have tried to provide a brief tutorial introduction to this environment for quantile regression. \section{What is a vignette? } This document was written in the Sweave format of \citet*{Leisch}. Sweave is an implementation designed for \R of the literate programming style advocated by \citet*{Knuth.LP}. The format permits a natural interplay between code written in {\R}, the output of that code, and commentary on the code. Sweave documents are preprocessed by \R to produce a \LaTeX~ document that may then be processed by conventional methods. Many \R packages now have Sweave vignettes describing their basic functionality. Examples of vignettes can be found for many of the \R packages including this one for the \texttt{quantreg} packages in the source distribution directory \texttt{inst/doc}. \section{Getting Started} I will not attempt to provide another introduction to \R. There are already several excellent resources intended to accomplish this task. The books of \citet*{Dalgaard.02} and \citet*{VR} are particularly recommended. The CRAN website link to contributed documentation also offers excellent introductions in several languages. \R is a open source software project and can be freely downloaded from the CRAN website along with its associated documentation. For unix-based operating systems it is usual to download and build \R from source, but binary versions are available for most computing platforms and can be easily installed. Once \R is running the installation of additional packages is quite straightward. To install the quantile regression package from \R one simply types, \vspace{2mm} \noindent \texttt{> install.packages("quantreg")} \vspace{2mm} \noindent Provided that your machine has a proper internet connection and you have write permission in the appropriate system directories, the installation of the package should proceed automatically. Once the \texttt{quantreg} package is installed, it needs to be made accessible to the current \R session by the command, <>= library(quantreg) @ These procedures provide access to an enormous variety of specialized \texttt{packages} for statistical analysis. As we proceed a variety of other packages will be called upon. Online help facilities are available in two modalities. If you know precisely what you are looking for, and would simply like to check the details of a particular command you can, for example, try: <>= help(package="quantreg") help(rq) @ The former command gives a brief summary of the available commands in the package, and the latter requests more detailed information about a specific command. An convenient shorthand for the latter command is to type simply \texttt{?rq}. More generally one can initiate a web-browser help session with the command, \vspace{2mm} \noindent \texttt{> help.start()} \vspace{2mm} \noindent and navigate as desired. The browser approach is better adapted to exploratory inquiries, while the command line approach is better suited to confirmatory ones. A valuable feature of \R help files is that the examples used to illustrate commands are executable, so they can be pasted into an \R session, or run as a group with a command like, \vspace{2mm} \noindent \texttt{> example(rq)} \vspace{2mm} \noindent The examples for the basic \texttt{rq} command include an analysis of the Brownlee stackloss data: first the median regression, then the first quantile regression is computed, then the full quantile regression process. A curious feature of this often analysed data set, but one that is very difficult to find without quantile regresion fitting, is the fact the 8 of the 21 points fall exactly on a hyperplane in 4-space. The second example in the \texttt{rq} helpfile computes a weighted univariate median using randomly generated data. The original \citet*{engel.1857} data on the relationship between food expenditure and household income is considered in the third example. The data is plotted and then six fitted quantile regression lines are superimposed on the scatterplot. The final example illustrates the imposition of inequality constraints on the quantile regression coefficients using a simulated data set. Let's consider the median regression results for the Engel example in somewhat more detail. Executing, <<>>= data(engel) fit1 <- rq(foodexp ~ income, tau = .5, data = engel) @ assigns the output of the median regression computation to the object \texttt{fit1}. In the command \texttt{rq()} there are also many options. The first argument is a ``formula'' that specifies the model that is desired. In this case we wanted to fit a simple bivariate linear model so the formula is just \texttt{y $\sim$ x}, if we had two covariates we could say, e.g. \texttt{y $\sim$ x+z}. Factor variables, that is variables taking only a few discrete values, are treated specially by the formula processing and result in a group of indicator (dummy) variables. If we would like to see a concise summary of the result we can simply type, <<>>= fit1 @ By convention for all the \R linear model fitting routines, we see only the estimated coefficients and some information about the model being estimated. To obtain a more detailed evaluation of the fitted model, we can use, <<>>= summary(fit1) @ The resulting table gives the estimated intercept and slope in the first column and confidence intervals for these parameters in the second and third columns. By default, these confidence intervals are computed by the rank inversion method described in \citet*{K.05}, Section 3.4.5. To extract the residuals or the coefficients of the fitted relationship we can write, <<>>= r1 <- resid(fit1) c1 <- coef(fit1) @ They can then be easily used in subsequent calculations. \section{Object Orientation} A brief digression on the role of object orientation in \R is perhaps worthwhile at this juncture. Expressions in \R manipulate objects, objects may be data in the form of vectors, matrices or higher order arrays, but objects may also be functions, or more complex collections of objects. Objects have a class and this clsss identifier helps to recognize their special features and enables functions to act on them appropriately. Thus, for example, the function \texttt{summary} when operating on an object of class \texttt{rq} as produced by the function \texttt{rq} can act quite differently on the object than it would if the object were of another class, say \texttt{lm} indicating that it was the product of least squares fitting. Summary of a data structure like a matrix or data.frame would have yet another intent and outcome. In the earlier dialects of \S and \R methods for various classes were distinguished by appending the class name to the method separated by a ``.''. Thus, the function \texttt{summary.rq} would summarize an \texttt{rq} object, and \texttt{summary.lm} would summarize an \texttt{lm} object. In either case the main objective of the summary is to produce some inferential evidence to accompany the point estimates of parameters. Likewise, plotting of various classes of \R objects can be carried out by the expression \texttt{plot(x)} with the expectation that the plot command will recognize the class of the object \texttt{x} and proceed accordingly. More recently, \citet*{C.98} has introduced an elegant elaboration of the class, method-dispatch framework for \S and \R. Assignment of objects is usually accomplished by the operator \texttt{<-}, and once assigned these new objects are available for the duration of the \R session, or until they are explicitly removed from the session. \R is an open source language so {\it all} of the source files describing the functionality of the language are ultimately accessible to the individual user, and users are free to modify and extend the functionality of the language in any way they see fit. To accomplish this one needs to be able to find functions and modify them. This takes us somewhat beyond the intended tutorial scope of this vignette, however suffice it to say that most of the functions of the \texttt{quantreg} package you will find used below, can be viewed by simple typing the name of the function perhaps concatenated with a class name. \section{Formal Inference} There are several alternative methods of conducting inference about quantile regression coefficients. As an alternative to the rank-inversion confidence intervals, one can obtain a more conventional looking table of coefficients, standard errors, t-statistics, and p-values using the \texttt{summary} function: <<>>= summary(fit1,se = "nid") @ The standard errors reported in this table are computed as described in Section 3.2.3 for the quantile regression sandwich formula, and using the Hall-Sheather bandwidth rule. To obtain the Powell kernel version of the covariance matrix estimate, one specifies the option \texttt{se="ker"} in the \texttt{summary} command. It is also possible to control the bandwidths employed with the \texttt{bandwidth} option. Another option available in \texttt{summary.rq} is to compute bootstrapped standard errors. This is accomplished by specifying the option \texttt{se="boot"}. There are currently three flavors of the bootstrap available: the standard $xy$-pair bootstrap, the \citet*{PWY.94} version, and the Markov chain marginal bootstrap of \citet*{HeHu} and \citet*{KHM}. There is also the ability to specify $m$ out $n$ versions of the bootstrap in which the sample size of the bootstrap samples is different from (typically smaller than) the original sample size. This ``subsampling'' approach has a number of advantages, not the least of which is that it can be considerably faster than the full $n$ out of $n$ version. By default \texttt{summary} also produces components estimating the full covariance matrix of the estimated parameters and its constituent pieces. For further details, see the documentation for \texttt{summary.rq}. In the case of the bootstrap methods the full matrix of bootstrap replications is also available. There are several options to the basic fitting routine \texttt{rq}. An important option that controls the choice of the algorithm used in the fitting is \texttt{method}. The default is \texttt{method = "br"} which invokes a variant of the \citet*{BR.74} simplex algorithm described in \citet*{KO.87}. For problems with more than a few thousand observations it is worthwhile considering \texttt{method = "fn"} which invokes the Frisch-Newton algorithm described in \citet*{PK.1997}. Rather than traversing around the exterior of the constraint set like the simplex method, the interior point approach embodied in the Frisch-Newton algorithm burrows from within the constraint set toward the exterior. Instead of taking steepest descent steps at each intersection of exterior edges, it takes Newton steps based on a log-barrier Lagrangian form of the objective function. Special forms of Frisch-Newton are available for problems that include linear inequality constraints and for problems with sparse design matrices. For extremely large problems with plausibly exchangeable observations \texttt{method = "pfn"} implements a version of the Frisch-Newton algorithm with a preprocessing step that can further speed things up considerably. In problems of moderate size where the default simplex option is quite practical, the parametric programming approach to finding the rank inversion confidence intervals can be rather slow. In such cases it may be advantageous to try one of the other inference methods based on estimation of the asymptotic covariance matrix, or to consider the bootstrap. Both approaches are described in more detail below. To provide a somewhat more elaborate visualization of the Engel example consider an example that superimposes several estimated conditional quantile functions on the Engel data scatterplot. In the resulting figure the median regression line appears as a solid (blue) line, and the least squares line as a dashed (red) line. The other quantile regression lines appear in grey. Note that the plotting of the fitted lines is easily accomplished by the convention that the command \texttt{abline} looks for a pair of coefficients, which if found are treated as the slope and intercept of the plotted line. There are many options that can be used to further fine tune the plot. Looping over the quantiles is also conveniently handled by {\R}'s \texttt{for} syntax. \begin{figure} \begin{center} <>= library(quantreg) data(engel) attach(engel) plot(income,foodexp,cex=.25,type="n",xlab="Household Income", ylab="Food Expenditure") points(income,foodexp,cex=.5,col="blue") abline(rq(foodexp~income,tau=.5),col="blue") abline(lm(foodexp~income),lty=2,col="red") #the dreaded ols line taus <- c(.05,.1,.25,.75,.90,.95) for( i in 1:length(taus)){ abline(rq(foodexp~income,tau=taus[i]),col="gray") } @ \end{center} \caption{Scatterplot and Quantile Regression Fit of the Engel Food Expenditure Data: The plot shows a scatterplot of the Engel data on food expenditure vs household income for a sample of 235 19th century working class Belgian households. Superimposed on the plot are the $\{ .05 , .1, .25, .75, .90, .95\}$ quantile regression lines in gray, the median fit in solid black, and the least squares estimate of the conditional mean function as the dashed (red) line.} \end{figure} Often it is useful to compute quantile regressions on a discrete set of $\tau$'s; this can be accomplished by specifying \texttt{tau} as a vector in \texttt{rq}: <>= xx <- income - mean(income) fit1 <- summary(rq(foodexp~xx,tau=2:98/100)) fit2 <- summary(rq(foodexp~xx,tau=c(.05, .25, .5, .75, .95))) @ The results can be summarized as a plot. <>= pdf("engelcoef.pdf",width=6.5,height=3.5) plot(fit1,mfrow = c(1,2)) dev.off() @ or by producing a latex-formatted table. <>= latex(fit2, caption="Engel's Law", transpose=TRUE) @ The \texttt{pdf} command preceding the plot tells \R that instructions for the plotting should be written in encapsulated pdf format and placed in the file \texttt{engelcoef.pdf}. Such files are then conveniently included in \LaTeX~ documents, for example. The \texttt{dev.off()} command closes the current pdf device and concludes the figure. The horizontal lines in the coefficient plots represent the least squares fit and its associated confidence interval. In the one-sample setting we know that integrating the quantile function over the entire domain [0,1] yields the mean of the (sample) distribution, \[ \mu = \int_{-\infty}^\infty x dF(x) = \int_0^1 F^{-1} (t)dt. \] Similarly, in the coefficient plots we may expect to see that integrating individual coefficients yields roughly mean effect as estimated by the associated least squares coefficient. One should be cautious, however, about this interpretation in very heterogeneous situations. For the Engel data, note that the least squares intercept is significantly above any of the fitted quantile regression curves in our initial scatter plot. The least squares fit is strongly affected by the two outlying observations with relatively low food expenditure; their attraction tilts the fitted line so its intercept drawn upward. In fact, the intercept for the Engel model is difficult to interpret since it asks us to consider food expenditure for households with zero income. Centering the covariate observations so they have mean zero, as we have done prior to computing \texttt{fit1} for the coefficient plot restores a reasonable interpretation of the intercept parameter. After centering the least squares estimate of the intercept is a prediction of mean food expenditure for a household with mean income, and the quantile regression intercept, $\hat \alpha (\tau)$ is a prediction of the $\tau$th quantile of food expenditure for households with mean income. In the terminology of Tukey, the ``intercept'' has become a ``centercept.'' \begin{figure} \begin{center} \resizebox{\textwidth}{!} {\includegraphics{engelcoef.pdf}} \end{center} \caption{Engel Coefficient Plots: the slope and intercept of the estimated linear quantile regression linear for the Engel food expenditure data are plotted as a function of $\tau$. Note that the household income variable has been centered at its mean value for this plot, so the intercept is really a centercept and estimates the quantile function of food expenditure conditional on mean income.} \end{figure} \input{fit2.tex} The \texttt{latex} command produces a \LaTeX~ formatted table that can be easily included in documents. In many instances the plotted form of the results will provide a more economical and informative display. It should again be stressed that since the quantile regression functions and indeed all of \R is open source, users can always modify the available functions to achieve special effects required for a particular application. When such modifications appear to be of general applicability, it is desirable to communicate them to the package author, so they could be shared with the larger community. If we want to see {\it all} the distinct quantile regression solutions for a particular model application we can specify a tau outside the range [0,1], e.g. <>= z <- rq(foodexp~income,tau=-1) @ This form of the function carries out the parametric programming steps required to find the entire sample path of the quantile regression process. The returned object is of class \texttt{rq.process} and has several components: the primal solution in \texttt{z\$sol}, and the dual solution in \texttt{ z\$dsol}. In interactive mode typing the name of an \R object causes the program to print the object in some reasonably intelligible manner determined by the print method designated for the object's class. Again, plotting is often a more informative means of display and so there is a special \texttt{plot} method for objects of class \texttt{rq.process}. Estimating the conditional quantile functions of \texttt{y} at a specific values of \texttt{x} is also quite easy. In the following code we plot the estimated empirical quantile functions of food expenditure for households that are at the 10th percentile of the sample income distribution, and the 90th percentile. In the right panel we plot corresponding density estimates for the two groups. The density estimates employ the adaptive kernel method proposed by \citet*{Silverman} and implemented in the \texttt{quantreg} function \texttt{akj}. This function is particularly convenient since it permits unequal mass to be associated with the observations such as those produced by the quantile regression process. \begin{figure} \begin{center} <>= x.poor <- quantile(income,.1) #Poor is defined as at the .1 quantile of the sample distn x.rich <- quantile(income,.9) #Rich is defined as at the .9 quantile of the sample distn ps <- z$sol[1,] qs.poor <- c(c(1,x.poor)%*%z$sol[4:5,]) qs.rich <- c(c(1,x.rich)%*%z$sol[4:5,]) #now plot the two quantile functions to compare par(mfrow = c(1,2)) plot(c(ps,ps),c(qs.poor,qs.rich), type="n", xlab = expression(tau), ylab = "quantile") plot(stepfun(ps,c(qs.poor[1],qs.poor)), do.points=FALSE, add=TRUE) plot(stepfun(ps,c(qs.poor[1],qs.rich)), do.points=FALSE, add=TRUE, col.hor = "gray", col.vert = "gray") ## now plot associated conditional density estimates ## weights from ps (process) ps.wts <- (c(0,diff(ps)) + c(diff(ps),0)) / 2 ap <- akj(qs.poor, z=qs.poor, p = ps.wts) ar <- akj(qs.rich, z=qs.rich, p = ps.wts) plot(c(qs.poor,qs.rich),c(ap$dens,ar$dens),type="n", xlab= "Food Expenditure", ylab= "Density") lines(qs.rich, ar$dens, col="gray") lines(qs.poor, ap$dens, col="black") legend("topright", c("poor","rich"), lty = c(1,1), col=c("black","gray")) @ \end{center} \caption{Estimated conditional quantile and density functions for food expenditure based on the Engel data: Two estimates are presented one for relatively poor households with income of \Sexpr{format(round(x.poor,2))} Belgian francs, and the other for relatively affluent households with \Sexpr{format(round(x.rich,2))} Belgian francs.} \end{figure} Thus far we have only considered Engel functions that are linear in form, and the scatterplot as well as the formal testing has revealed a strong tendency for the dispersion of food expenditure to increase with household income. This is a particularly common form of heteroscedasticity. If one looks more carefully at the fitting, one sees interesting departures from symmetry that would not be likely to be revealed by the typical textbook testing for heteroscedasticity. One common remedy for symptoms like these would be to reformulate the model in log linear terms. It is interesting to compare what happens after the log transformation with what we have already seen. \begin{figure} \begin{center} <>= plot(income,foodexp,log="xy",xlab="Household Income", ylab="Food Expenditure") taus <- c(.05,.1,.25,.75,.90,.95) abline(rq(log10(foodexp)~log10(income),tau=.5),col="blue") abline(lm(log10(foodexp)~log10(income)),lty = 3,col="red") for( i in 1:length(taus)){ abline(rq(log10(foodexp)~log10(income),tau=taus[i]),col="gray") } @ \end{center} \caption{Quantile regression estimates for a log-linear version of the Engel food expenditure model.} \end{figure} Note that the flag \texttt{log="xy"} produces a plot with log-log axes, and for convenience of axis labeling these logarithms are base 10, so the subsequent fitting is also specified as base 10 logs for plotting purposes, even though base 10 logarithms are {\it unnatural} and would never be used in reporting numerical results. This looks much more like a classical iid error regression model, although again some departure from symmetry is visible. An interesting exercise would be to conduct some formal testing for departures from the iid assumption of the type already considered above. \section{More on Testing} Now let's consider some other forms of formal testing. A natural first question is: do the estimated quantile regression relationships conform to the location shift hypothesis that assumes that all of the conditional quantile functions have the same slope parameters. To begin, suppose we just estimate the quartile fits for the Engel data and look at the default output: <<>>= fit1 <- rq(foodexp~income,tau=.25) fit2 <- rq(foodexp~income,tau=.50) fit3 <- rq(foodexp~income,tau=.75) @ Recall that \texttt{rq} just produces coefficient estimates and \texttt{summary} is needed to evaluate the precision of the estimates. This is fine for judging whether covariates are significant at particular quantiles but suppose that we wanted to test that the slopes were the same at the three quartiles? This is done with the \texttt{anova} command as follows: <<>>= anova(fit1, fit2, fit3) @ This is an example of a general class of tests proposed in \citet*{KB.82b}. It may be instructive to look at the code for the command \texttt{anova.rq} to see how this test is carried out. The Wald approach is used and the asymptotic covariance matrix is estimated using the approach of \citet*{HK.92}. It also illustrates a general syntax for testing in \R adapted to the present situation. If you have estimated two models with different covariate specifications, but the same $\tau$ then \texttt{anova(f0,f1)} tests whether the more restricted model is preferred. Note that this requires that the models with fits say \texttt{f0} and \texttt{f1} are nested. The procedure \texttt{anova.rq} attempts to check whether the fitted models are nested, but this is not foolproof. These tests can be carried out either as Wald tests based on the estimated joint asymptotic covariance matrix of the coefficients, or using the rank test approach described in \citet*{GJKP.94}. A variety of other options are described in the documentation of the function \texttt{anova.rq}. \section{Inference on the Quantile Regression Process} In least squares estimation of linear models it is implicitly assumed that we are able to model the effects of the covariates as a pure location shift, or somewhat more generally as a location and scale shift of the response distribution. In the simplest case of a single binary treatment effect this amounts to assuming that the treatment and control distributions differ by a location shift, or a location-scale shift. Tests of these hypotheses in the two sample model can be conducted using the conventional two-sample Kolmogorov Smirnov statistic, but the appearance of unknown nuisance parameters greatly complicates the limiting distribution theory. Similar problems persist in the extension of these tests to the general quantile regression setting. Using an approach introduced by \citet*{khma.81}, \citet*{KX.02} consider general forms of such tests. The tests can be viewed as a generalization of the simple tests of equality of slopes across quantiles described in the previous section. In this section we briefly describe how to implement these tests in \R. The application considered is the quantile autoregression (QAR) model for weekly U.S. gasoline prices considered in \citet*{KX.06}. The data consists of 699 weekly observations running from August 1990 to February, 2004. The model considered is a QAR(4) model utilizing four lags. We are interested in testing whether the classical location-shift AR(4) is a plausible alternative to the QAR(4) specification, that is whether the four QAR lag coefficients are constant with respect to $tau$. To carry out the test we can either compute the test using the full quantile regression process or on a moderately fine grid of taus: <>= source("gasprice.R") x <- gasprice n <- length(x) p <- 5 # lag length X <- cbind(x[(p-1):(n-1)], x[(p-2):(n-2)], x[(p-3):(n-3)], x[(p-4):(n-4)]) y <- x[p:n] T1 <- KhmaladzeTest(y ~ X,taus = -1, nullH="location") T2 <- KhmaladzeTest(y ~ X,taus = 10:290/300, nullH="location",se="ker") @ When \texttt{taus} contains elements outside of the the interval $(0,1)$ then the process is standardized by a simple form of the covariance matrix that assumes iid error. In the second version of the test Powell's kernel form of the sandwich formula estimate is used, see \texttt{summary.rq}. The function \texttt{KhmaladzeTest} computes both a joint test that {\it all} the covariate effects satisfy the null hypothesis, and a coefficient by coefficient version of the test. In this example the former component, \texttt{T1\$Tn} is \Sexpr{format(round(T1$Tn,2))}. This test has a 1 percent critical value of 5.56, so the test weakly rejects the null. For the Powell form the standardization the corresponding test statistic is more decisive, taking the value \Sexpr{format(round(T2$Tn,2))}. Tests of the location-scale shift form of the null hypothesis can be easily done by making the appropriate change in the \texttt{nullH} argument of the function. \section{Nonlinear Quantile Regression} Quantile regression models with response functions that are nonlinear in parameters can be estimated with the function \texttt{nlrq}. For such models the specification of the model formula is somewhat more esoteric than for ordinary linear models, but follows the conventions of the \R command \texttt{nls} for nonlinear least squares estimation. To illustrate the use of \texttt{nlrq} consider the problem of estimating the quantile functions of the Frank copula model introduced in \citet*{K.05}, Section 8.4. We begin by setting some parameters and generating data from the Frank model: <