2-parameter Gamma Regression Family Function
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 * y) y^(shape-1) 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
eta1 = log(rate) and
eta2 = 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,
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.