不应该
AIC(full) = 275.93
当step()函数与完整模型(下面是-9.86)一起运行时,匹配AIC的输出
Start: AIC=-9.86
y ~ x + x2
Df Sum of Sq RSS AIC
- x2 1 0.03672 85.372 -11.8147
- x 1 1.03869 86.374 -10.6479
<none> 85.336 -9.8578
Step: AIC=-11.81
y ~ x
Df Sum of Sq RSS AIC
- x 1 1.004 86.376 -12.646
<none> 85.372 -11.815
Step: AIC=-12.65
y ~ 1
Call:
lm(formula = y ~ 1, data = data)
Coefficients:
(Intercept)
-0.03719
这是完整的代码:
set.seed(101)
y = rnorm(100)
x = rnorm(100)
x2 = rnorm(100)
data = data.frame(y = y, x = x, x2 = x2)
null = lm(y~1, data = data)
full = lm(y~x+x2, data = data)
#step(null, scope= list(lower = null, upper = full) , direction="backward", trace = TRUE)
step(full, direction="backward", trace = TRUE)
AIC(full)
答案 0 :(得分:3)
您需要extractAIC
而不是AIC
extractAIC(lm(y~x+x2, data = data), scale=0)
#OR
#extractAIC(full, scale=0)
如果您参考文档?AIC
&amp; ?extractAIC
它清楚地说明了
对数似然因此AIC / BIC仅定义为a 加性常数。通常使用不同的常数 出于不同的目的,所以extractAIC和AIC可能会有所不同 值(对于类&#34; lm&#34; 的模型:请参阅extractAIC的帮助。)
希望这有帮助!