R: Grenander Estimator of a Decreasing or Increasing Density
grenader
R Documentation
Grenander Estimator of a Decreasing or Increasing Density
Description
The function grenander computes the Grenander estimator
of a one-dimensional decreasing or increasing density.
Usage
grenander(F, type=c("decreasing", "increasing"))
Arguments
F
an ecdf containing the empirical cumulative density.
type
specifies whether the distribution is decreasing (the default) or increasing.
Details
The Grenander (1956) density estimator is given by the slopes of the
least concave majorant (LCM) of the empirical distribution function (ECDF).
It is a decreasing piecewise-constant function and can be shown to be the
non-parametric maximum likelihood estimate (NPMLE) under the assumption
of a decreasing density (note that the ECDF is the NPMLE without
this assumption). Similarly, an increasing density function is obtained
by using the greatest convex minorant (GCM) of the ECDF.
Value
A list of class grenander with the following components:
F
the empirical distribution function specified as input.
x.knots
x locations of the knots of the least concave majorant of the ECDF.
F.knots
the corresponding y locations of the least concave majorant of the ECDF.
Grenander, U. (1956). On the theory of mortality measurement, Part II.
Skan. Aktuarietidskr,
39, 125–153.
See Also
ecdf, gcmlcm, density.
Examples
# load "fdrtool" library
library("fdrtool")
# samples from random exponential variable
z = rexp(30,1)
e = ecdf(z)
g = grenander(e)
g
# plot ecdf, concave cdf, and Grenander density estimator (on log scale)
plot(g, log="y")
# for comparison the kernel density estimate
plot(density(z))
# area under the Grenander density estimator
sum( g$f.knots[-length(g$f.knots)]*diff(g$x.knots) )