View source: R/family.univariate.R
gammaR | R Documentation |
Estimates the 2-parameter gamma distribution by maximum likelihood estimation.
gammaR(lrate = "loglink", lshape = "loglink", irate = NULL,
ishape = NULL, lss = TRUE, zero = "shape")
lrate , lshape |
Link functions applied to the (positive) rate and shape
parameters.
See |
irate , ishape |
Optional initial values for rate and shape.
A |
zero , lss |
Details at |
The density function is given by
f(y; rate, shape) = \exp(-rate \times y) \times y^{shape-1} \times rate^{shape}
/ \Gamma(shape)
for shape > 0
, rate > 0
and y > 0
.
Here, \Gamma(shape)
is the gamma
function, as in gamma
.
The mean of Y is \mu = shape/rate
(returned as the fitted values) with variance
\sigma^2 = \mu^2 /shape = shape/rate^2
.
By default, the two linear/additive predictors are
\eta_1 = \log(rate)
and
\eta_2 = \log(shape)
.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
and vgam
.
The parameters rate
and shape
match with the arguments
rate
and shape
of rgamma
.
The order of the arguments agree too.
Here, scale = 1/rate
is used, so one can use negloglink
.
Multiple responses are handled.
If rate = 1
use the family function gamma1
to
estimate shape
.
The reciprocal of a 2-parameter gamma random variate has an
inverse gamma distribution.
One might write a VGAM family function called invgammaR()
to estimate this, but for now, just feed in the reciprocal of the
response.
T. W. Yee
Most standard texts on statistical distributions describe the 2-parameter gamma distribution, e.g.,
Forbes, C., Evans, M., Hastings, N. and Peacock, B. (2011). Statistical Distributions, Hoboken, NJ, USA: John Wiley and Sons, Fourth edition.
gamma1
for the 1-parameter gamma distribution,
gamma2
for another parameterization of
the 2-parameter gamma distribution,
bigamma.mckay
for a bivariate gamma distribution,
gammaff.mm
for another,
expexpff
,
simulate.vlm
,
rgamma
,
negloglink
.
# Essentially a 1-parameter gamma
gdata <- data.frame(y1 = rgamma(n <- 100, shape = exp(1)))
fit1 <- vglm(y1 ~ 1, gamma1, data = gdata, trace = TRUE)
fit2 <- vglm(y1 ~ 1, gammaR, data = gdata, trace = TRUE, crit = "coef")
coef(fit2, matrix = TRUE)
Coef(fit2)
# Essentially a 2-parameter gamma
gdata <- data.frame(y2 = rgamma(n = 500, rate = exp(1), shape = exp(2)))
fit2 <- vglm(y2 ~ 1, gammaR, data = gdata, trace = TRUE, crit = "coef")
coef(fit2, matrix = TRUE)
Coef(fit2)
summary(fit2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.