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

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.

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. 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
# NOT RUN {
# 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