Learn R Programming

VGAM (version 1.1-14)

gamma2: 2-parameter Gamma Regression Family Function

Description

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

Usage

gamma2(lmu = "loglink", lshape = "loglink", imethod = 1,  ishape = NULL,
       parallel = FALSE, deviance.arg = FALSE, zero = "shape")

Arguments

Value

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

and vgam.

Details

This distribution can model continuous skewed responses. The density function is given by $$f(y;\mu,a) = \frac{\exp(-a y / \mu) \times (a y / \mu)^{a-1} \times a}{ \mu \times \Gamma(a)}$$ for \(\mu > 0\), \(a > 0\) and \(y > 0\). Here, \(\Gamma(\cdot)\) is the gamma function, as in gamma. The mean of Y is \(\mu=\mu\) (returned as the fitted values) with variance \(\sigma^2 = \mu^2 / a\). If \(0<a<1\) then the density has a pole at the origin and decreases monotonically as \(y\) increases. If \(a=1\) then this corresponds to the exponential distribution. If \(a>1\) then the density is zero at the origin and is unimodal with mode at \(y = \mu - \mu / a\); this can be achieved with lshape="logloglink".

By default, the two linear/additive predictors are \(\eta_1=\log(\mu)\) and \(\eta_2=\log(a)\). This family function implements Fisher scoring and the working weight matrices are diagonal.

This VGAM family function handles multivariate responses, so that a matrix can be used as the response. The number of columns is the number of species, say, and zero=-2 means that all species have a shape parameter equalling a (different) intercept only.

References

The parameterization of this VGAM family function is the 2-parameter gamma distribution described in the monograph

McCullagh, P. and Nelder, J. A. (1989). Generalized Linear Models, 2nd ed. London: Chapman & Hall.

See Also

gamma1 for the 1-parameter gamma distribution, gammaR for another parameterization of the 2-parameter gamma distribution that is directly matched with rgamma, bigamma.mckay for a bivariate gamma distribution, gammaff.mm for another, expexpff, GammaDist, CommonVGAMffArguments, simulate.vlm, negloglink.

Examples

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

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

Run the code above in your browser using DataLab