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