family                 package:stats                 R Documentation

Family Objects for Models

Description:

     Family objects provide a convenient way to specify the details of
     the models used by functions such as 'glm'.  See the documentation
     for 'glm' for the details on how such model fitting takes place.

Usage:

     family(object, ...)

     binomial(link = "logit")
     gaussian(link ="identity")
     Gamma(link = "inverse")
     inverse.gaussian(link = "1/mu^2")
     poisson(link = "log")
     quasi(link = "identity", variance = "constant")
     quasibinomial(link = "logit")
     quasipoisson(link = "log")

Arguments:

    link: a specification for the model link function. The 'gaussian'
          family accepts the links '"identity"', '"log"' and
          '"inverse"'; the 'binomial' family the links '"logit"',
          '"probit"', '"log"' and '"cloglog"' (complementary log-log);
          the 'Gamma' family the links '"inverse"', '"identity"' and
          '"log"'; the 'poisson' family the links '"log"',
          '"identity"',  and '"sqrt"' and the 'inverse.gaussian' family
          the links '"1/mu^2"', '"inverse"', '"inverse"' and '"log"'.

          The 'quasi' family allows the links '"logit"', '"probit"',
          '"cloglog"',  '"identity"', '"inverse"', '"log"', '"1/mu^2"'
          and '"sqrt"'. The function 'power' can also be used to create
          a power link function for the 'quasi' family. 

variance: for all families, other than 'quasi', the variance function
          is determined by the family.  The 'quasi' family will accept
          the specifications '"constant"', '"mu(1-mu)"', '"mu"',
          '"mu^2"' and '"mu^3"' for the variance function.

  object: the function 'family' accesses the 'family' objects which are
          stored within objects created by modelling functions (e.g.,
          'glm').

     ...: further arguments passed to methods.

Details:

     The 'quasibinomial' and 'quasipoisson' families differ from the
     'binomial' and 'poisson' families only in that the dispersion
     parameter is not fixed at one, so they can "model"
     over-dispersion.  For the binomial case see McCullagh and Nelder
     (1989, pp. 124-8).  Although they show that there is (under some
     restrictions) a model with variance proportional to mean as in the
     quasi-binomial model, note that 'glm' does not compute
     maximum-likelihood estimates in that model.  The behaviour of S is
     closer to the quasi- variants.

Author(s):

     The design was inspired by S functions of the same names described
     in Hastie & Pregibon (1992).

References:

     McCullagh P. and Nelder, J. A. (1989) _Generalized Linear Models._
     London: Chapman and Hall.

     Dobson, A. J. (1983) _An Introduction to Statistical Modelling._
     London: Chapman and Hall.

     Cox, D. R. and  Snell, E. J. (1981). _Applied Statistics;
     Principles and Examples._ London: Chapman and Hall.

     Hastie, T. J. and Pregibon, D. (1992) _Generalized linear models._
     Chapter 6 of _Statistical Models in S_ eds J. M. Chambers and T.
     J. Hastie, Wadsworth & Brooks/Cole.

See Also:

     'glm', 'power'.

Examples:

     nf <- gaussian()# Normal family
     nf
     str(nf)# internal STRucture

     gf <- Gamma()
     gf
     str(gf)
     gf$linkinv
     gf$variance(-3:4) #- == (.)^2

     ## quasipoisson. compare with example(glm)
     counts <- c(18,17,15,20,10,20,25,13,12)
     outcome <- gl(3,1,9)
     treatment <- gl(3,3)
     d.AD <- data.frame(treatment, outcome, counts)
     glm.qD93 <- glm(counts ~ outcome + treatment, family=quasipoisson())
     glm.qD93
     anova(glm.qD93, test="F")
     summary(glm.qD93)
     ## for Poisson results use
     anova(glm.qD93, dispersion = 1, test="Chisq")
     summary(glm.qD93, dispersion = 1)

     ## tests of quasi
     x <- rnorm(100)
     y <- rpois(100, exp(1+x))
     glm(y ~x, family=quasi(var="mu", link="log"))
     # which is the same as
     glm(y ~x, family=poisson)
     glm(y ~x, family=quasi(var="mu^2", link="log"))
     ## Not run: glm(y ~x, family=quasi(var="mu^3", link="log")) # should fail
     y <- rbinom(100, 1, plogis(x))
     # needs to set a starting value for the next fit
     glm(y ~x, family=quasi(var="mu(1-mu)", link="logit"), start=c(0,1))

