2017-09-05 107 views
1
的匹配AIC

应该不是阶梯函数全模型

AIC(full) = 275.93 

匹配的AIC的输出,当步骤()函数与全模型,其是-9.86以下

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) 

回答

2

您需要的extractAIC代替AIC

extractAIC(lm(y~x+x2, data = data), scale=0) 
#OR 
#extractAIC(full, scale=0) 

如果引用文档?AIC & ?extractAIC它清楚地说,

对数似然,因此AIC/BIC只定义了一个 加常数。为了不同的目的,常规地使用不同的常量 ,因此extractAIC和AIC可以给出不同的 值(并且对于类“lm”的模型:请参阅extractAIC的帮助)。


希望这会有所帮助!