# add1

##### Add or Drop All Possible Single Terms to a Model

Compute all the single terms in the `scope`

argument that can be
added to or dropped from the model, fit those models and compute a
table of the changes in fit.

- Keywords
- models

##### Usage

`add1(object, scope, ...)`## S3 method for class 'default':
add1(object, scope, scale = 0, test = c("none", "Chisq"),
k = 2, trace = FALSE, ...)

## S3 method for class 'lm':
add1(object, scope, scale = 0, test = c("none", "Chisq", "F"),
x = NULL, k = 2, ...)

## S3 method for class 'glm':
add1(object, scope, scale = 0,
test = c("none", "Rao", "LRT", "Chisq", "F"),
x = NULL, k = 2, ...)

drop1(object, scope, ...)

## S3 method for class 'default':
drop1(object, scope, scale = 0, test = c("none", "Chisq"),
k = 2, trace = FALSE, ...)

## S3 method for class 'lm':
drop1(object, scope, scale = 0, all.cols = TRUE,
test = c("none", "Chisq", "F"), k = 2, ...)

## S3 method for class 'glm':
drop1(object, scope, scale = 0,
test = c("none", "Rao", "LRT", "Chisq", "F"),
k = 2, ...)

##### Arguments

- object
- a fitted model object.
- scope
- a formula giving the terms to be considered for adding or dropping.
- scale
- an estimate of the residual mean square to be
used in computing $C_p$. Ignored if
`0`

or`NULL`

. - test
- should the results include a test statistic relative to the
original model? The F test is only appropriate for
`lm`

and`aov`

models or perhaps for`glm`

fits with estimated dispersion. The $\chi^2$ test can be an exact test (`lm`

models with known scale) or a likelihood-ratio test or a test of the reduction in scaled deviance depending on the method. For`glm`

fits, you can also choose`"LRT"`

and`"Rao"`

for likelihood ratio tests and Rao's efficient score test. The former is synonymous with`"Chisq"`

(although both have an asymptotic chi-square distribution). Values can be abbreviated. - k
- the penalty constant in AIC / $C_p$.
- trace
- if
`TRUE`

, print out progress reports. - x
- a model matrix containing columns for the fitted model and all
terms in the upper scope. Useful if
`add1`

is to be called repeatedly.**Warning:**no checks are done on its validity. - all.cols
- (Provided for compatibility with S.) Logical to specify
whether all columns of the design matrix should be used. If
`FALSE`

then non-estimable columns are dropped, but the result is not usually statistically meaningful. - ...
- further arguments passed to or from other methods.

##### Details

For `drop1`

methods, a missing `scope`

is taken to be all
terms in the model. The hierarchy is respected when considering terms
to be added or dropped: all main effects contained in a second-order
interaction must remain, and so on.

In a `scope`

formula `.`

means

The methods for `lm`

and `glm`

are more
efficient in that they do not recompute the model matrix and call the
`fit`

methods directly.

The default output table gives AIC, defined as minus twice log
likelihood plus $2p$ where $p$ is the rank of the model (the
number of effective parameters). This is only defined up to an
additive constant (like log-likelihoods). For linear Gaussian models
with fixed scale, the constant is chosen to give Mallows' $C_p$,
$RSS/scale + 2p - n$. Where $C_p$ is used,
the column is labelled as `Cp`

rather than `AIC`

.

The F tests for the `"glm"`

methods are based on analysis of
deviance tests, so if the dispersion is estimated it is based on the
residual deviance, unlike the F tests of `anova.glm`

.

##### Value

- An object of class
`"anova"`

summarizing the differences in fit between the models.

##### Note

These are not fully equivalent to the functions in S. There is no
`keep`

argument, and the methods used are not quite so
computationally efficient.

Their authors' definitions of Mallows' $C_p$ and Akaike's AIC are used, not those of the authors of the models chapter of S.

##### Warning

The model fitting must apply the models to the same dataset. Most
methods will attempt to use a subset of the data with no missing
values for any of the variables if `na.action = na.omit`

, but
this may give biased results. Only use these functions with data
containing missing values with great care.

The default methods make calls to the function `nobs`

to
check that the number of observations involved in the fitting process
remained unchanged.

##### References

Chambers, J. M. (1992)
*Linear models.*
Chapter 4 of *Statistical Models in S*
eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

##### See Also

`step`

, `aov`

, `lm`

,
`extractAIC`

, `anova`

##### Examples

`library(stats)`

```
<testonly>od <- options(digits = 5)</testonly>
require(graphics); require(utils)
## following example(swiss)
lm1 <- lm(Fertility ~ ., data = swiss)
add1(lm1, ~ I(Education^2) + .^2)
drop1(lm1, test = "F") # So called 'type II' anova
## following example(glm)
example(glm, echo = FALSE)
drop1(glm.D93, test = "Chisq")
drop1(glm.D93, test = "F")
add1(glm.D93, scope = ~outcome*treatment, test = "Rao") ## Pearson Chi-square
<testonly>options(od)</testonly>
```

*Documentation reproduced from package stats, version 3.3, License: Part of R 3.3*