gamma2 {VGAM} | R Documentation

## 2-parameter Gamma Distribution

### Description

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

### Usage

    gamma2(lmu = "loge", lshape = "loge",
           emu = list(), eshape = list(),
           method.init = 1, deviance.arg = FALSE,
           ishape = NULL, zero = -2)

### Arguments

`lmu, lshape` | Link functions applied to the (positive) mu and shape parameters (called mu and shape respectively). See `Links` for more choices.
`emu, eshape` | List. Extra argument for each of the links. See `earg` in `Links` for general information.
`ishape` | Optional initial value for shape. A `NULL` means a value is computed internally. If a failure to converge occurs, try using this argument. This argument is ignored if used within `cqo`; see the `iShape` argument of `qrrvglm.control` instead.
`method.init` | An integer with value `1` or `2` which specifies the initialization method for the mu parameter. If failure to converge occurs try another value (and/or specify a value for `ishape`).
`deviance.arg` | Logical. If `TRUE`, the deviance function is attached to the object. Under ordinary circumstances, it should be left alone because it really assumes the shape parameter is at the maximum likelihood estimate. Consequently, one cannot use that criterion to minimize within the IRLS algorithm. It should be set `TRUE` only when used with `cqo` under the fast algorithm.
`zero` | Integer valued vector, usually assigned -2 or 2 if used at all. Specifies which of the two linear/additive predictors are modelled as an intercept only. By default, the shape parameter (after `lshape` is applied) is modelled as a single unknown number that is estimated. It can be modelled as a function of the explanatory variables by setting `zero=NULL`. A negative value means that the value is recycled, so setting -2 means all shape parameters are intercept only.

### Details

This distribution can model continuous skewed responses. The density function is given by

f(y;mu,shape) = exp(-shape * y / mu) y^(shape-1) shape^(shape) / [mu^(shape) * gamma(shape)]

for mu > 0, shape > 0 and y > 0. Here, gamma() 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 / shape. If 0<shape<1 then the density has a pole at the origin and decreases monotonically as y increases. If shape=1 then this corresponds to the exponential distribution. If shape>1 then the density is zero at the origin and is unimodal with mode at y = mu - mu / shape; this can be achieved with `lshape="loglog"`.

By default, the two linear/additive predictors are eta1=log(mu) and eta2=log(shape). 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.

### Value

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

### Note

The response must be strictly positive. A moment estimator for the shape parameter may be implemented in the future.

If `mu` and `shape` are vectors, then `rgamma(n=n, shape=shape, scale=mu/shape)` will generate random gamma variates of this parameterization, etc.; see `GammaDist`.

For `cqo` and `cao`, taking the logarithm of the response means (approximately) a `gaussianff` family may be used on the transformed data.

### Author(s)

T. W. Yee

### 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, `gamma2.ab` for another parameterization of the 2-parameter gamma distribution, `mckaygamma2` for a bivariate gamma distribution, `expexp`, `GammaDist`, `golf`.

### Examples

    # 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, 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, trace=TRUE, crit="c")
    coef(fit2, matrix=TRUE)
    Coef(fit2)
    summary(fit2)

[Package VGAM version 0.7-9 Index]