*******************************
*                             *
*  Changes in quantregGrowth  *
*                             *
*******************************


=============
version 1.7-2  (2025-10-06)
=============
* bug fixs: with several linear terms, noncrossing constraints could not work  (thanks to Ben Sherwood for reporting)


=============
version 1.7-1  (2024-05-20)
=============
* new argument 'n.points' in plot.gcrq() to better display results from adaptive smoothing 
* New worked examples in vignette: adaptive smoothing and variable selection


=============
version 1.7-0  (2023-07-05)
=============
* new argument 'sparse' in gcrq() (calling new function ncross.rq.fitXBsparse()) to gain some computational efficency when the B-spline and the the sample size are (quite) large
* new arguments 'st' and 'ad' in ps() for adaptive smoothing/tuning parameter selection
* a bug fixed when managing multiple additive terms both with and without shape constraints
* a bug fixed in predict.gcrq() when managing ordered factors
* a small change in the convergence criterion of gcrq() when estimating the smoothing parameters (too avoid (rare) loops)


=============
version 1.6-2  (2023-05-25)
=============
* small change in gcrq() when estimating the smoothing parameter: it is slightly more efficient when the sample size is large and the number of percentiles is high, larger than 10, say
* change in the dafault of K in ps() (the change concerns variable selection procedure via lasso where K is set to log(n/p^(2/3))) where p is the number of covariates
* small changes in plot.gcrq() to better portray the fitted curve (especially when these are wiggly); changes to the default values of col, lty, and lwd 


=============
version 1.6-1  (2023-04-14)
=============
* plot.gcrq() gains argument 'se.interc' to portray CI (when conf.level>0) accounting for uncertainty in the model intercept estimate 
* charts() gains argument 'dataframe' to return a dataframe with better formatting, rather than a simple matrix.  
* bug fix: charts(.., k=1) did not work


=============
version 1.6-0  (2023-04-04)
=============
* ps() now accepts a matrix to perform variable selection of its columns via lasso
* charts() now gains argument 'conf.level' to return pointwise confidence intervals (thanks to Lea Tybirk for her input)
* More examples in vignette (about VC terms)
* bugs fixed/small changes: a small correction in plot.gcrq() when managing 'ylim'; ps(..,constr.fit=FALSE) was not working correctly; 'shift' in plot.gcrq() now can be a vector; argument 'sgn.constr' in gcrq() removed (to the benefit of safer noncrossing constraints when managing linear relationships) 


=============
version 1.5-0  (2023-03-24)
=============
* ps() now accepts factors which can be useful to model 'penalized/random intercepts' 
* gcrq() did use but not save information on knots when specified in ps() (thanks to Matthieu Wilhelm for his input)
* attributes removed by AIC.gcrq()


