grenader | R Documentation |
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 (https://strimmerlab.github.io).
Grenander, U. (1956). On the theory of mortality measurement, Part II. Skan. Aktuarietidskr, 39, 125–153.
ecdf
, gcmlcm
, density
.
# 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) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.