[R] find parameters for a gamma distribution
Thomas Petzoldt
thpe at hhbio.wasser.tu-dresden.de
Wed Jan 5 23:56:58 CET 2005
Andrew Collier wrote:
> hello,
>
> i have just started exploring R as an alternative to matlab for data analysis. so
> +far everything is _very_ promising. i have a question though regarding parameter
> +estimation. i have some data which, from a histogram plot, appears to arise from
> +a gamma distribution. i gather that you can fit the data to the distribution
> +using glm(). i am just not quite sure how this is done in practice... so here is
> +a simple example with artificial data:
>
> d <- rgamma(100000, 20, scale = 2)
> h <- hist(d, breaks = c(seq(10, 80, 2), 100))
>
[...]
The help page of ?dgamma says:
"The mean and variance are E(X) = a*s and Var(X) = a*s^2."
So, to estimate the parameters in your example, try the following:
> d <- rgamma(100000, 20, scale = 2)
> var(d)/mean(d)
[1] 1.992091
> mean(d)^2/var(d)
[1] 20.09559
... and you may use these as start values, see ?fitdistr, e.g
> fitdistr(d, dgamma, list(shape = 20.1, scale = 1.99))
or simply
> fitdistr(d, "gamma")
Hint: scale=1/rate
You mentioned "glm", but this is something completely different. It is
used to fit generalized linear models, see the extra chapter no. 31 of
Crawley's book on:
http://www.bio.ic.ac.uk/research/mjcraw/statcomp/chapters.htm
Thomas P.
More information about the R-help
mailing list