family                 package:base                 R Documentation

_F_a_m_i_l_y _O_b_j_e_c_t_s _f_o_r _M_o_d_e_l_s

_D_e_s_c_r_i_p_t_i_o_n:

     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.

_U_s_a_g_e:

     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")

_A_r_g_u_m_e_n_t_s:

    link: a specification for the model link function. The `binomial'
          family admits the links `"logit"', `"probit"', `"log"', and
          `"cloglog"' (complementary log-log); the `Gamma' family the
          links `"identity"', `"inverse"', and `"log"'; the `poisson'
          family the links `"identity"', `"log"', and `"sqrt"'; the
          `quasi' family 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.

          The other families have only one permissible link function:
          `"identity"' for the `gaussian' family, and `"1/mu^2"' for
          the `inverse.gaussian' 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.

_D_e_t_a_i_l_s:

     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-PLUS is closer to the quasi- variants.

_R_e_f_e_r_e_n_c_e_s:

     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.

_S_e_e _A_l_s_o:

     `glm', `power'.

_E_x_a_m_p_l_e_s:

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

     gf <- Gamma()
     gf
     str(gf)
     gf$linkinv
     all(1:10 == gf$linkfun(gf$linkinv(1:10)))# is TRUE
     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"))
     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))

