lcd.weights {LogConcDEAD}R Documentation

Compute the maximum weighted likelihood estimator of a log-concave density

Description

This function uses Shor's r-algorithm to compute arg max w_1 p(X_1) + ... + w_n p(X_n) subject to p a log-concave density, the maximum weighted likelihood estimator of a log-concave density. The estimator is determined by its value at data points.

Usage

lcd.weights(X, weights=NULL, 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
weights Weights (must be non-zero). Will be renormalized to sum to 1. If NULL, 1/n for all n will be used. Note that this is the same as lcd.mle.
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 estimator 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) = - (w_1 y_1 + ... + w_n y_n) + int (h_y(x)) dx.

This is equivalent to the original prob

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

Computing sigma makes use of the qhull (http:\www.qhull.org) library, via 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)
w Weights
logMLE Vector of the log of the estimator 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, with randomly selected weights
set.seed(101)
x <- matrix(rnorm(200), ncol=2)
w <- runif(100)
w <- w/sum(w)
out <- lcd.weights(x,w)

[Package LogConcDEAD version 1.1-1 Index]