fitdistr {MASS}  R Documentation 
Maximumlikelihood fitting of univariate distributions, allowing parameters to be held fixed if desired.
fitdistr(x, densfun, start, ...)
x 
A numeric vector. 
densfun 
Either a character string or a function returning a density evaluated
at its first argument.
Distributions "beta" , "cauchy" , "chisquared" ,
"exponential" , "f" , "gamma" , "geometric" ,
"lognormal" , "lognormal" , "logistic" ,
"negative binomial" , "normal" , "Poisson" ,
"t" and "weibull" are recognised, case being ignored.

start 
A named list giving the parameters to be optimized with initial values. This can be omitted for some of the named distributions and must be for others (see Details). 
... 
Additional parameters, either for densfun or for optim .
In particular, it can be used to specify bounds via lower or
upper or both. If arguments of densfun (or the density
function corresponding to a characterstring specification) are included
they will be held fixed.

For the Normal, logNormal, exponential and Poisson distributions the
closedform MLEs (and exact standard errors) are used, and
start
should not be supplied.
For all other distributions, direct optimization of the loglikelihood
is performed using optim
. The estimated standard
errors are taken from the observed information matrix, calculated by a
numerical approximation. For onedimensional problems the NelderMead
method is used and for multidimensional problems the BFGS method,
unless arguments named lower
or upper
are supplied when
LBFGSB
is used or method
is supplied explicitly.
For the "t"
named distribution the density is taken to be the
locationscale family with location m
and scale s
.
For the following named distributions, reasonable starting values will
be computed if start
is omitted or only partially specified:
"cauchy"
, "gamma"
, "logistic"
,
"negative binomial"
(parametrized by mu
and
size
), "t"
and "weibull"
. Note that these
starting values may not be good enough if the fit is poor: in
particular they are not resistant to outliers unless the fitted
distribution is longtailed.
There are print
, coef
and
logLik
methods for class "fitdistr"
.
An object of class "fitdistr"
, a list with three components,
estimate 
the parameter estimates, 
sd 
the estimated standard errors, and 
loglik 
the loglikelihood. 
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.
set.seed(123) x < rgamma(100, shape = 5, rate = 0.1) fitdistr(x, "gamma") ## now do this directly with more control. fitdistr(x, dgamma, list(shape = 1, rate = 0.1), lower = 0.01) set.seed(123) x2 < rt(250, df = 9) fitdistr(x2, "t", df = 9) ## allow df to vary: not a very good idea! fitdistr(x2, "t") ## now do fixeddf fit directly with more control. mydt < function(x, m, s, df) dt((xm)/s, df)/s fitdistr(x2, mydt, list(m = 0, s = 1), df = 9, lower = c(Inf, 0)) set.seed(123) x3 < rweibull(100, shape = 4, scale = 100) fitdistr(x3, "weibull") set.seed(123) x4 < rnegbin(500, mu = 5, theta = 4) fitdistr(x4, "Negative Binomial") # R only