| invgamma2mr | R Documentation |
Estimates the 2-parameter Inverse Gamma distribution by maximum likelihood estimation.
invgamma2mr(lmu = "loglink",
lshape = logofflink(offset = -2),
parallel = FALSE,
ishape = NULL,
imethod = 1,
zero = "shape")
lmu, lshape |
Link functions applied to the (positives) mu and shape
parameters (called |
parallel |
Same as |
ishape |
Optional initial value for shape, same as
|
imethod |
Same as |
zero |
Numeric or character vector. Position or name(s) of the
parameters/linear predictors to be
modeled as intercept–only. Default is |
The Gamma distribution and the Inverse Gamma distribution are related
as follows:Let X be a random variable distributed as
Gamma (a, \beta), where a > 0
denotes the shape parameter and \beta > 0 is the
scale paramater. Then Y = 1/X is an Inverse Gamma
random variable with parameters scale = a and
shape = 1/\beta.
The Inverse Gamma density function is given by
f(y;\mu, a) = \frac{(a - 1)^{a} \mu^{a}}{\Gamma(a)}y^{-a- 1} \
e^{-\mu(a - 1)/y},
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 - 2)
if a > 2, else is infinite. Thus, the
link function for the shape parameter is
logloglink. Then, by default, the two
linear/additive predictors are \eta_1=\log(\mu),
and \eta_2=\log(a), i.e in the VGLM context,
\eta = (log(\mu), loglog(a)
This VGAM family function handles multiple reponses by
implementing Fisher scoring and unlike
gamma2, the working-weight matrices
are not diagonal.
The Inverse Gamma distribution is right-skewed and either for small values
of a (plus modest \mu) or very large values of
\mu (plus moderate a > 2), the density has
values too close to zero.
An object of class "vglmff"
(see vglmff-class).
The object is used by modelling functions
such as vglm
and vgam.
Note that zero can be a numeric or a character
vector specifying the position of the names
(partially or not) of the linear predictor modeled as intercept only.
In this family function such names are
c("mu", "shape").
Numeric values can be entered as usual.
See CommonVGAMffArguments
for further details.
The response must be strictly positive.
If mu and shape are vectors, then rinvgamma(n = n,
shape = shape, scale = mu/(shape - 1) will generate random inverse gamma
variates of this parameterization, etc.;
see invgammaDist.
Given the math relation between the Gamma and the Inverse Gamma distributions, the parameterization of this VGAM family function underlies on the parametrization of the 2-parameter gamma distribution described in the monograph
Victor Miranda and T. W. Yee
McCullagh, P. and Nelder, J. A. (1989) Generalized Linear Models, 2nd ed. London, UK. Chapman & Hall.
invgammaDist,
gamma2 for the 2-parameter gamma distribution,
GammaDist,
CommonVGAMffArguments,
#------------------------------------------------------------------------#
# Essentially fitting a 2-parameter inverse gamma distribution
# with 2 responses.
set.seed(101)
y1 = rinvgamma(n = 500, scale = exp(2.0), shape = exp(2.0))
y2 = rinvgamma(n = 500, scale = exp(2.5), shape = exp(2.5))
gdata <- data.frame(y1, y2)
fit1 <- vglm(cbind(y1, y2) ~ 1,
family = invgamma2mr(zero = NULL,
# OPTIONAL INITIAL VALUE
# ishape = exp(2),
imethod = 1),
data = gdata, trace = TRUE)
Coef(fit1)
c(Coef(fit1), log(mean(gdata$y1)), log(mean(gdata$y2)))
summary(fit1)
vcov(fit1, untransform = TRUE)
#------------------------------------------------------------------------#
# An example including one covariate.
# Note that the x2 affects the shape parameter, which implies that both,
# 'mu' and 'shape' are affected.
# Consequently, zero must be set as NULL !
x2 <- runif(1000)
gdata <- data.frame(y3 = rinvgamma(n = 1000,
scale = exp(2.0),
shape = exp(2.0 + x2)))
fit2 <- vglm(y3 ~ x2,
family = invgamma2mr(lshape = "loglink", zero = NULL),
data = gdata, trace = TRUE)
coef(fit2, matrix = TRUE)
summary(fit2)
vcov(fit2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.