Learn R Programming

modeest (version 1.06)

hsm: Half Sample Mode

Description

This function computes the Robertson-Cryer mode estimator described in Robertson and Cryer (1974), also called half sample mode (if bw = 1/2) or fraction sample mode (for some other bw) by Bickel (2006).

Usage

hsm(x, 
    bw = NULL, 
    k, 
    tie.action = "mean", 
    tie.limit = 0.05, 
    ...)

Arguments

x
numeric. Vector of observations.
bw
numeric or function. The bandwidth to be used. Should belong to (0, 1].
k
numeric. See 'Details'.
tie.action
character. The action to take if a tie is encountered.
tie.limit
numeric. A limit deciding whether or not a warning is given when a tie is encountered.
...
further arguments.

Value

  • A numeric value is returned, the mode estimate.

Details

The modal interval, i.e. the shortest interval among intervals containing k+1 observations, is computed iteratively, until only one value is found, the mode estimate. At each step $i$, one takes k = ceiling(bw*n) - 1, where n is the length of the modal interval computed at step $i-$1. If bw is of class "function", then k = ceiling(bw(n)) - 1 instead.

References

  • Robertson T. and Cryer J.D. (1974). An iterative procedure for estimating the mode.J. Amer. Statist. Assoc.,69(348):1012-1016.
  • Bickel D.R. et Fr�hwirth R. (2006). On a Fast, Robust Estimator of the Mode: Comparisons to Other Robust Estimators with Applications.Computational Statistics and Data Analysis,50(12):3500-3530.

See Also

mlv for general mode estimation; venter for the Venter mode estimate

Examples

Run this code
# Unimodal distribution
x <- rweibull(10000, shape = 3, scale = 0.9)
## True mode
weibullMode(shape = 3, scale = 0.9)
## Estimate of the mode
bandwidth <- function(n, alpha) {1/n^alpha}
hsm(x, bw = bandwidth, alpha = 2)
M <- mlv(x, method = "hsm", bw = bandwidth, alpha = 2)
print(M)
plot(M)

Run the code above in your browser using DataLab