Learn R Programming

VGAM (version 0.7-6)

gamma2.ab: 2-parameter Gamma Distribution

Description

Estimates the 2-parameter gamma distribution by maximum likelihood estimation.

Usage

gamma2.ab(lrate = "loge", lshape = "loge",
          erate=list(), eshape=list(),
          irate=NULL, ishape=NULL, expected = TRUE, zero = 2)

Arguments

Value

  • An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm and vgam.

Details

The density function is given by $$f(y) = \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)$.

The argument expected refers to the type of information matrix. The expected information matrix corresponds to Fisher scoring and is numerically better here. The observed information matrix corresponds to the Newton-Raphson algorithm and may be withdrawn from the family function in the future. If both algorithms work then the differences in the results are often not huge.

References

Most standard texts on statistical distributions describe the 2-parameter gamma distribution, e.g., Evans, M., Hastings, N. and Peacock, B. (2000) Statistical Distributions, New York: Wiley-Interscience, Third edition.

See Also

gamma1 for the 1-parameter gamma distribution, gamma2 for another parameterization of the 2-parameter gamma distribution, mckaygamma2 for a bivariate gamma distribution, expexp.

Examples

Run this code
# Essentially a 1-parameter gamma
y = rgamma(n <- 100, shape= exp(1))
fit1 = vglm(y ~ 1, gamma1, trace=TRUE, crit="c")
fit2 = vglm(y ~ 1, gamma2.ab, trace=TRUE, crit="c")
coef(fit1, matrix=TRUE)
Coef(fit1)
coef(fit2, matrix=TRUE)
Coef(fit2)


# Essentially a 2-parameter gamma
y = rgamma(n <- 500, rate=exp(1), shape=exp(2))
fit2 = vglm(y ~ 1, gamma2.ab, trace=TRUE, crit="c")
coef(fit2, matrix=TRUE)
Coef(fit2)
summary(fit2)

Run the code above in your browser using DataLab