gamma.shape {MASS}R Documentation

Estimate the Shape Parameter of the Gamma Distribution in a GLM Fit


Find the maximum likelihood estimate of the shape parameter of the gamma distribution after fitting a Gamma generalized linear model.


## S3 method for class 'glm':
gamma.shape(object, it.lim = 10,
            eps.max = .Machine$double.eps^0.25, verbose = FALSE, ...)


object Fitted model object from a Gamma family or quasi family with variance = "mu^2".
it.lim Upper limit on the number of iterations.
eps.max Maximum discrepancy between approximations for the iteration process to continue.
verbose If TRUE, causes successive iterations to be printed out. The initial estimate is taken from the deviance.
... further arguments passed to or from other methods.


A glm fit for a Gamma family correctly calculates the maximum likelihood estimate of the mean parameters but provides only a crude estimate of the dispersion parameter. This function takes the results of the glm fit and solves the maximum likelihood equation for the reciprocal of the dispersion parameter, which is usually called the shape (or exponent) parameter.


List of two components

alpha the maximum likelihood estimate
SE the approximate standard error, the square-root of the reciprocal of the observed information.


Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

See Also



clotting <- data.frame(
    u = c(5,10,15,20,30,40,60,80,100),
    lot1 = c(118,58,42,35,27,25,21,19,18),
    lot2 = c(69,35,26,21,18,16,13,12,12))
clot1 <- glm(lot1 ~ log(u), data = clotting, family = Gamma)
## Not run: 
Alpha: 538.13
   SE: 253.60
## End(Not run)
gm <- glm(Days + 0.1 ~ Age*Eth*Sex*Lrn,
          quasi(link=log, variance="mu^2"), quine, start = rep(0,32))
gamma.shape(gm, verbose = TRUE)
## Not run: 
Initial estimate: 1.0603
Iter.  1  Alpha: 1.23840774338543
Iter.  2  Alpha: 1.27699745778205
Iter.  3  Alpha: 1.27834332265501
Iter.  4  Alpha: 1.27834485787226

Alpha: 1.27834
   SE: 0.13452
## End(Not run)
summary(gm, dispersion = gamma.dispersion(gm))  # better summary

[Package MASS version 7.2-33 Index]