StepAIC() 停止点
StepAIC() stopping point
我想了解 StepAIC()
的停止点。使用 direction = 'backward'
时,如果进一步删除条款不再降低模型 AIC,它会停止吗?示例如下:
fm<- lm(mpg ~ ., data = mtcars)
require(MASS)
fit_fm <- stepAIC(fm, direction = 'backward')
#The final step stopped at:
Step: AIC=61.31
mpg ~ wt + qsec + am
Df Sum of Sq RSS AIC
<none> 169 61.3
- am 1 26.2 195 63.9
- qsec 1 109.0 278 75.2
- wt 1 183.3 353 82.8
这是否意味着删除任何术语 wt、qsec 或 am 根本不会降低模型 AIC(即所有 AIC = 61.31)?
是的,没错。您可以自己检查一下(extractAIC()
中的 second 值是 AIC):
extractAIC(fm_nowt <- update(fit_fm, . ~ . -wt))
## [1] 3.00000 82.79016
extractAIC(fm_noqsec <- update(fit_fm, . ~ . -qsec))
## [1] 3.00000 75.21711
extractAIC(fm_noam <- update(fit_fm, . ~ . -am))
## [1] 3.00000 63.90843
请注意,extractAIC()
返回的值与 AIC()
在 base R 中返回的值不同,但是 模型 AIC 之间的差异(即我们真正关心的)都一样:
AIC(fm_nowt)- AIC(fit_fm)
[1] 21.48286
> extractAIC(fm_nowt)- extractAIC(fit_fm)
[1] -1.00000 21.48286
Df Sum of Sq RSS AIC
<none> 169 61.3
- am 1 26.2 195 63.9
- qsec 1 109.0 278 75.2
- wt 1 183.3 353 82.8
如果您删除更多项,此 table 将向您显示 AIC,<none>
行是当前模型。
如果保持模型不变,删除的附加项为 <none>
,AIC 为 61.3。如果您删除这些术语,则每行显示 AIC(删除 am
,获得 63.9 的 AIC,等等)。所以你是对的,删除任何剩余的条款都会提高 AIC - 你处于 AIC 的(本地)最小值。
我想了解 StepAIC()
的停止点。使用 direction = 'backward'
时,如果进一步删除条款不再降低模型 AIC,它会停止吗?示例如下:
fm<- lm(mpg ~ ., data = mtcars)
require(MASS)
fit_fm <- stepAIC(fm, direction = 'backward')
#The final step stopped at:
Step: AIC=61.31
mpg ~ wt + qsec + am
Df Sum of Sq RSS AIC
<none> 169 61.3
- am 1 26.2 195 63.9
- qsec 1 109.0 278 75.2
- wt 1 183.3 353 82.8
这是否意味着删除任何术语 wt、qsec 或 am 根本不会降低模型 AIC(即所有 AIC = 61.31)?
是的,没错。您可以自己检查一下(extractAIC()
中的 second 值是 AIC):
extractAIC(fm_nowt <- update(fit_fm, . ~ . -wt))
## [1] 3.00000 82.79016
extractAIC(fm_noqsec <- update(fit_fm, . ~ . -qsec))
## [1] 3.00000 75.21711
extractAIC(fm_noam <- update(fit_fm, . ~ . -am))
## [1] 3.00000 63.90843
请注意,extractAIC()
返回的值与 AIC()
在 base R 中返回的值不同,但是 模型 AIC 之间的差异(即我们真正关心的)都一样:
AIC(fm_nowt)- AIC(fit_fm)
[1] 21.48286
> extractAIC(fm_nowt)- extractAIC(fit_fm)
[1] -1.00000 21.48286
Df Sum of Sq RSS AIC
<none> 169 61.3
- am 1 26.2 195 63.9
- qsec 1 109.0 278 75.2
- wt 1 183.3 353 82.8
如果您删除更多项,此 table 将向您显示 AIC,<none>
行是当前模型。
如果保持模型不变,删除的附加项为 <none>
,AIC 为 61.3。如果您删除这些术语,则每行显示 AIC(删除 am
,获得 63.9 的 AIC,等等)。所以你是对的,删除任何剩余的条款都会提高 AIC - 你处于 AIC 的(本地)最小值。