Changes from Version 0.60-16 to 0.60-17 [12-Mar-2023] * Fixed warning "Check: S3 generic/method consistency Result: WARN compute.bootstrap.errors: function(..., bws) compute.bootstrap.errors.*" triggered potentially by lack of "...,bw" in functions called (thanks to Kurt Hornik for assistance!) Changes from Version 0.60-15 to 0.60-16 [18-Oct-2022] * Fixed warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] (thanks Zhenghua!) Changes from Version 0.60-14 to 0.60-15 [09-Oct-2022] * Explicit acknowledgment in DESCRIPTION of code gsl_bspline.c/.h adapted from the GNU GSL library with further details appended to gsl_bspline.c/.h (thanks to Professor Brian Ripley for noting this oversight). Changes from Version 0.60-13 to 0.60-14 [22-Aug-2022] * Added logspline and ks to DESCRIPTION to address NOTE on some system builds stating "Undeclared packages ‘logspline’, ‘ks’ in Rd xrefs" * Zhenghua Nie kindly addressed the clang-UBSAN issue in jksum.c causing `runtime error: applying non-zero offset 8 to null pointer` Changes from Version 0.60-12 to 0.60-13 [15-Aug-2022] * Minor changes to np.Rnw vignette viz Sweave options and class (redundancies commented out) * Fixed issues relating to new NOTE "Found if() conditions comparing class() to string [..] Use inherits() (or maybe is()) instead." Addressed by using by using isa() Changes from Version 0.60-11 to 0.60-12 [12-Aug-2022] * JSS issues corrected in vignette/*.bib and inst/CITATION (use of DOI, etc., thanks to Achim Zeileis) * Issues with utf8x in entropy_np.Rnw and np.Rnw corrected (utf8x -> utf8, etc.) Changes from Version 0.60-10 to 0.60-11 [04-Jun-2021] * npuniden.boundary() uses empirical support for a and b (previously was [0,1], now [min(X),max(X)]) * Corrected potential issue with malloc failing on null vector in C function sort_unique() detected by development version of gcc11 (thanks to Professor Brian Ripley for pointing this out and for his assistance) * Corrected outdated URLs Changes from Version 0.60-9 to 0.60-10 [5-Feb-2020] * Corrected issue `Documented arguments not in usage in documentation object se: ...' * Removal of directed quotes in some Rd documents, replacement with sQuote * Fixed issue causing rebuilding of vignettes to crash (uocquantile() was the culprit) Changes from Version 0.60-8 to 0.60-9 [24-Oct-2018] * Added support for character expansion to npplot() (which is invoked by calling plot() on an np object) - will take defaults from the environment par() or can be set directly, e.g., plot(foo,cex.main=0.8) Changes from Version 0.60-7 to 0.60-8 [04-Jun-2018] * Used patch suggested by Scott Thompson for issue https://github.com/JeffreyRacine/R-Package-np/issues/8 regarding npcdens/npcdist and formulas Changes from Version 0.60-6 to 0.60-7 [01-May-2018] * Fix for switch() and zero length character strings that affected summary output for certain tests * Added function for shape constrained bounded univariate PDF and CDF estimation (npuniden.sc()) * Added option for renormalizing improper bounded density estimates than can arise from the use of asymmetric negative edge kernel functions (proper=TRUE, npuniden.boundary()) * Fixed issues with CDF estimation in the presence of large bandwidths for bounded density estimates (npuniden.boundary()) Changes from Version 0.60-5 to 0.60-6 [12-Jan-2018] * Added more edge kernel functions for npuniden.boundary(), some glitches addressed * Added asymptotic standard errors and integrated density (CDF) to npuniden.boundary() and npuniden.reflect() plus additional examples * Added least squares cross-validation to npuniden.boundary() (default for boundary kernel functions) Changes from Version 0.60-4 to 0.60-5 [04-Jan-2018] * Added two basic functions for univariate bounded kernel density estimation, npuniden.boundary and npuniden.reflect * More plotting routines accept more passable parameters Changes from Version 0.60-3 to 0.60-4 [03-Dec-2017] * Default plot.errors.style changed to "band" * Using wrapLines(strwrap(...)) for summary output for model specification test to automatically wrap long formula lines * plot() calls npplot() and npplot() behaves better when most passable parameters are fed (col =, lty =, xlab =, etc.) but there may still be room for improvement * Added option plot.par.mfrow=TRUE/FALSE to npplot() so that the automated setting of par(mfrow=c(,)) in plot is disabled and the user can do this manually if desired * Option plot.par.mfrow=TRUE/FALSE can be overridden by setting options(plot.par.mfrow=TRUE/FALSE) Changes from Version 0.60-2 to 0.60-3 [29-Apr-2017] * Fixed the `cannot find function is()' glitch that just surfaced with R 3.4.0 * Fixed glitch in npconmode when randomizing if all probabilities are equal * Migrated some code from crs (which I wrote) to avoid crs::: * Fixed outstanding glitch in npscoef() with tydat being converted * Leave.one.out not properly implemented in npscoef, corrected * Using pmin/pmax in NZD (parallel min/max more efficient with vectors) * Improved screen i/o when smooth.residuals=TRUE/FALSE * Corrected glitch in npregiv() where multivariate z would halt with error * Npregiv with method="Landweber-Fridman" no longer passes back lists * Fixed glitch in Kmat.lp with p=0 and derivatives * Tikhonov regularization in npregiv now supports evaluation data * Updated npregiv (was sorely lacking, did not support eval etc.) * Use of .onLoad suggested (by Bernd Bischl) * Fixed glitch in npconmode * Added vignette("entropy_np",package="np") to startup message * In np.distribution.bw.R default for do.full.integral changed to FALSE * Fixed the CDF objective function when averaging over the training data * Fixed crash error with npcdistbw and adaptive bandwidths Changes from Version 0.60-1 to 0.60-2 [27-Jun-2014] * added timeseries support for all relevant objects (i.e. for a ts() vector data object x, npreg(x~lag(x,-1)+lag(x,-2)) is now supported) * added total time to summary for bandwidth objects * npqreg no longer accepts gradients=TRUE when gradients are in fact not supported * npqreg fails with an informative message when passed a conditional density bandwidth object Changes from Version 0.60-0 to 0.60-1 [6-Jun-2014] * Fixed glitch in adaptive_nn/generalized_nn bandwidths that affected all routines that rely on non-fixed bandwidths * Tweaks to search for adaptive_nn/generalized_nn initial search values * Fixed glitch in local linear estimation with adaptive_nn bandwidths Changes from Version 0.50-1 to 0.60-0 [1-Jun-2014] * Ordered kernel types now default to liracine/liracine (normalized) for conditional/unconditional objects, respectively (the previous default, i.e. the Wang van Ryzin kernel, is poorly behaved when smoothing out of ordered predictors is appropriate) * Added analytical ordered CDF kernels, resulting in significant speedups for cross validation with ordered variables * Added analytical ordered convolution kernels, resulting in significant speedups for least-squares cross validation with ordered variables * The entire C backend has been rewritten and improved in almost every regard * Glitch in adaptive convolution kernels corrected * Added truncated gaussian kernel (see ntpgauss for modifying the truncation radius) * Support for trees complete (use options(np.tree=TRUE)) which when used in conjunction with bounded kernels (i.e. "epanechnikov"/"truncated gaussian") can reduce the computational burden for certain problems * Optimizers that make use of Powell's direction set method now accept additional arguments that can be used to potentially improve default settings * Default search settings for optimizers that make use of Powell's direction set method should better scale to the range of variables * Added mean absolute deviation/1.4826 to mix of robust scale elements * Corrected error in order of conditional density/distribution manual bandwidths pointed out by Decet Romain * Figure in vignette not displaying properly, needed png=TRUE reported by Christophe Bontemps * Using chol2inv/chol rather than solve throughout R routines that rely on inversion * Fixed glitch in npindexbw() to stop maxit from blowing up every time convergence fails * Fixed issue with summary reporting incorrect value of objective function in certain bandwidth objects * When nmulti > 1, the full multi- starting search history is now returned in a vector named fval.history * Added na.action for consistency with other R functions such as lm() * New function npquantile() that returns smooth univariate quantiles * npksum explicitly only uses raw bandwidths now (and will emit an error if passed numeric scale factors, bandwidth objects are still OK) * Fixed regression in npindex() with bootstrapped standard errors * Code makes use of one call to npksum() in npindex() and npscoef() where possible rather than two separate calls * Updated npsigtest() for addition of power and added joint test to the mix * Changed ceiling() to max(1,round()) in b.star per Dimitris Politis's suggestion * Reworked the interface for npcopula() to avoid two bandwidths and density=TRUE but exploiting passing of either npudistbw (copula) or npudensbw (copula density) Changes from Version 0.40-13 to 0.50-1 [13-Mar-2013] * The functions npudist() and npudistbw() are now uncoupled from npudens() and npudensbw() (previously they relied on unconditional PDF bandwidths due to the lack of a multivariate mixed-data method for selecting bandwidths for CDFs - now with Li & Racine (2013) we have a robust method hence the split) * The use of cdf=TRUE is deprecated for npudens and npudensbw objects due to the uncoupling described above * Fixed glitch in gradient standard errors in npindex where identical standard errors were output in model$gerr * Fixed glitch in covariance matrix in npindex (ichimura) where covariance matrix was not symmetric * Fixed glitch in npksum() where use of bwtype="adaptive_nn" and operator="integral" produced the survivor function rather than the cumulative distribution function * Cleaned up internals for npcmstest() * Using .onUnload rather than .Last.lib in zzz.R * Fixed glitch in npreg() summary where `Residual standard error' was reporting residual variance * npksum() functionality extended - npksum() can now return the matrix of kernel weights (which can be useful for constrained estimation, by way of illustration, or constructing novel kernel-based procedures without the need to write extensive code) - npksum() can now accept different operators on a product kernel, for example, npksum(txdat=data.frame(x1,x2),operator=c("derivative","normal"),bws=c(1,1)) will use the derivative kernel for x1 (i.e. the derivative of the gaussian kernel) and the default kernel for x2 (i.e. a standard kernel such as the gaussian) thereby allowing the user to program a number of estimators such as conditional CDFs etc. that were previously not available via npksum() * Fixed glitch with variable scope where certain objects could not be found in the environment * Added function `npcopula()' for d-dimensional copula estimation via inversion * Modified stopping rules in npregiv and npregivderiv * Added reference to R2 measure (Doksum and Samarov (1995)) * Startup message points to the faq, faq is now a vignette Changes from Version 0.40-12 to 0.40-13 [05-Mar-2012] * Added new function npregivderiv() that implements the IV derivative method of Florens and Racine (2012) * Added more passable parameters to npregiv() (multistarting, parameters passed to optim() for cross-validation) * Changes to code to improve compliance with R `Writing portable packages' guidelines and correct partial argument matches Changes from Version 0.40-11 to 0.40-12 [24-Nov-2011] * Added option (user request) to hold the bandwidth fixed but optimize the parameters in the single index model Changes from Version 0.40-10 to 0.40-11 [24-Oct-2011] * Corrected regression in single index errors Changes from Version 0.40-9 to 0.40-10 [24-Oct-2011] * Modified Silverman's adaptive measure of spread to reflect changes in sd() (sd on matrix deprecated) Changes from Version 0.40-8 to 0.40-9 [30-July-2011] * Renamed COPYING file to COPYRIGHTS Changes from Version 0.40-7 to 0.40-8 [29-July-2011] * Fixed issue where calling npplot resets system seed * Updated examples in docs so that plot is recommended throughout (and not npplot that is invoked by plot) * Fixed regression in npindex when gradients=TRUE and errors=TRUE * Function npindex/npindexbw now accepts additional arguments and implements this properly (i.e. proper implementation by Tristen of Version 0.30-8/0.30-9 change for npindex) * Function npplreg now supports factors in the parametric part just like lm() does * Fixed glitch in jksum.c where the use of weights and adaptive bws could segfault. Changes from Version 0.40-6 to 0.40-7 [8-Jun-2011] * Function npregiv now supports exogenous X and multivariate Z and W. * demo(npregiv) provides a useful illustration. Changes from Version 0.40-5 to 0.40-6 [1-Jun-2011] * Added a new function npregiv that conducts nonparametric instrumental regression a la Darolles, Fan, Florens and Renault (2011, forthcoming, Econometrica) and Horowitz (2011, Econometrica). Note that this function currently returns the fitted phi(z) (i.e. lacks much functionality relative to other np functions) and is in `beta status' until further notice. * Added a new dataset `Engel95' that allows one to estimate Engel curves using the new nonparametric instrumental regression function npregiv. Changes from Version 0.40-4 to 0.40-5 [26-Apr-2011] * Fixed issue with npindexbw where, for certain problems, starting values needed refinement otherwise convergence would fail (we now use an improved normalization for the starting values) Changes from Version 0.40-3 to 0.40-4 [21-Jan-2011] * Fixed issue with ckertype and ckerorder not being propagated in np.singleindex.bw.R * Fixed issue with negative penalties being returned by cv.aic in npregbw (ought to have been +infinity) Changes from Version 0.40-1 to 0.40-3 [23-Jul-2010] * Added random seed (defaults to 42) to npscoefbw to ensure consistent values for optimization for successive invocations on the same data * Fixed glitch in multistarting in npscoefbw whereby multistarting was not working (always returned last computed function value and not the minimum) * Fixed issue for npRmpi where the C code underlying regression cross-validation (code in jksum.c) differs between np and npRmpi (both were correct with the latter being a tad slower, now both use unified code base) * Fixed a scope issue whereby a user would write a function that calls an np/npRmpi command, however, objects passed to the user's function and called by the np/npRmpi command (i.e. such as newdata) cannot be found in the environment yet they exist outside of the function * Fixed issue with bwscaling=TRUE and bwmethod="cv.aic" in npreg Changes from Version 0.40-0 to 0.40-1 [4-Jun-2010] * Added asymptotic standard errors to npindex for the Klein and Spady and Ichimura parameter estimates which, when gradients=TRUE, can be extracted via vcov(foo) where foo is a npsingleindex object (the Z-scores can be obtained via Z<-coef(foo)[-1]/sqrt(diag(vcov(foo)))[-1]) Changes from Version 0.30-9 to 0.40-0 [25-May-2010] * Modified codebase to enable dynamic spawning for interactive sessions in npRmpi * Interactive examples supported in npRmpi Changes from Version 0.30-8 to 0.30-9 [17-May-2010] * Fixed issue where ukertype and okertype were being ignored by npindex * Fixed regression (dating to version 0.30-4) where random.seed=42 was not initialized in functions npcmstest, npdeneqtest, npindexbw, npsdeptest, npqcmstest, npsigtest, npsymtest, npunitest, and npplot * Fixed issue with saving and restoring random seed in npdeptest * Changes to codebase to modify method used to prevent division by zero * New vignette for the npRmpi package (vignette("npRmpi",package="npRmpi")) Changes from Version 0.30-7 to 0.30-8 [20-Apr-2010] * Implemented moment version of metric entropy in npsymtest and npunitest with warnings about their use documented carefully and exceptions trapped and warnings issuing when detected * Cleaned up print/summary output formatting of some functions Changes from Version 0.30-6 to 0.30-7 [15-Feb-2010] * Added function npunitest for entropy-based testing of equality of univariate densities as described in Maasoumi and Racine (2002, 2009) * Updated vignette to reflect new functions (Table 1: np functions) Changes from Version 0.30-5 to 0.30-6 [3-Feb-2010] * Added function npsdeptest for entropy-based testing of nonlinear serial dependence described in Granger, Maasoumi and Racine (2004) * Added function npdeptest for entropy-based testing of nonlinear pairwise dependence described in Maasoumi and Racine (2002) * Added more bootstrap options to npsymtest (now both iid and time-series bootstrapping are supported) * Cleaned up summary formatting in the vignette by adding \usepackage[utf8x]{inputenc} to the Sweave file np.Rnw * Fixed issue with saving and restoring random seed when there was none in the environment Changes from Version 0.30-4 to 0.30-5 [29-Jan-2010] * Added function npdeneqtest for integrated squared difference testing of equality of densities as described in Maasoumi, Li, and Racine (2009), Journal of Econometrics * Save random seed prior to setting seed in certain functions, then restore seed after function completes Changes from Version 0.30-3 to 0.30-4 [27-Jan-2010] * Added function npsymtest for entropy-based testing of symmetry described in Maasoumi and Racine (2009), Econometric Reviews * Added function b.star that automates block length selection for the stationary and circular bootstrap * Cleaned up docs Changes from Version 0.30-2 to 0.30-3 [29-May-2009] * Corrected error in Epanechnikov convolution kernels for fixed and generalized bandwidth objects * Changed default example in npscoef Changes from Version 0.30-1 to 0.30-2 [19-Apr-2009] * min(std,IQR/1.348) is the adaptive measure of spread. We now test for the pathological case where IQR is zero but std > 0 and return std in this instance Changes from Version 0.30-0 to 0.30-1 [29-Jan-2009] * predict now supports bandwidth, density, distribution, conbandwidth, condensity, and condistribution objects * Consistently allow predictions for categorical values outside of support of training data Note that predictions based upon unconditional density objects defined over categorical variables that lie outside the support of the training data may no longer be true probabilities (i.e., as defined over the training data and the extended/augmented support -- their sum may exceed one) and may therefore require renormalization by the user * Fixed a numerical issue which could hinder npregbw()'s cross validation with higher-order kernels * Default nmulti in npplregbw() is now set correctly * Fixed a bug with the ridging routine in npscoefbw(), added ridging to npscoef * Fixed trivial i/o issue with "Multistart 1 of" using npscoefbw() Changes from Version 0.20-4 to 0.30-0 [15-Jan-2009] * Added basic user-interrupt checking for all underlying C code so that either (Rterm) or the `STOP' icon (Rgui) will interrupt all running processes. This has a number of desirable side effects in addition to being able to interrupt C-based processes including i) R no longer showing up as `not responding' under the task manager (Windows) or the activity monitor (Mac OS X) and ii) buffered output now being correctly displayed when using Rgui under Windows and Mac OS X Note that repeated interruption of large jobs can reduce available memory under R - if this becomes an issue (i.e., you get a `cannot allocate...' error under R) simply restart R (i.e., exit then run a fresh R session) * Added a function npseed() that allows the user to set/reset the random seed for all underlying C routines * Fixed a bug that caused npplregbw() to ignore any kernel options for the regression of y on z * Refined certain constants used in the normal-reference density bandwidth rule for increased accuracy * Moved from using the maximum likelihood estimate of variance throughout to the degrees of freedom corrected estimate (all variance estimates now change by the factor (n-1)/n) Changes from Version 0.20-3 to 0.20-4 [19-Nov-2008] * Using an adaptive measure of spread throughout. The scale factor reported for a bandwidth can appear to be small when the standard deviation is inflated due to the presence of outliers. Furthermore, supplying a scale factor of, say, 1.06 for density estimation when there are outliers that inflate the standard deviation may oversmooth rather dramatically in the presence of outliers. We now use the measure found in Silverman (1986, equation (3.30)) which is min(standard deviation, interquartile range/1.349). This robust choice produces expected results for scale factors in the presence of outliers Changes from Version 0.20-2 to 0.20-3 [14-Nov-2008] * Fixed a typo which caused predict() and plot() to abort when called on plregression objects, and which also prevented print() and summary() from printing information about the kernels used when called on plregression objects * Fixed a typo which caused partially linear regressions to crash when out-of-sample responses were provided with evaluation data Changes from Version 0.20-1 to 0.20-2 [02-Nov-2008] * Allow for evaluation outside of discrete support of factors in npksum() and fixed a warning in jksum * Fixed a bug which lead to unpredictable behavior when there were more categorical values for the training data than realisations Changes from Version 0.20-0 to 0.20-1 [13-Aug-2008] * Work-around for scale-factor issues during npregbw() cv when changing the training data Changes from Version 0.14-3 to 0.20-0 [28-Jul-2008] * npksum() now supports an expanded set of kernels (including convolution, derivative and integral), which can be selected via the 'operator' argument * Automatic bandwidth searches are now performed when attempting to evaluate on data without bandwidths. This allows users to combine bandwidth selection and estimation in one step * The npsigtest() interface is brought in line with other functions (S3) * Significance tests can now be performed on npreg() outputs, so npsigtest(modelname) is now supported * Added a vignette and faq. To see the vignette try vignette("np",package="np") * summary() on npconmode() now properly retrieves names from bandwidth objects * Fixed the 6th and 8th order epanechnikov kernels * Fixed some quietness issues * npplot() now returns data upon request for conditional densities * npreg() and npcdens() now take the appropriate limits in some pathological cases * User supplied bandwidths now operate seamlessly with the formula interface Changes from Version 0.14-2 to 0.14-3 [02-May-2008] * Fixed a glitch that only arose when using the `liracine' unordered kernel in the presence of irrelevant variables. The upper bound for numerical search was constrained to be (c-1)/c [that for the aitchisonaitken unordered kernel] but ought to have been 1. The summary output would therefore show a value of lambda hitting the (smaller) upper bound (c-1)/1 when it may have hit the (larger) upper bound 1 Changes from Version 0.14-1 to 0.14-2 [11-Jan-2008] * Relaxed checking tolerances slightly to prevent spurious 'invalid bandwidth' errors * Empty sections were removed from help files * example(foobar) now works again. This was disabled in 0.14-1 at the request of the R maintainers in order to shorten the duration of R CMD check. All examples remained in the help files but due to the presence of `dontrun' they were not run when examples(foobar) is requested. Now a limited subset are run while the full set of examples remain in the documents Changes from Version 0.13-1 to 0.14-1 [18-Dec-2007] * Now use optim for minimisation in single index and smooth coefficient models * Fixed bug in klein-spady objective function * Standard errors are now available in the case of no continuous variables * Summary should look prettier, print additional information * Tidied up lingering issues with out-of-sample data and conditional modes * Fixed error when plotting asymptotic errors with conditional densities * Fixed a bug in npplot() with partially linear regressions and plot.behavior='data' or 'plot-data' * Maximum default number of multistarts is 5 * Least-squares cross-validation of conditional densities uses a new, much faster algorithm * New, faster algorithm for least-squares cross-validation for both local-constant and local linear regressions Note that the estimator has changed somewhat: both cross-validation and the estimator itself use a method of shrinking towards the local constant estimator when singularity would otherwise lead to the breakdown of the estimator. This arises in sparse data settings in conjunction with small bandwidths for one or more regressor * Optimised smooth coefficient code, added ridging * Fixed bug in uniform CDF kernel * Fixed bug where npindexbw() would ignore bandwidth.compute = FALSE and compute bandwidths when supplied with a preexisting bw object * Now can handle estimation out of discrete support * Summary would misreport the values of discrete scale factors which were computed with bwscaling = TRUE Changes from Version 0.12-1 to 0.13-1 [03-May-2007] * Bandwidths are now checked for validity based on their variable and kernel types * np now does a better job of preserving names of some 'y' data * Names of coefficients returned from coef() now match variable names * Fixed some corner cases in npksum() involving the dimensionality of outputs * Fixed deprecation warnings in R 2.5.0 caused by use of $ on atomic objects * Various and sundry bug fixes in npscoef() * npscoef() now handles discrete 'z' data * Predict now accepts the argument 'se.fit', like predict.lm * Fixed bug where incorrect asymptotic standard errors of gradients for regression objects were being displayed in npplot() * Fixed bug where errors of gradients of regression objects were not being returned in matrix form * vcov() now works with partially linear regression objects * Fixed detection of evaluation responses when using the formula interface * Pre-computed bandwidth objects are now provided for some of the more computationally burdensome examples * Added Jeffrey Wooldridge's WAGE1 dataset with qualitative variables (married, female, nonwhite) * Predictions outside of discrete support for regressions and conditional densities are now allowed * Fixed sign issue with scaling of standard errors in the single index model * Fixed error when calculating some bandwidths/scale factors for display purposes * Bug in passing certain arguments to npcdensbw() fixed * Added predict method for qregression objects * Proper normalisation for liracine kernel shown in summary * Fixed output bug ($\hat ~$H) in summary method for sigtest objects * Fixed regression with plotting of bootstrapped errors in perspective plots * npcdist() no longer incorrectly calls npcdens() * Fixed spacing between var name and p-value in significance test summaries Version 0.12-1 [19-Nov-2006] * Initial release of the np package on CRAN