lcd.mle {LogConcDEAD} | R Documentation |
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.
lcd.mle (X, weights=rep(1/nrow(X),nrow(X)), y=initialy(X), 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)
X |
Data in R^d, in the form of an n x d numeric matrix | ||||||
weights |
weights w_i such that the computed estimator maximizes w_1 f(X_1) + ... + w_n f(X_n) | ||||||
y |
Starting point for the r-algorithm. If none given, a kernel estimate is used. | ||||||
verbose |
| ||||||
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 |
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.
x |
Data (reordered) |
w |
Weights |
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 |
The authors gratefully acknowledge the assistance of Lutz Duembgen at the University of Bern for his insight into the objective function in lcd.mle.
Currently data not in general position are not supported.
Madeleine Cule mlc40@cam.ac.uk
Robert B. Gramacy
Richard Samworth
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
## some simple normal data set.seed(101) x <- matrix(rnorm(200), ncol=2) out <- lcd.mle(x)