-
Notifications
You must be signed in to change notification settings - Fork 1
/
add1.html
222 lines (166 loc) · 6.69 KB
/
add1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>R: Add or Drop All Possible Single Terms to a Model</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="R.css">
</head><body>
<table width="100%" summary="page for add1"><tr><td>add1</td><td align="right">R Documentation</td></tr></table>
<h2>Add or Drop All Possible Single Terms to a Model</h2>
<h3>Description</h3>
<p>Compute all the single terms in the <code>scope</code> argument that can be
added to or dropped from the model, fit those models and compute a
table of the changes in fit.
</p>
<h3>Usage</h3>
<pre>
add1(object, scope, ...)
## Default S3 method:
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, ...)
## Default S3 method:
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, ...)
</pre>
<h3>Arguments</h3>
<table summary="R argblock">
<tr valign="top"><td><code>object</code></td>
<td>
<p>a fitted model object.</p>
</td></tr>
<tr valign="top"><td><code>scope</code></td>
<td>
<p>a formula giving the terms to be considered for adding or
dropping.</p>
</td></tr>
<tr valign="top"><td><code>scale</code></td>
<td>
<p>an estimate of the residual mean square to be
used in computing <i>Cp</i>. Ignored if <code>0</code> or <code>NULL</code>.</p>
</td></tr>
<tr valign="top"><td><code>test</code></td>
<td>
<p>should the results include a test statistic relative to the
original model? The F test is only appropriate for <code>lm</code> and
<code>aov</code> models or perhaps for <code>glm</code> fits with
estimated dispersion.
The <i>Chisq</i> test can be an exact test
(<code>lm</code> models with known scale) or a likelihood-ratio test or a
test of the reduction in scaled deviance depending on the method.
For <code>glm</code> fits, you can also choose <code>"LRT"</code> and
<code>"Rao"</code> for likelihood ratio tests and Rao's efficient score test.
The former is synonymous with <code>"Chisq"</code> (although both have
an asymptotic chi-square distribution).
</p>
</td></tr>
<tr valign="top"><td><code>k</code></td>
<td>
<p>the penalty constant in AIC / <i>Cp</i>.</p>
</td></tr>
<tr valign="top"><td><code>trace</code></td>
<td>
<p>if <code>TRUE</code>, print out progress reports.</p>
</td></tr>
<tr valign="top"><td><code>x</code></td>
<td>
<p>a model matrix containing columns for the fitted model and all
terms in the upper scope. Useful if <code>add1</code> is to be called
repeatedly. <B>Warning:</B> no checks are done on its validity.</p>
</td></tr>
<tr valign="top"><td><code>all.cols</code></td>
<td>
<p>(Provided for compatibility with S.) Logical to specify
whether all columns of the design matrix should be used. If
<code>FALSE</code> then non-estimable columns are dropped, but the result
is not usually statistically meaningful.</p>
</td></tr>
<tr valign="top"><td><code>...</code></td>
<td>
<p>further arguments passed to or from other methods.</p>
</td></tr>
</table>
<h3>Details</h3>
<p>For <code>drop1</code> methods, a missing <code>scope</code> 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.
</p>
<p>In a <code>scope</code> formula <code>.</code> means ‘what is already there’.
</p>
<p>The methods for <code>lm</code> and <code>glm</code> are more
efficient in that they do not recompute the model matrix and call the
<code>fit</code> methods directly.
</p>
<p>The default output table gives AIC, defined as minus twice log
likelihood plus <i>2p</i> where <i>p</i> 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' <i>Cp</i>,
<i>RSS/scale + 2p - n</i>. Where <i>Cp</i> is used,
the column is labelled as <code>Cp</code> rather than <code>AIC</code>.
</p>
<p>The F tests for the <code>"glm"</code> 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 <code>anova.glm</code>.
</p>
<h3>Value</h3>
<p>An object of class <code>"anova"</code> summarizing the differences in fit
between the models.
</p>
<h3>Warning</h3>
<p>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 <code>na.action=na.omit</code>, but
this may give biased results. Only use these functions with data
containing missing values with great care.
</p>
<p>The default methods make calls to the function <code>nobs</code> to
check that the number of observations involved in the fitting process
remained unchanged.
</p>
<h3>Note</h3>
<p>These are not fully equivalent to the functions in S. There is no
<code>keep</code> argument, and the methods used are not quite so
computationally efficient.
</p>
<p>Their authors' definitions of Mallows' <i>Cp</i> and Akaike's AIC
are used, not those of the authors of the models chapter of S.
</p>
<h3>Author(s)</h3>
<p>The design was inspired by the S functions of the same names described
in Chambers (1992).
</p>
<h3>References</h3>
<p>Chambers, J. M. (1992)
<EM>Linear models.</EM>
Chapter 4 of <EM>Statistical Models in S</EM>
eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
</p>
<h3>See Also</h3>
<p><code>step</code>, <code>aov</code>, <code>lm</code>,
<code>extractAIC</code>, <code>anova</code>
</p>
<h3>Examples</h3>
<pre>
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)
drop1(glm.D93, test="Chisq")
drop1(glm.D93, test="F")
add1(glm.D93, scope=~outcome*treatment, test="Rao") ## Pearson Chi-square
</pre>
</body></html>