【问题标题】:Stepwise AIC using forward selection in R在 R 中使用前向选择的逐步 AIC
【发布时间】:2021-05-20 15:54:08
【问题描述】:

我正在尝试在 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

【问题讨论】:

标签: r regression best-fit-curve variable-selection


【解决方案1】:

我认为最好明确使用stepAIC 的参数,而不是使用默认值。试试:

  1. 当您要进行前向选择时,提供空模型作为初始模型object

  2. scope 中提供两者上下搜索公式。

例如,使用来自基础库datasetsiris 数据框:

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 所提到的,您应该使用您的数据发布一个可重现的示例,以便我们进行确认。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 2013-05-06
    • 2014-05-19
    • 2021-12-08
    • 2012-11-04
    • 2020-04-09
    • 2021-06-11
    • 2016-02-16
    相关资源
    最近更新 更多