glm {base} | R Documentation

## Fitting Generalized Linear Models

### Description

`glm` is used to fit generalized linear models.

Models for `glm` are specified by giving a symbolic description of the linear predictor and a description of the error distribution.

### Usage

    glm(formula, family = gaussian, data, weights = NULL, subset = NULL,
        na.action, start = NULL, offset = NULL,
        control = glm.control(epsilon=0.0001, maxit=10, trace=FALSE),
        model = TRUE, method = "glm.fit", x = FALSE, y = TRUE,
        contrasts = NULL, ...)
    glm.control(epsilon = 0.0001, maxit = 10, trace = FALSE)
    glm.fit(x, y, weights = rep(1, nrow(x)),
            start = NULL, etastart  =  NULL, mustart = NULL,
            offset = rep(0, nrow(x)),
            family = gaussian(), control = glm.control(),
            intercept = TRUE)

### Arguments

`formula` | a symbolic description of the model to be fit. The details of model specification are given below.
`family` | a description of the error distribution and link function to be used in the model. See `family` for details.
`data` | an optional data frame containing the variables in the model. By default the variables are taken from the environment ffrom which `glm` is called.
`weights` | an optional vector of weights to be used in the fitting process.
`subset` | an optional vector specifying a subset of observations to be used in the fitting process.
`na.action` | a function which indicates what should happen when the data contain `NA`s. The default is set by the `na.action` setting of `options`, and is `na.fail` if that is unset. The ``factory-fresh'' default is `na.omit`.
`start` | starting values for the parameters in the linear predictor.
`etastart` | starting values for the linear predictor.
`mustart` | starting values for the vector of means.
`offset` | this can be used to specify an a priori known component to be included in the linear predictor during fitting.
`control` | a list of parameters for controlling the fitting process. See the documentation for `glm.control` for details.
`model` | a logical value indicating whether model frame should be included as a component of the returned value.
`method` | the method to be used in fitting the model. The default (and presently only) method `glm.fit` uses iteratively reweighted least squares.
`x, y` | logical values indicating whether the response vector and model matrix used in the fitting process should be returned as components of the returned value.
`contrasts` | an optional list. See the `contrasts.arg` of `model.matrix.default`.

### Details

A typical predictor has the form `response ~ terms` where `response` is the (numeric) response vector and `terms` is a series of terms which specifies a linear predictor for `response`. For `binomial` models the response can also be specified as a `factor` (when the first level denotes failure and all others success) or as a two-column matrix with the columns giving the numbers of successes and failures. A terms specification of the form `first+second` indicates all the terms in `first` together with all the terms in `second` with duplicates removed.

A specification of the form `first:second` indicates the the set of terms obtained by taking the interactions of all terms in `first` with all terms in `second`. The specification `first*second` indicates the cross of `first` and `second`. This is the same as `first+second+first:second`.

### Value

`glm` returns an object of class `glm` which inherits from the class `lm`. The function `summary` (i.e., `summary.glm`) can be used to obtain or print a summary of the results and the function `anova` (i.e., `anova.glm`) to produce an analysis of variance table.

The generic accessor functions `coefficients`, `effects`, `fitted.values` and `residuals` can be used to extract various useful features of the value returned by `glm`.

### Note

Offsets specified by `offset` will not be included in predictions by `predict.glm`, whereas those specified by an offset term in the formula will be.

### See Also

`anova.glm`, `summary.glm`, etc. for `glm` methods, and the generic functions `anova`, `summary`, `effects`, `fitted.values`, and `residuals`. Further, `lm` for non-generalized linear models.

### Examples

    ## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
    ## Page 93: Randomized Controlled Trial :
    counts <- c(18,17,15,20,10,20,25,13,12)
    outcome <- gl(3,1,9)
    treatment <- gl(3,3)
    print(d.AD <- data.frame(treatment, outcome, counts))
    glm.D93 <- glm(counts ~ outcome + treatment, family=poisson())
    anova(glm.D93)
    summary(glm.D93)

    ## an example with offsets from Venables & Ripley (1999, pp.217-8)

     ## Need the anorexia data from a 1999 version of the package MASS:
     library(MASS)
     data(anorexia)

    anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
                family = gaussian, data = anorexia)
    summary(anorex.1)

[Package Contents]