Learn R Programming

VGAM (version 1.1-9)

gammaR: 2-parameter Gamma Regression Family Function

Description

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

Usage

gammaR(lrate = "loglink", lshape = "loglink", irate = NULL,
       ishape = NULL, lss = TRUE, zero = "shape")

Value

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

and vgam.

Arguments

lrate, lshape

Link functions applied to the (positive) rate and shape parameters. See Links for more choices.

irate, ishape

Optional initial values for rate and shape. A NULL means a value is computed internally. If a failure to converge occurs, try using these arguments.

zero, lss

Details at CommonVGAMffArguments.

Author

T. W. Yee

Details

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)\).

References

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.

See Also

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.

Examples

Run this code
# 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)

Run the code above in your browser using DataLab