## Fitting Linear Models

## Usage

    lm(formula, data, subset, weights, na.action=na.omit,
       method="qr", model=TRUE, singular.ok = TRUE)

    lm.fit(x, y, method = "qr", tol = 1e-7, ...)
    lm.wfit(x, y, w, method = "qr", tol = 1e-7, ...)

## Arguments

`formula` | a symbolic description of the model to be fit. The details of model specification are given below.
`data` | an optional data frame containing the variables in the model. By default the variables are taken from the environment which `lm` is called from.
`subset` | an optional vector specifying a subset of observations to be used in the fitting process.
`weights` | an optional vector of weights to be used in the fitting process.
`na.action` | a function which indicates what should happen when the data contain `NA`s. The default action (`na.omit`) is to omit any incomplete observations. The alternative action `na.fail` causes `lm` to print an error message and terminate if there are any incomplete observations.
`model` | logical. If `TRUE` (default), the model.frame is also returned.
`singular.ok` | logical, defaulting to `TRUE`. `FALSE` is not yet implemented.
`method` | currently, only `method="qr"` is supported.
`tol` | tolerance for the `qr` decomposition. Default is 1e-7.
`...` | currently disregarded.

## Description

`lm` is used to fit linear models. It can be used to carry out regression, single stratum analysis of variance and analysis of covariance.

Models for `lm` are specified symbolically. A typical model has the form `reponse ~ terms` where `response` is the (numeric) response vector and `terms` is a series of terms which specifies a linear predictor for `response`. 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

`lm` returns an object of `class` `"lm"`.

The functions `summary` and `anova` are used to obtain and print a summary and analysis of variance table of the results. The generic accessor functions `coefficients`, `effects`, `fitted.values` and `residuals` extract various useful features of the value returned by `lm`.

## See Also

`summary.lm` for summaries and `anova.lm` for the ANOVA table. The generic functions `coefficients`, `effects`, `residuals`, `fitted.values`; `lm.influence` for regression diagnostics, and `glm` for generalized linear models.

## Examples

    ## Annette Dobson (1990) "An Introduction to Statistical Modelling".
    ## Page 9: Plant Weight Data.
    ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
    trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
    group <- gl(2,10,20,labels=c("Ctl","Trt"))
    weight <- c(ctl,trt)
    anova(lm.D9 <- lm(weight~group))
    summary(lm.D90 <- lm(weight ~ group -1))# omitting intercept
    summary(resid(lm.D9) - resid(lm.D90)) #- residuals almost identical

[Package Contents]