R: The Empirical Lientz Function and The Lientz Mode Estimator

lientz {modeest} | R Documentation

## The Empirical Lientz Function and The Lientz Mode Estimator

### Description

The Lientz mode estimator is nothing but the value minimizing the empirical Lientz function.
A 'plot' and a 'print' methods are provided.

### Usage

    lientz(x,
           bw = NULL)

      ## S3 method for class 'lientz'
    mlv(x,
        bw = NULL,
        abc = FALSE,
        par = shorth(x),
        optim.method = "BFGS",
        ...)

      ## S3 method for class 'lientz'
    plot(x,
         zoom = FALSE,
         ...)

      ## S3 method for class 'lientz'
    print(x,
          digits = NULL,
          ...)

### Arguments

`x` | numeric (vector of observations) or an object of class `"lientz"`.
`bw` | numeric. The smoothing bandwidth to be used. Should belong to (0, 1). Parameter 'beta' in Lientz (1970) function.
`abc` | logical. If `FALSE` (the default), the Lientz empirical function is minimised using `optim`.
`par` | numeric. The initial value used in `optim`.
`optim.method` | character. If `abc = FALSE`, the method used in `optim`.
`zoom` | logical. If `TRUE`, one can zoom on the graph created.
`digits` | numeric. Number of digits to be printed.
`...` | if `abc = FALSE`, further arguments to be passed to `optim`, or further arguments to be passed to `plot.default`.

### Details

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.

### Value

`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.

### Note

The user should preferentially call `mlv.lientz` through `mlv(x, method = "lientz", ...)`. This returns an object of class `mlv`.

### Author(s)

P. Poncet

### References

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

### See Also

`mlv` for general mode estimation; `shorth` for the shorth estimate of the mode

### Examples

    # 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))]
    M <- mlv(x, method = "lientz", bw = 0.2)
    print(M)
    plot(M)

    # Bimodal distribution
    x <- c(rnorm(1000,5,1), rnorm(1500, 22, 3))
    f <- lientz(x, 0.1)
    plot(f)

[Package modeest version 2.1 Index]