在 R 中使用前向选择的逐步 AIC
Stepwise AIC using forward selection in R
我正在尝试在 R 中使用逐步 AIC 进行前向变量选择,但我认为我没有得到想要的结果。具体来说,该函数应该从没有变量开始,然后不断添加变量并获取它们的 AIC 值。但是,当我 运行 时,我只得到所有变量的 AIC 值。我哪里错了?
这是我的代码-
model.full <- lm(distance ~ ., data = FAA_unique_without_speed_air)
model.null<-lm(distance ~ 1, data = FAA_unique_without_speed_air)
modAIC <- MASS::stepAIC(model.full,direction='forward', scope=model.full, k = 2)
输出-
Start: AIC=9161.49
distance ~ aircraft + duration + no_pasg + speed_ground + height +
pitch
我认为最好明确使用 stepAIC
的参数,而不是使用默认值。尝试:
当你想向前选择时,提供空模型作为初始模型object
。
在 scope
.
中提供 both 上下搜索公式
例如,使用基础库中的 iris
数据框 datasets
:
library(MASS)
model.full <- lm(Sepal.Width ~ ., data = iris)
model.null <- lm(Sepal.Width ~ 1, data = iris)
MASS::stepAIC(model.null, direction = "forward", scope = list(lower = model.null,
upper = model.full))
或者,如果您想使用默认值,那么您应该明确模型中包含的默认上层组件:
stepAIC(model.null, direction = "forward", scope = ~ Sepal.Length + Species + Petal.Length)
但是,正如@BenBolker 所提到的,您应该post 使用您的数据提供一个可重现的示例,以便我们确认。
我正在尝试在 R 中使用逐步 AIC 进行前向变量选择,但我认为我没有得到想要的结果。具体来说,该函数应该从没有变量开始,然后不断添加变量并获取它们的 AIC 值。但是,当我 运行 时,我只得到所有变量的 AIC 值。我哪里错了? 这是我的代码-
model.full <- lm(distance ~ ., data = FAA_unique_without_speed_air)
model.null<-lm(distance ~ 1, data = FAA_unique_without_speed_air)
modAIC <- MASS::stepAIC(model.full,direction='forward', scope=model.full, k = 2)
输出-
Start: AIC=9161.49
distance ~ aircraft + duration + no_pasg + speed_ground + height +
pitch
我认为最好明确使用 stepAIC
的参数,而不是使用默认值。尝试:
当你想向前选择时,提供空模型作为初始模型
object
。在
中提供 both 上下搜索公式scope
.
例如,使用基础库中的 iris
数据框 datasets
:
library(MASS)
model.full <- lm(Sepal.Width ~ ., data = iris)
model.null <- lm(Sepal.Width ~ 1, data = iris)
MASS::stepAIC(model.null, direction = "forward", scope = list(lower = model.null,
upper = model.full))
或者,如果您想使用默认值,那么您应该明确模型中包含的默认上层组件:
stepAIC(model.null, direction = "forward", scope = ~ Sepal.Length + Species + Petal.Length)
但是,正如@BenBolker 所提到的,您应该post 使用您的数据提供一个可重现的示例,以便我们确认。