R-package for fast, easy, and reliable maximum likelihood estimation for a selection of parametric univariate densities. In addition to basic estimation capabilities, this package support visualization through
qqmlplot, model selection by
BIC, confidence sets through the parametric bootstrap with
bootstrapml, and convenience functions such as the density, distribution function, quantile function, and random sampling at the estimated distribution parameters.
Use the following command from inside
The core of
univariateML are the
ml*** functions, where
*** is a distribution suffix such as
Now we can visually assess the fit of the Weibull model to the
egypt data with a plot.
Analytic formulae for the maximum likelihood estimates are used whenever they exist. Most
ml*** functions without analytic solutions have a custom made Newton-Raphson solver. These can be much faster than a naïve solution using
optim. For example,
mlbeta has a large speedup over the naïve solution using
# install.packages("microbenchmark") set.seed(313) x <- rbeta(500, 2, 7) microbenchmark::microbenchmark( univariateML = univariateML::mlbeta(x), naive = nlm(function(p) -sum(dbeta(x, p, p, log = TRUE)), p = c(1, 1))) #> Unit: microseconds #> expr min lq mean median uq max neval #> univariateML 864.2 1102.90 1305.743 1192.30 1340.95 6007.9 100 #> naive 36398.0 39097.35 41108.804 40530.15 43035.50 50693.3 100
The maximum likelihood estimators in this package have all been subject to testing, see the
tests folder for details.
For an overview of the package and its features see the overview vignette. For a list of implemented densities see the start of the details vignette. For an illustration of how this package can make an otherwise long and laborious process much simpler, see the copula vignette.