Learn R Programming

modeest (version 2.4.0)

hsm: Half sample mode estimator

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, ...)

Value

A numeric value is returned, the mode estimate.

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.

...

Additional arguments.

Author

D.R. Bickel for the original code, P. Poncet for the slight modifications introduced.

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. and Fruehwirth 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)
mlv(x, method = "hsm", bw = bandwidth, alpha = 2)

Run the code above in your browser using DataLab