首页 > 解决方案 > 负二项式回归的 AIC 不同

问题描述

我正在对 R 进行计数数据分析,并希望找到使用 AIC 进行负二项式回归的最佳模型。这是数据(名称为“医生”):

   V2  V3        L4 V5
1   1  32 10.866795  1
2   2 104 10.674706  1
3   3 206 10.261581  1
4   4 186  9.446440  1
5   5 102  8.578665  1
6   1   2  9.841080  2
7   2  12  9.275472  2
8   3  28  8.649974  2
9   4  28  7.857481  2
10  5  31  7.287561  2

我首先使用以下代码执行逐步 AIC 以找到最佳模型:

out0=glm.nb(V3~1,data=doctor)
library(MASS)
stepAIC(out0,V3~V2+L4+V5,direction=c("both"))

结果,我得到了这个:

Step:  AIC=87.91
V3 ~ V5 + V2 + L4

       Df    AIC
<none>    87.907
- V5    1 88.587
- L4    1 94.928
- V2    1 97.552

Call:  glm.nb(formula = V3 ~ V5 + V2 + L4, data = doctor, init.theta = 51.92790127, 
    link = log)

Coefficients:
(Intercept)           V5           V2           L4  
    -24.568        1.434        1.704        2.275  

Degrees of Freedom: 9 Total (i.e. Null);  6 Residual
Null Deviance:      286.1 
Residual Deviance: 17.46    AIC: 89.91

但是当我保存这个模型model=glm.nb(V3~V2+L4+V5,data=doctor)并输入AIC(model)时,我得到的 AIC 为 89.91。为什么会这样?

标签: r

解决方案


如前所述,它们是相同的。查看输出的底部

df <- data.frame(V2=c(1,2,3,4,5,1,2,3,4,5),V3=c(32,104,206,186,102,2,12,28,28,31),L4=c(10.866795,10.674706,10.261581,9.446440,8.578665,9.841080,9.275472,8.649974,7.857481,7.287561),V5=c(1,1,1,1,1,2,2,2,2,2))
df

  V2  V3      L4 V5
1   1  32 10.8668  1
2   2 104 10.6747  1
3   3 206 10.2616  1
4   4 186  9.4464  1
5   5 102  8.5787  1
6   1   2  9.8411  2
7   2  12  9.2755  2
8   3  28  8.6500  2
9   4  28  7.8575  2
10  5  31  7.2876  2


out0=glm.nb(V3~1,data=df)
AICout <- stepAIC(out0,V3~V2+L4+V5,direction=c("both"))

输出

AICout$aic
[1] 89.907

现在保存模型

model = glm.nb(V3~V5+V2+L4,data=df)

输出

AIC(model)
[1] 89.907

推荐阅读