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.