lcd.mle {LogConcDEAD}R Documentation

Compute the maximum likelihood estimator of a log-concave density

Description

This function uses Shor's r-algorithm to compute the maximum likelihood estimator of a log-concave density based on an i.i.d. sample. The estimator is determined by its value at data points.

Usage

lcd.mle (X, initial=NULL, verbose=-1, alpha=5, c=1, sigmatol=10^-8,
 integraltol=10^-4, ytol=10^-4, stepscale=5.1,
stepscale2=2, stepscale3=1.5, stepscale4=1.05, desiredsize=3.3, Jtol=0.001)

Arguments

X Data in R^d, in the form of an n x d numeric matrix
initial Starting point for the r-algorithm. If NULL (the default), a kernel estimate is used.
verbose
-1 (default) prints nothing
0 prints warning messages
n>0 prints summary information every n iterations
alpha Scaling parameter for SolvOpt
c Starting step size
sigmatol Stopping criterion: relative change in sigma (see Details for details)
ytol Stopping criterion: relative change in y (see Details for details)
integraltol Stopping criterion: difference from 1 of integral of exp(h_y) (see Details for details)
stepscale,stepscale2,stepscale3,stepscale4 Parameters for SolvOpt
desiredsize Another parameter for SolvOpt (changing this is not recommended)
Jtol Parameter controlling when Taylor expansion is used in computing the function sigma

Details

The MLE of a log-concave density is of the form

h y(x) = inf{h(x): h concave, h(Xi) >= yi for i = 1, ..., n}

for some y in R^n.

Functions of this form are piecewise linear on the convex hull of X1, ..., Xn, and of the form

min {<b_j, x> - beta_j}

for some vectors b_j and constants beta_j.

This function uses Shor's r-algorithm (an iterative subgradient-based procedure) to minimise over vectors y in R^n the function

sigma(y) = -1/n (y_1 + ... + y_n) + int (h_y(x)) dx.

This is equivalent to finding the MLE.

An implementation of Shor's r-algorithm based on SolvOpt is used.

Computing sigma makes use of the qhull (http:\www.qhull.org) library, adapted from the R implementation in geometry. Code from this package is copied here as it is not currently possible to use compiled code from another package.

Value

x Data (reordered)
logMLE Vector of the log of the MLE at the observation points
NumberOfEvaluations Number of steps, number of function evaluations, number of subgradient evaluations. If the SolvOpt algorithm fails, the first component will be an error message.
MinSigma Minimum value of the objective function
b see Details
beta see Details
chull Vector containing final triangulation of convex hull of data
verts Details of triangulation for use in lcd.eval
vertsoffset Details of triangulation for use in lcd.eval

Note

The authors gratefully acknowledge the assistance of Lutz Duembgen at the University of Bern for his insight into the objective function in lcd.mle

Author(s)

Madeleine Cule mlc40@cam.ac.uk

Robert B. Gramacy

Richard Samworth

References

Cule, M. L., Samworth, R. J., and Stewart, M. I. (2007) Computing the nonparametric maximum likelihood estimator of a log-concave density In preparation

Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T. (1996) The Quickhull algorithm for convex hulls ACM Trans. on Mathematical Software, 22(4) p.469-483 http://www.qhull.org

Kappel, F. and Kuntsevich, A. V. (2000) An implementation of Shor's r-algorithm Computational Optimization and Applications 15(2) p.193-205

http://www.uni-graz.at/imawww/kuntsevich/solvopt/

N. Z. Shor (1985) Minimization methods for nondifferentiable functions Springer-Verlag

See Also

geometry

Examples

## some simple normal data
set.seed(101)
x <- matrix(rnorm(200), ncol=2)
out <- lcd.mle(x)

[Package LogConcDEAD version 1.1-1 Index]