Hlscv function

Least-squares cross-validation (LSCV) bandwidth matrix selector for multivariate data

Least-squares cross-validation (LSCV) bandwidth matrix selector for multivariate data

LSCV bandwidth for 1- to 6-dimensional data

Hlscv(x, Hstart, binned, bgridsize, amise=FALSE, deriv.order=0, verbose=FALSE, optim.fun="optim", trunc) Hlscv.diag(x, Hstart, binned, bgridsize, amise=FALSE, deriv.order=0, verbose=FALSE, optim.fun="optim", trunc) hlscv(x, binned=TRUE, bgridsize, amise=FALSE, deriv.order=0, bw.ucv=TRUE) Hucv(...) Hucv.diag(...) hucv(...)

Arguments

  • x: vector or matrix of data values
  • Hstart: initial bandwidth matrix, used in numerical optimisation
  • binned: flag for binned kernel estimation
  • bgridsize: vector of binning grid sizes
  • amise: flag to return the minimal LSCV value. Default is FALSE.
  • deriv.order: derivative order
  • verbose: flag to print out progress information. Default is FALSE.
  • optim.fun: optimiser function: one of nlm or optim
  • trunc: parameter to control truncation for numerical optimisation. Default is 4 for density.deriv>0, otherwise no truncation. For details see below.
  • bw.ucv: flag to use stats::bw.ucv as minimiser function. Default is TRUE.
  • ...: parameters as above

Returns

LSCV bandwidth. If amise=TRUE then the minimal LSCV value is returned too.

References

Bowman, A. (1984) An alternative method of cross-validation for the smoothing of kernel density estimates. Biometrika, 71 , 353-360.

Rudemo, M. (1982) Empirical choice of histograms and kernel density estimators. Scandinavian Journal of Statistics, 9 , 65-78.

Details

hlscv is the univariate LSCV selector of Bowman (1984) and Rudemo (1982). Hlscv is a multivariate generalisation of this. Use Hlscv for unconstrained bandwidth matrices and Hlscv.diag for diagonal bandwidth matrices. Hucv, Hucv.diag and hucv are aliases with UCV (unbiased cross validation) instead of LSCV.

For ks >=>= 1.13.0, the default minimiser in hlscv is based on the UCV minimiser stats::bw.ucv. To reproduce prior behaviour, set bw.ucv=FALSE.

Truncation of the parameter space is usually required for the LSCV selector, for r > 0, to find a reasonable solution to the numerical optimisation. If a candidate matrix H is such that det(H) is not in [1/trunc, trunc]*det(H0) or abs(LSCV(H)) > trunc*abs(LSCV0) then the LSCV(H) is reset to LSCV0 where H0=Hns(x) and LSCV0=LSCV(H0).

For details about the advanced options for binned,Hstart,optim.fun, see Hpi.

See Also

Hbcv, Hpi, Hscv

Examples

data(forbes, package="MASS") Hlscv(forbes) hlscv(forbes$bp)