| hsm {modeest} | R Documentation |
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).
hsm(x,
bw = NULL,
k,
tie.action = "mean",
tie.limit = 0.05,
...)
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. |
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.
A numeric value is returned, the mode estimate.
The user should preferentially call hsm through
mlv(x, method = "hsm", ...).
This returns an object of class mlv.
D.R. Bickel for the original code,
Paul Poncet paulponcet@yahoo.fr for the slight modifications introduced.
mlv for general mode estimation;
venter for the Venter mode estimate
# 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)