=============
version 1.4-0  (2021-11-09)
=============
* changes in gcrq when handling VC terms: the basis now does *not* include the 'main' effect of the interacting variable. Thus fits involving the same variables are allowed (e.g. ps(z)+ps(x1, by=z)+ps(x2, by=z) (thanks to Rafael M. Mas for his input)


=============
version 1.3-1  (2021-10-22)
=============
* a small correction in the logLik and SIC formulas in logLik.gcrq, print.gcrq, and summary.gcrq for multiple quantile curves
* a small correction in ps: 'concave=1' actually meant convex functions
* bug fixed in handling VC terms with continuous variables (thanks to Rafael M. Mas for reporting)


=============
version 1.3-0 (2021-06-11)  
=============
* new argument 'pen.matrix' in ps() to deal with a penalty matrix specified by the user.
* new argument 'shared.pen' in ps(): when the VC term involves a 'by' factor, the level-specific smooths can share the same smoothing parameter (thanks to Abele Wolfgang for his input).
* optionally safer shape (monotonicity/concavity) constraints via argument 'constr.fit' in ps().
* new function charts(), a simple wrapper of predict.gcrq() to facilitate building of growth charts.
* new argument 'axis.tau' in plot.gcrq() to display the estimated coefficients versus the probability values (when multiple quantile curves have been estimated).
* the argument 'overlap' in plot.gcrq() can be a vector (and when specified, argument 'legend' is set TRUE automatically)
* new dataset (SiChildren) introduced
* bugs fixed: predict.gcrq() did not display linear effects in semiparametric fits; predict.gcrq() did not handle VC terms with categorical interaction (thanks to Abele Wolfgang for reporting); plot.gcrq() did not display correctly the derivative (if deriv>0 was set) 
* vignette introduced summarizing some capabilities of the package


=============
version 1.2-1 (2021-05-12) 
============= 
* gcrq() gains argument 'df.nc' to account (optionally) for the possible noncrossing constraints in the model degrees of freedom 
* bugs fixed: gcrq() did not work when lambda had to be selected by CV; plot.gcrq() displayed (clearly) wrong pointwise confidence intervals when called with 'term=NULL' *and* 'res=TRUE' *and* 'conf.level>0'; vcov.gcrq() ignored the correct lambda values (when the fit was obtained by setting 'single.lambda=FALSE')


=============
version 1.2-0 (2021-05-05) 
=============
* some improvements in fitting and displaying (noncrossing) linear models. 
* methods logLik.gcrq and AIC.gcrq introduced.
* ndx argument in ps() now defaults to min(n/4,9) (it was min(n/4,40)). 
* some minor changes in plot.gcrq(): arguments 'edf.ylab' and 'n.points' removed; for VC terms and a single tau, the edf value on the y-axis does not include the basis intercept, coherently with non-VC terms.
* bugs fixed in handling noncrossing constraints with centred Bsplines (thanks to Gianluca Sottile for the fruitful discussion and suggestion) and in handling monotonicity/concavity constraints.


=============
version 1.1-0  (2021-03-24)
=============
* predict.gcrq() now also works for VC models, including interaction with factors.
* vcov(.., type="sandwich") allowed. Thus the methods summary.gcrq, plot.gcrq and predict.gcrq gain the argument 'type'.
* gcrq() now accepts 'single.lambda'=TRUE/FALSE to select single or different smoothing parameters for the quantile curves.
* plot.gcrq() gains argument shift to vertically the fitted quantile curve.
* bugs fixed: gcrq.gcrq() did not work correctly with VC terms (i.e. ps(x,by=z)) when called with n.boot>0.


=============
version 1.0-0  (2021-02-26)
=============
* gcrq() now allows automatic (and efficient) selection of the smoothing parameters in additive models (i.e. when several spline terms are included). 
* cv in gcrq() has been removed (cv is always TRUE when there is a single smooth term and the spar has been selected by CV).
* new arguments in gcrq() referring to estimation of the spar; new argument 'interc' in plot.gcrq() affecting the fitted lines being drawn. Thus 'interc=TRUE' is necessary to superimpose lines to observations.


=============
version 0.4-4 (no pubblic release)  
=============
* gcrq() with n.boot>0 sometimes stopped due to some 'unusual' boot samples and to a very large or small lambda value 
(thanks to Fabian Otto-Sobotka for reporting) 
* ps() now accepts variable names including functions, such as `log(x)' 
* the overlap argument in plot.gcrq() now accepts exact x-values to print the probability values on the plot


=============
version 0.4-3  
=============
* gcrq() now computes and saves the inverse of transformation function (argument 'transf') to be used when plotting fitted quantiles on the original scale (thanks to Sophie Carles for her input)
* predict.gcrq() did not work for objects including multiple smooth terms (thanks to Sean Fleming for reporting)
* 'newdata' in predic.gcrq can be missing (fitted values are returned)


=============
version 0.4-2  
=============
* plot.gcrq() gains arguments 'smoos' to plot data using a smoothed scatterplot (useful for large datasets)
* bugs fixed in plot.gcrq


=============
version 0.4-1  
=============
* gcrq() now prints a warning message when cv is used to select the smoothing parameter, and the selected lambda is on the boundary of the set range.
* plot.gcrq() gains arguments 'rug' and 'grid'; 'col<0' is allowed to use a color palette for the fitted quantile curves.
  in gcrq() an error message is printed if interaction terms with ps() (e.g. "ps(x)*z") are included in the formula.


=============
version 0.4-0  
=============
* plot.gcrq() gains arguments 'conf.level' and 'shade'  to portray fitted quantiles along with pointwise confidence intervals (based on cases resampling bootstrap). Thanks to Shervin Asgari for the final input. Also argument 'overlap' has been added to display the legend on the fitted curves.
* predict.gcrq() introduced (it replaces predicQR()). It gains argument 'se.fit' to compute standard errors of the fitted quantiles
* Some minor corrections/changes/bug fixes. 


=============
version 0.3-2  
=============
* cv defaults to TRUE when multiple tuning parameter values are provided in ps() 
* bugs fixed (in plot.gcrq() 'lwd' was erroneusly affecting the data points)


=============
version 0.3-1  
=============
* predictQR() did not work for objects fitted with a scalar tau (thanks to Michael Frank for reporting) 
* some corrections in the help files


=============
version 0.3-0 
=============
* Multiple ps() terms (with known lambda) are allowed in gcrq().
* plot.gcrq() gains argument 'term' to specify which smooth relationship to plot.
* gcrq() gains argument 'eps' to tune the distance between the fitted curves.
* ncross.rq.fitB() deleted; now ncross.rq.fitXB() makes the necessary job.


=============
version 0.2-0 (not on CRAN)
=============
* Nonparametric bootstrap resampling introduced (argument 'n.boot' in gcrq()).
* Methods summary.gcrq() and vcov.gcrq() introduced to return var-cov matrices based on bootstrap.
* Some very minor changes in plot.gcrq() to better control graphical display (when cv=TRUE)
* Some bugs fixed: gcrq() was not working with factors included in the linear predictor;
plot.gcrq() was not working for models including linear terms; the lambda set in ps() is now really lambda (it was actually sqrt(lambda)).


=============
version 0.1-3
=============
* Argument 'transf' added to cgrq() and plot.gcrq(). This argument can be useful when modelling bounded oucomes (whereby monotone transformations could be employed). 
* The returned "gcrq" object now also includes 'fitted.values' and 'residuals'.
* gcrq() was not working with values of tau always greater than .5 (or always less then .5); also a single value of tau was not allowed. 
* The objective values for taus < 0.5 returned in the 'rho' component of the fitted "gcrq" object were wrong.
* Some minor graphical arguments added to plot.gcrq() to better control graphical display.


=============
version 0.1-2
=============
* Argument 'interc' added to cgrq() to include B-splines and the model intercept. 
* Some bugs fixed: gcrq() was not working with formulas such as 'gcrq(y~0+x)';
 the component info.smooth was not correctly named in "gcrq" objects causing troubles
with predictQR() (thanks to Oscar Camacho for finding the error)


=============
version 0.1-1
=============
* First public release on CRAN
