R: Family Objects for Models

family {base} | 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 `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.

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

### 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.

### See Also

`glm`, `power`.

### Examples

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

[Package Contents]