Minimum distance fitting of univariate distributions, allowing parameters to be held fixed if desired.
mde(x, fun, start, measure = c("CvM", "chi-square", "LAS"), weights = NULL, ...)
a vector or an object of class
function returning a cumulative distribution (for
a named list giving the parameters to be optimized with initial values
weights; see Details.
Additional parameters, either for
The Cramer-von Mises method (
"CvM") minimizes the squared
difference between the theoretical cdf and the empirical cdf at the
data points (for individual data) or the ogive at the knots (for
The modified chi-square method (
"chi-square") minimizes the
modified chi-square statistic for grouped data, that is the squared
difference between the expected and observed frequency within each
The layer average severity method (
"LAS") minimizes the
squared difference between the theoretical and empirical limited
expected value within each group for grouped data.
All sum of squares can be weighted. If arguments
missing, weights default to 1 for
measure = "CvM" and
measure = "LAS"; for
measure = "chi-square", weights
n_j is the frequency
j = 1, \dots, r.
Optimization is performed using
one-dimensional problems the Nelder-Mead method is used and for
multi-dimensional problems the BFGS method, unless arguments named
upper are supplied when
L-BFGS-B is used
method is supplied explicitly.
An object of class
"mde", a list with two components:
the parameter estimates, and
Vincent Goulet firstname.lastname@example.org and Mathieu Pigeon
Klugman, S. A., Panjer, H. H. and Willmot, G. E. (1998), Loss Models, From Data to Decisions, Wiley.
## Individual data example data(dental) mde(dental, pexp, start = list(rate = 1/200), measure = "CvM") ## Example 2.21 of Klugman et al. (1998) data(gdental) mde(gdental, pexp, start = list(rate = 1/200), measure = "CvM") mde(gdental, pexp, start = list(rate = 1/200), measure = "chi-square") mde(gdental, levexp, start = list(rate = 1/200), measure = "LAS") ## Two-parameter distribution example try(mde(gdental, ppareto, start = list(shape = 3, scale = 600), measure = "CvM")) # no convergence ## Working in log scale often solves the problem pparetolog <- function(x, shape, scale) ppareto(x, exp(shape), exp(scale)) ( p <- mde(gdental, pparetolog, start = list(shape = log(3), scale = log(600)), measure = "CvM") ) exp(p$estimate)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.