The empirical Lientz function and the Lientz mode estimator
The Lientz mode estimator is nothing but the value minimizing the empirical Lientz function. A 'plot' and a 'print' methods are provided.
lientz(x, bw = NULL) ## S3 method for class 'lientz' plot(x, zoom = FALSE, ...) ## S3 method for class 'lientz' print(x, digits = NULL, ...) ## S3 method for class 'lientz' mlv(x, bw = NULL, abc = FALSE, par = shorth(x), optim.method = "BFGS", ...)
x |
numeric (vector of observations) or an object of class |
bw |
numeric. The smoothing bandwidth to be used. Should belong to (0, 1). Parameter 'beta' in Lientz (1970) function. |
zoom |
logical. If |
... |
if |
digits |
numeric. Number of digits to be printed. |
abc |
logical. If |
par |
numeric. The initial value used in |
optim.method |
character. If |
The Lientz function is the smallest non-negative quantity S(x,b),
where b = bw
, such that
F(x+S(x,b)) - F(x-S(x,b)) >= b.
Lientz (1970) provided a way to estimate S(x,b); this estimate is what we call the empirical Lientz function.
lientz
returns an object of class c("lientz", "function")
;
this is a function with additional attributes:
x the x
argument
bw the bw
argument
call the call which produced the result
mlv.lientz
returns a numeric value, the mode estimate.
If abc = TRUE
, the x
value minimizing the Lientz empirical
function is returned. Otherwise, the optim
method is
used to perform minimization, and the attributes: 'value', 'counts',
'convergence' and 'message', coming from the optim
method, are added to the result.
The user may call mlv.lientz
through
mlv(x, method = "lientz", ...)
.
Lientz B.P. (1969). On estimating points of local maxima and minima of density functions. Nonparametric Techniques in Statistical Inference (ed. M.L. Puri, Cambridge University Press, p.275-282.
Lientz B.P. (1970). Results on nonparametric modal intervals. SIAM J. Appl. Math., 19:356-366.
Lientz B.P. (1972). Properties of modal intervals. SIAM J. Appl. Math., 23:1-5.
# Unimodal distribution x <- rbeta(1000,23,4) ## True mode betaMode(23, 4) ## Lientz object f <- lientz(x, 0.2) print(f) plot(f) ## Estimate of the mode mlv(f) # optim(shorth(x), fn = f) mlv(f, abc = TRUE) # x[which.min(f(x))] mlv(x, method = "lientz", bw = 0.2) # Bimodal distribution x <- c(rnorm(1000,5,1), rnorm(1500, 22, 3)) f <- lientz(x, 0.1) plot(f)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.