Learn R Programming

ks (version 1.8.11)

Hpi: Plug-in bandwidth selector

Description

Plug-in bandwidth for for 1- to 6-dimensional data.

Usage

Hpi(x, nstage=2, pilot="samse", pre="sphere", Hstart, binned=FALSE, 
    bgridsize, amise=FALSE, deriv.order=0, verbose=FALSE, optim.fun="nlm",
    Sdr.flag=FALSE)
Hpi.diag(x, nstage=2, pilot="samse", pre="scale", Hstart, binned=FALSE, 
    bgridsize, amise=FALSE, deriv.order=0, verbose=FALSE, optim.fun="nlm")
hpi(x, nstage=2, binned=TRUE, bgridsize)

Arguments

x
vector or matrix of data values
nstage
number of stages in the plug-in bandwidth selector (1 or 2)
pilot
"amse" = AMSE pilot bandwidths "samse" = single SAMSE pilot bandwidth "unconstr" = single unconstrained pilot bandwidth "dscalar" = single pilot bandwidth for deriv.order > 0 "dunconstr"
pre
"scale" = pre.scale, "sphere" = pre.sphere
Hstart
initial bandwidth matrix, used in numerical optimisation
binned
flag for binned kernel estimation. Default is FALSE.
bgridsize
vector of binning grid sizes
amise
flag to return the minimal scaled PI value
deriv.order
derivative order
verbose
flag to print out progress information. Default is FALSE.
optim.fun
optimiser function: one of nlm or optim.
Sdr.flag
flag to compute the symmetrizer matrix explicitly for pilot bandwidths for deriv.order>0. Default is FALSE.

Value

  • Plug-in bandwidth. If amise=TRUE then the minimal scaled PI value is returned too.

Details

hpi is the univariate plug-in selector of Wand & Jones (1994), i.e. it is exactly the same as KernSmooth's dpik. Hpi is a multivariate generalisation of this. Use Hpi for full bandwidth matrices and Hpi.diag for diagonal bandwidth matrices.

For AMSE pilot bandwidths, see Wand & Jones (1994). For SAMSE pilot bandwidths, see Duong & Hazelton (2003). The latter is a modification of the former, in order to remove any possible problems with non-positive definiteness. Unconstrained pilot bandwidths are from Chacon & Duong (2010).

For d = 1, 2, 3, 4 and binned=TRUE, estimates are computed over a binning grid defined by bgridsize. Otherwise it's computed exactly. If Hstart is not given then it defaults to Hns(x, deriv.order=r). If Sdr.flag=FALSE, then symmetriser matrices are not computed explicitly but indirectly in a loop of permutations. The loop can make execution times long, but avoid the memory problems for e.g., d=4, deriv.order=2.

References

Chacon, J.E. & Duong, T. (2010) Multivariate plug-in bandwidth selection with unconstrained pilot matrices. Test, 19, 375-398. Duong, T. & Hazelton, M.L. (2003) Plug-in bandwidth matrices for bivariate kernel density estimation. Journal of Nonparametric Statistics, 15, 17-30. Sheather, S.J. & Jones, M.C. (1991) A reliable data-based bandwidth selection method for kernel density estimation. Journal of the Royal Statistical Society, Series B, 53, 683-690. Wand, M.P. & Jones, M.C. (1994) Multivariate plugin bandwidth selection. Computational Statistics, 9, 97-116.

See Also

Hbcv, Hlscv, Hscv

Examples

Run this code
data(unicef)
Hpi(unicef, binned=TRUE)
Hpi(unicef, pilot="dscalar")
hpi(unicef[,1])

Run the code above in your browser using DataLab