Kernel density derivative estimate
kdde.RdKernel density derivative estimate for 1- to 6-dimensional data.
Usage
kdde(x, H, h, deriv.order=0, gridsize, gridtype, xmin, xmax, supp=3.7,
eval.points, binned, bgridsize, positive=FALSE, adj.positive, w,
deriv.vec=TRUE, verbose=FALSE)
kcurv(fhat, compute.cont=TRUE)
# S3 method for class 'kdde'
predict(object, ..., x)Arguments
- x
matrix of data values
- H,h
bandwidth matrix/scalar bandwidth. If these are missing,
Hpiorhpiis called by default.- deriv.order
derivative order (scalar)
- gridsize
vector of number of grid points
- gridtype
not yet implemented
- xmin,xmax
vector of minimum/maximum values for grid
- supp
effective support for standard normal
- eval.points
vector or matrix of points at which estimate is evaluated
- binned
flag for binned estimation
- bgridsize
vector of binning grid sizes
- positive
flag if data are positive (1-d, 2-d). Default is FALSE.
- adj.positive
adjustment applied to positive 1-d data
- w
vector of weights. Default is a vector of all ones.
- deriv.vec
flag to compute all derivatives in vectorised derivative. Default is TRUE. If FALSE then only the unique derivatives are computed.
- verbose
flag to print out progress information. Default is FALSE.
- compute.cont
flag for computing 1% to 99% probability contour levels. Default is TRUE.
- fhat
object of class
kddewithderiv.order=2- object
object of class
kdde- ...
other parameters
Value
A kernel density derivative estimate is an object of class
kdde which is a list with fields:
- x
data points - same as input
- eval.points
vector or list of points at which the estimate is evaluated
- estimate
density derivative estimate at
eval.points- h
scalar bandwidth (1-d only)
- H
bandwidth matrix
- gridtype
"linear"
- gridded
flag for estimation on a grid
- binned
flag for binned estimation
- names
variable names
- w
vector of weights
- deriv.order
derivative order (scalar)
- deriv.ind
martix where each row is a vector of partial derivative indices
Details
For each partial derivative, for grid estimation, the estimate is a
list whose elements
correspond to the partial derivative indices in the rows of deriv.ind.
For points estimation, the estimate is a matrix whose columns correspond to
the rows of deriv.ind.
If the bandwidth H is missing from kdde, then
the default bandwidth is the plug-in selector
Hpi. Likewise for missing h.
The effective support, binning, grid size, grid range, positive
parameters are the same as kde.
The summary curvature is computed by kcurv, i.e.
$$\hat{s}(\bold{x})= - \bold{1}\{\mathsf{D}^2 \hat{f}(\bold{x}) <
0\} \mathrm{abs}(|\mathsf{D}^2 \hat{f}(\bold{x})|)$$ where \(\mathsf{D}^2
\hat{f}(\bold{x})\) is the kernel Hessian matrix
estimate. So \(\hat{s}\) calculates the absolute value of
the determinant of the Hessian matrix and whose sign is the opposite of
the negative definiteness indicator.
Examples
set.seed(8192)
x <- rmvnorm.mixt(1000, mus=c(0,0), Sigmas=invvech(c(1,0.8,1)))
fhat <- kdde(x=x, deriv.order=1) ## gradient [df/dx, df/dy]
predict(fhat, x=x[1:5,])
#> [,1] [,2]
#> [1,] 0.08455865 -0.03043875
#> [2,] 0.06752571 -0.04804689
#> [3,] -0.05297611 -0.09152648
#> [4,] 0.18093462 -0.20108890
#> [5,] -0.19777717 0.20332981
## See other examples in ? plot.kdde