Grenander Estimator of a Decreasing or Increasing Density
The function grenander
computes the Grenander estimator
of a one-dimensional decreasing or increasing density.
grenander(F, type=c("decreasing", "increasing"))
F |
an |
type |
specifies whether the distribution is decreasing (the default) or increasing. |
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.
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. |
f.knots |
the corresponding slopes (=density). |
Korbinian Strimmer (http://www.strimmerlab.org).
Grenander, U. (1956). On the theory of mortality measurement, Part II. Skan. Aktuarietidskr, 39, 125–153.
# 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) )
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.