Change log file for ks 1.14.3 -Made small changes to kdde.binned.nd() and binning() to better report small bandwidth errors. -Removed repeated contour levels in .filled.contour() call in plotkde.2d(). -Fixed bug for empty contour regions in plot() method for kde.loctest objects. 1.14.2 -Moved plot3D from Imports to Suggests, so ks can run in environments which can't install its visual functionalities. 1.14.1 -Added weighted estimate for 1D kde(unit.interval=TRUE). -Fixed bug with decreasing cumulative probs in qkde(). -Changed name plot.histde.*d() to plothistde.*d(), gamma.r*() to gamma_r*() to avoid S3 method clashes. 1.14.0 -Systematised code indentation (4 spaces). -Further systematised default bandwidth calculation. -Added new flag grid.clip which excludes data outside of xmin, xmax in kde() etc. for binned estimation. -Fixed bug in kde(unit.interval=TRUE) for 1D data. 1.13.5 -Fixed inconsistency in code and help guide for kms(). -Added kde(density=TRUE) option to force non-negative KDE values. -Fixed bug in 1D kcde(positive=TRUE). 1.13.4 -Removed calls to zero.flag=FALSE. -Fixed in bug in kdr(y=y, pre=FALSE). 1.13.3 -Fixed matrix inverse calculation in Hns.diag(). -Added density ridge segmentation in kdr() and kdr.segment(). -Fixed bug in kdde.grid.3d() which computed the same values for all derivatives. -Added consistent alpha transparency and default colour scale behaviour for plots. -Added 3D kernel support estimate in ksupp() and in plot.ksupp(). -Added pre-sphered optimisation for "unconstr" and "dunconstr" pilots in Hpi() and Hscv() to resolve numerical optimisation difficulties. -Added REPORT=1 to print out progress reports for each iteration for calls to optim(). -Changed to use "BFGS" rather than "Nelder-Mead" in optim() in psifun2.unconstr(). -Fixed bug in Gunconstr.scv() so that Hscv(pilot="unconstr") and Hscv(pilot="dunconstr", deriv.order=0) give same bandwidth. -Added note on help page that zero.flag in predict.kde() is deprecated. 1.13.2 -Fixed bug in ploting group colours in plot.kms(, display="plot3D"). -Reinstated display="rgl" option for 3D KDEs in plot.kms(). -Fixed bug with transposed coordinates in pracma::quiver in plot.kdde(, display="quiver") -Fixed bugs in kde.truncate(), kdde.truncate() for normalisation and for contour levels calculation. -Fixed bugs in contourSizes(), contourProbs() which didn't allow for different grid sizes. -Added colour transparency parameter alpha for colour function in plot methods for histde, kcde, kda, kdde, kde, kde.part, kms objects. 1.13.1 -Added contourProbs to approximate probabilities of level set of KDE. -Changed from OceanView::quiver2D() to pracma::quiver() for quiver plot in plot(,display="quiver"). -Added pracma to Imports. Removed OceanView from Suggests. -Fixed bug for certain missing axis labels in plot.kdde(). -Reduced number of considered mixture models in Hmn(), Hnm.diag(). 1.13.0 -Changed default colour schemes to be based on hcl.colors(). -Fixed bug in hlscv() in calling optimise(). -Fixed bugs in plotkda.1d() and plotkda.2d(). -Fixed bug in calculation of Abramsom bandwidth in kde.sp(). -Fixed bug in kde.balloon.2d() in re-normalising density estimate. -Added pre-scaling option in kde.sp(), kdr(), Hpi.kcde(). -Fixed bug in contour labels in plotkd(d)e.2d(,display="filled.contour"). -Generated datasets quakesf, platesf as sf versions of quake, plate. -Added variable names in output to kde.local.test(). -Added S3 contourLevels method for kcde objects. -Added S3 predict method for kfs objects. -Fixed bug in names field in output in kdr(). -Changed in hlscv() the default minimiser function to stats::bw.ucv(), and default interval search limits. 1.12.0 -Fixed bug in rkde() to take into account weighted KDE. -Fixed bug in contour level calcuations in plot.kde(). -Added names field to kda object in kda(). -Fixed bug in plot.kdde() which always used which.deriv.ind=1, and never passed the col parameter to plot.kde(). -Fixed bug in plot.kcde(display="filled.contour") which didn't apply col or col.fun, and replaced filled.contour() by .filled.contour(). -Fixed bug to reduce default binning grid limits in kde.loc.test(). -Fixed bugs in kda() and plot.kda.*d() to handle correctly factor grouping variables. -Fixed bug in kfs() and plot.kfs() for 1D Wald statistic. -Fixed name labels in plate dataset. -Added plot3D functionality plot(, display="plot3D") since RGL 3D plots face an uncertain future but remain for the moment acessible via plot(, display="rgl"). 1.11.7 -Fixed small bug in help files to comply with R 3.6.3 CMD check. 1.11.6 -Changed dkde() to be an alias for predict.kde(). -Updated default.bgridsize() for d=4 to rep(15,4). -Fixed bug in kdde.binned.nd() to force when keval is a vector to be 1-row matrix. 1.11.5 -Fixed bugs in kde.1d() passing eval.points parameter and which didn't allow unequal class proportions. 1.11.4 -Fixed error report in kde() incorrectly asserting to set "binned=TRUE" for exact estimation. -Fixed bug in line colour in plot.kcde(). -Fixed bug in kde.grid.nd() not passing verbose argument. 1.11.3 -Fixed bug to kda() which set prior.prob values to default sample proportion even when set explicitly differently. -Fixed bug in partition plot for 2D plot.kda(). 1.11.2 -Fixed error in predict.kda() incorrectly assigning class labels. -Replaced dnorm.deriv() by version from J.E.C to compute arbitrary derivatives. -Added verbose option to kde.points(). 1.11.1 -Fixed missing passing of h, H parameters in kde.positive.1d() and kde.positive.2d(). -Fixed bug in kdecopula.de(). -Fixed bug in partition colours in 2D plot.kda(). -Changed default optim.fun="nlm" to optim.fun="optim" everywhere. -Moved rgl, misc3d, OceanView from Imports to Suggests, so ks can run in environments which can't install these visual functionalities. -Fixed inconsistencies in gridsize and bgridsize default values in ks.defaults(). -Added varying.grid.interp.*d() in predict method for non-uniform grids. -Fixed bug in 1D predict.kde() with non-uniform grid (i.e. output from kde(, positive=TRUE)). -Extended limits of grid plotting for in plot.histde(). -Fixed bug in creating factor levels for estimated labels in kda(). -Added air, cardio, hsct, plate, quake, tempb datasets. 1.11.0 -Added multivariate version of rkde(). -Added histogram estimators histde(). -Simplified calculation of default values in kde(), etc. -Changed default flag binned=FALSE to binned=default.bflag. -Fixed estimated group labels calculation in kda(). -Fixed interpolation for d>3 in grid.interp() and predict.kde(). -Added histogram density estimate histde(). -Added kernel density estimate for bounded data kde.boundary(). -Added truncated kernel density estimate kde.truncate(). -Added kernel support estimate ksupp(). -Added kernel partition plot plot.kde.part(). -Added variable kernel density estimates vkde(). -Added quiver plot to plot.kdde() for deriv.order=1. -Added kernel summary curvature kcurv() for deriv.order=2. -Added World Bank data data(worldbank). -Added any dim KDE in kde.grid.nd(). -Changed display="filled.contour" for 2D plots to not give adjacent colour scale bar. -Fixed bug in 1d kde.test() p-value to return scalar. -Fixed bug in interp1d in ks.C which had assigned values outside of estimation array. 1.10.7 -Changed mvtnorm from `Depends' to `Imports' in DESCRIPTION. -Implemented per-block calculation for large sample sizes in kdde(, binned=TRUE). -Fixed small bug in col.fun for plot.kcde(, display="filled.contour2") -Swapped order of computation of CDFs in kroc to prevent possible segmentation faults. -Fixed bug in default bandwidth for kcde(). -Fixed bug in default estimation grid limits for kda.nd(). -Corrected formulas for scalar pilots in gdscalar() to match those in book. -Added feature significance function kfs(). 1.10.6 -Registered native C routines in src/ks.c. -Added kernel mean shift kms(). -Fixed bug in predict.kdde() for vector x for d>2. 1.10.5 -Fixed bug in invisible return values for plot.kda(), plot.kcde(), plot.kdde(), plot.kde(). -Added more detail about eval.points in kde.Rd. -Changed default approx.cont=TRUE in plot methods. -Changed default to compute.cont=TRUE in estimation functions and corresponding plot methods. -Fixed bug in contour plot colours in plot.kdde() for 2D. -Fixed bug in calculation of scalar pilot in gdscalar(). -Fixed bug in calculation of unconstrained SCV pilot in Gunconstr.scv(). 1.10.4 -Fixed bug in plot.kde(,display="slice",abs.cont=) not plotting contours correctly. -Fixed bug in predict.kde(object, ..., x) by adding zero.flag which controls behaviour when x is outside interpolation grid object$eval.points: TRUE = 0, FALSE = object$estimate corr to nearest grid point. 1.10.3 -Fixed bugs in col specification in plot.kde(,disp="persp") and disp="image". -Approx computation in contourLevels(,approx=TRUE) is now default. -Boundary adjustments in binning() moved to C functions linbin*d.ks(). -Grid interpolation functions renamed from find.nearest.gridpts() to grid.interp() and coded in C to increase speed. -Reduced time complexity of loess smoother in kcopula(). 1.10.2 -Improved speed for kde.points(), kdde.points(). -Improved speed for compare(). -Fixed missing xlab, ylab in plot.kde() for 2D KDE. 1.10.1 -Fixed small bug in find.nearest.gridpts when treating edge points. -Modified pre.scale, pre.sphere to use sweep(). -Fixed lower edge interpolation in find.nearest.gridpts.1d(). -Fixed incorrect derivative order in kfe calculation in gdscalar(,binned=TRUE). 1.10.0 -Implemented binned estimation via symconv.1d(), symconv.nd() with unconstrained b/w for kde(), kdde(), kfe(), dmvnorm.deriv.sum(), Hlscv() Hscv(). -Added aliases Hucv(), Hcv.diag(), hucv() for Hlscv(), Hlscv.diag(), h.lscv(). -Added predict method for kda objects. -Fixed inconsistency in plot.kde1d(,col=). -Added 3d exact estimation and 3d plot for kdde(). -Adjusted calls to symconv.1d(), symconv.nd() in drvkde for feature library. -Included calls to RGL plots in help file examples in \donttest{}. -Moved dfltCounts(), drvkde() to feature library. 1.9.5 -Changed DESCRIPTION to comply with CRAN checks (e.g. imports etc.) -Fixed inconsistencies in graphical parameters in plot() functions (e.g. ptcol, cont.col, ...) -Added raster graphics if available for display="image" and "filled.contour2" plots. 1.9.4 -Removed explicit prior calculation of permutation derivative indices in dmvnorm.deriv.sum(). -Fixed small bug in contourLevels.kdde() to make explicit call to predict.kde(). 1.9.3 -Removed copula.grid() and hence dependence on copula package. -Fixed bug in displaying 2D contour level labels for plot.kde() and sorting in contourSizes(). -Added amise=TRUE option to hpi.kcde(). -Modified kroc() to be line with updated mathematical definition. 1.9.2 -Changed binning=FALSE to binned=binned for Hpi(,pilot="dscalar"), Hpi.diag(,pilot="dscalar"). -Fixed bug in binning behaviour in gdscalar(). 1.9.1 -Fixed typos in help files -Added new classes "kcopula" and "kcopula.de" for output from kcopula and kcopula.de to distinguish them from "kcde" and "kde" objects. -Exported matrix.sqrt(). -Added "exp" option for make.grid.ks(). 1.9.0 -Added efficient recursive versions for dmvnorm.deriv(), Sdr(), Sdrv(), nur(), nurs(), mur(), Qr() from Chacon & Duong (2014) Statist Comput. -Fixed bug in Hscv(,binned=TRUE), Hscv.diag(,binned=TRUE) which was still computing unbinned estimators. -Fixed bug in 1-d KDA plot. -Added sensitivity, specificity as output to compare(). -Made small changes to default selectors to be more consistent across selectors. -Fixed bug in point colour in rug plot for plotkda.1d(). -Added Hpi.diag.kcde(). -Added Lpdiff() (Lp distance for two functions) and copula.grid (true copula evaluated on a grid). -Fixed small bug in plotmixt(,draw=FALSE) to actually not draw plots. -Added predict method for kde objects to replace kde.approx(). -Added option to compute 1-d KDE supported on [0,1] kde(,unit.interval=TRUE) which calls kde.unit.interval(). -Changed default axes limits when plotkde.3d(, drawpoints=FALSE) from data range to mean of KDE evaluation range. -Fixed bug in default pilot selector for d>3 data in kda(). -Changed ad hoc argument matching to match.arg(). -Fixed bug in last line of lscv.mat(). -Added binned estimation to Hbcv(), Hbcv.diag(). -Added default binning flag function default.flag(). 1.8.13 -Added boundary density estimator kde.boundary() for compactly supported data. -Added kernel density of copula nd copula density, i.e. kcopula() and kcopula.de(). -Fixed small bug in plot.kcde(disp="slice", abs.cont=!missing), and Hpi.kcde(). -Changed smoothing spline in kroc() to be evaluated on equally spaced grid. -Added thinning option for persp plots plot.kde(thin=), plot.kcde(thin=). 1.8.12 -Added kernel estimators for CDF kcde() and ROC curves kroc(). -Added default plug-in bandwidths to kda(), kcde(), kde(), kdde(), kde.local.test(), kroc(), kde.test(). -Added warning when using non-diagonal bandwidths for binned estimation. -Added plot and contourLevel methods for kdde objects. -Modified plotmixt() to include derivatives. -Added 1-d plug-in selectors hpi(,deriv.order>0). -Merged kda() and kda.kde() into single kda() function. -Changed "kda.kde" object class name to "kda". 1.8.11 -Added progress bars to compare.kda.cv(), compare.kda.diag.cv(). -Corrected critical df from d to 1 in kde.local.test(). 1.8.10 -Fixed small bug in call to contourLevels(approx=) inside kde(). 1.8.9 -Added kde.local.test() for local 2-sample test. -Replaced foreign call to .C("massdist", package="stats") requested by B. Ripley by call to .C("massdist1d", package="ks"). -Changed rug plot in plot.kda.kde() to rug-like plot, similar that in plot.kde.loctest(). 1.8.8 -Changed function header of Hpi.kfe() to be more consistent with Hpi(). -Added option Hpi.kfe(, pilot="dscalar") to ensure scale invariance in p-values. This becomes the default over the previous pilot="unconstr". -Added 1-d option in kde.test() and its required bandwidth hpi.kfe(). -Modified binned=TRUE option in kde.test() so that it is applied only to bandwidth selection, and not the test statistic and its p-value. -Removed default truncation in Hlscv(), Hlscv.diag() for deriv.order=0. 1.8.7 -Further improved speed of kfe(,Sdr.flag=FALSE) by computing unique partial derivatives. -Removed unused function dkde.weights() to compute optimal deconvolution weights, and hence dependence on the kernlab library. -Changed output from kfe(binned=TRUE) to be vector not 1-row matrix. 1.8.6 -Implemented calculation of Lebesgue measure of level sets of contours, contourSizes(). -Implemented probability contour plot for 1-d KDE plot, i.e. analogue to existing 2-d, 3-d contour plot(,disp="slice"). -Added recursive computations kfe(,Sdr.flag=FALSE) which don't compute symmetriser matrices explicitly. These are then called in Hpi(,Sdr.flag=TRUE) and Hscv(,Sdr.flag=FALSE). -Changed pilot="dunconstr" to direct computation rather than indirect eta form. This means that Hpi(,pilot="dunconstr", deriv.order=0) and Hpi(,pilot="unconstr") now give the same result. -Remove pilot="dsamse" option as this was more computation than pilot="dscalar" but with little difference in the result. 1.8.5 -Fully unconstrained pilot selectors pilot="dunconstr" for Hscv(), Hpi() for density derivative estimation. -Unconstrained Hlscv() selector for density derivative estimation. 1.8.4 -Reinstated psi.ns code (more efficient than eta.kfe.y) and SAMSE pilot estimators Hpi(, pilot="samse"). -Edited help manual. 1.8.3 -Added computationally efficient density derivative b/w selectors Hpi(deriv.order=), Hscv(deriv.order=), and their diagonal counterparts Hpi.diag(), Hlscv.diag(). -Added computationally efficient kernel functional estimators in eta.kfe.y() used in kde.test(). -New pilot selectors for density derivatives. -Added abs.cont capability to plot(, disp="filled.contour"). -Removed explicit expressions in psins() for d>2, replaced by eta.kfe() evaluations. -Removed psins() and Theta6() evaluations in gsamse and gamse.scv. -Removed kfold arguments. 1.8.2 -Fixed bug in kde.points.sum() to avoid allocating large matrices for unbalanced sample sizes for x and eval.points. -Fixed bug in dmvnorm.deriv.sum() which had excluded last partition class for double.loop=FALSE. -Added binned options to kde.test(). -Fixed bug for exact estimation in kfe(). -Added plotting colours as function of z-value in plot.kde(, disp="persp"). -Added decoupled calculation for Hlscv(). -Added optim.fun option to select optimiser function in Hpi, Hpi.diag, Hlscv, Hlscv.diag, Hscv, Hscv.diag(). 1.8.1 -Modified p-value calculation for large -ve Z-statistics. -Fixed bug for binned estimation for unconstrained bandwidths for kde(). 1.8.0 -Added density derivative selectors Hpi(,deriv.order=r), Hlscv(,deriv.order=r) for r>0 from J.E. Chacon. -Changed vech(H) terms to vec(H) in AMISE estimators. -Changed default binning gridsize for 3-d data from rep(51,3) to rep(31,3). -Added verbose option to b/w selectors (in double sum) for tracking progress. -Changed LSCV, SCV selectors optimisation from Nelder-Mead to BFGS. -Changed Fortran linear binning code to C (and fixed bugs in Fortran code). -Added modification to linear binning for boundary points. -Removed explicit derivatives in BCV selector optimisation. 1.7.4 -Fixed small bug in partitioning method for kde.points.sum(). 1.7.3 -Changed partitioning method for dmvnorm.deriv.sum() and kde.points.sum(). 1.7.2 -Changed p-value calculation for kde.test(). 1.7.1 -Reinstated single partial derivative of mv normal for scalar variance matrix dmvnorm.deriv.scalar.sum() for use in AMSE pilot plug-in selectors. -More efficient form of kdde(). 1.7.0 -Added KDE-based 2-sample test kde.test(). -Modified output of plotmixt(). -Added "double.loop" option to kfe() for large samples - increases running time, reduces memory. -Modified dmvnorm.deriv.sum() to improve memory memory management for large samples. -Cleaned up code for plug-in bandwidth selectors and kernel functional estimators. -Cleaned up help files. -Disabled kfold b/w selectors. 1.6.13 -Added flag to automatically compute probability contour levels in kde(). 1.6.11 -Added own version of filled contours as option disp="filled.contour2" and different colours for disp="slice" contours. 1.6.10 -Added k-fold b/w selectors. 1.6.9 -Added approximate option in contourLevels(). -Added kdde() kernel density derivative estimators. 1.6.8 -Added 1-d LSCV selector hlscv(). 1.6.7 -Corrected ISE for normal mixtures, from J.E. Chacon. 1.6.6 -Added MISE, AMISE, ISE functions for normal mixtures derivatives. -Changed internal double sum calculations from J.E. Chacon. 1.6.x -1-d binned KDE fix from M.P. Wand. -Streamlined code sharing with feature package (all binning code now contained only in ks). -Reorganised and renamed internal bandwidth selection functions, mostly double sums of normal densities . 1.5.11 -Fixed small bugs in drvkde, vech, Hpi(, pilot="unconstr") 1.5.10 -Added drvkde (kernel density derivative estimator 1-d) from feature using M.P. Wand's code. 1.5.x -Added normal mixture (A)MISE-optimal selectors: hamise.mixt, hmise.mixt, Hamise.mixt, Hmise.mixt. -Added distribution functions for 1-d KDEs: dkde, pdke, qkde, rkde. -Added plug-in selectors for 1-d data (exactly the code for dpik from KernSmooth). For KDE, this is hpi, for KDA, this is hkda(, bw="plugin"). -Made changes to specifying line colour (col rather than lcol) in plot.kde, plot.kda.kde and partition class colour (partcol) in plot.kda.kde. -Added plot3d() capabilities from rgl to 3-d plot - removing own axes drawing functions. -New functions to compute pilot functional estimators hat{psi}_r(g). These are exact, and are more efficient than binned estimators for small samples (~100), and are available in d > 4. 1.4.x -Vignette illustrating 2-d KDE added -Binned estimation implemented for KDE with diagonal selectors and pilot functional estimation with diagonal selectors. -Filled contour plots added as disp=filled option in plot.kde(). -compare.kda.cv() and compare.cv() modified to improve speed. -Hscv.diag() and Hbcv.diag() added for completeness. 1.3.5 -Fixed small bug in compare.kda.cv() and compare.kda.diag.cv(). 1.3.4 -RGL-type plots added for 3-d data. Specification of 3-d contour levels now same order as 2-d contours. 1.3.x -Multivariate (for 3 to 6 dimensions inclusive) bandwidth selectors added for Hpi(), Hpi.diag(), Hlscv(), Hlscv.diag() and Hscv(). NB: because Hbcv() and Hbcv.diag() performed poorly for 2-d, these weren't implemented in higher dimensions. 1.2.x -Package checked by CRAN testers and accepted on the CRAN website. To pass all the necessary checks involved some internal programming changes but has not affected the user interface. -The child mortality data set unicef is used in the examples. 1.1.x -S3 type objects have been introduced. The output from kde() are `kde' objects. The output from kda.kde() and pda.pde() are `dade' objects. Corresponding plot functions are called automatically by invoking `plot'. -Kernel discriminant analysers are now available. Parametric (linear and quadratic) discriminant analysers are accessed using `pda'. -adapt library is no longer required. This was formerly used on the functions for integrated squared error computations ise.mixt() and iset.mixt().