【问题标题】:Constrain number of predictor variables in stepwise regression in R限制 R 中逐步回归中预测变量的数量
【发布时间】:2019-02-04 20:59:18
【问题描述】:

我希望能够进行前向逐步线性回归,但将预测变量的数量限制在最大值(在我的具体情况下为三个)。这是一些示例数据。

set.seed(123)
myDep <- runif(100)

pred1 <- myDep + runif(100)
pred2 <- myDep + rnorm(100)
pred3 <- myDep + runif(100) + rnorm(100)
pred4 <- myDep + runif(100) + runif(100)
pred5 <- runif(100)

myDF <- data.frame(myDep, pred1, pred2, pred3, pred4, pred5)

如果我使用下面的代码简单地运行线性回归,显然我会得到所有五个预测变量。

myModel <- lm(myDep ~ ., data = myDF)

我想做的是使用 step() 或其他 R 命令逐步运行向前方向,只选择三个预测变量然后停止。

为了它的价值,我尝试了这个:

step(lm(myDep ~ ., data = myDF), steps = 3, direction = "forward")

结果如下——但不是我想要的,因为它使用了所有五个预测变量。

Start:  AIC=-378.09
myDep ~ pred1 + pred2 + pred3 + pred4 + pred5

Call:
lm(formula = myDep ~ pred1 + pred2 + pred3 + pred4 + pred5, data = myDF)

Coefficients:
(Intercept)        pred1        pred2        pred3        pred4        pred5  
   -0.16617      0.30043      0.07983      0.03670      0.17869      0.01606 

我确信有办法做到这一点,但我似乎无法弄清楚正确的格式。提前致谢。

【问题讨论】:

    标签: r regression


    【解决方案1】:

    您可以使用 R 中的 regsubsets 包,您可以在其中限制变量并选择您的方法(“转发”)。

    https://www.rdocumentation.org/packages/leaps/versions/2.1-1/topics/regsubsets

    library(regsubsets)
    
    b <- regsubsets(myDep ~ ., data=myDF, nbest=1, nvmax=[enter your max # of predictors])
    summary(b)
    

    【讨论】:

    • 不幸的是,我收到错误消息... install.packages 中的警告:包“regsubsets”不可用(对于 R 版本 3.5.2)
    • 其实可以安装“跳跃”包,然后做类似的命令,效果很好。谢谢。 b &lt;- leaps::regsubsets(myDep ~ ., data=myDF, nbest=1, nvmax=3) 谢谢,@MLS
    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2020-01-04
    • 2020-03-21
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多