约束在R中逐步回归预测变量的数

问题描述 投票:2回答:1

我希望能够做一个向前逐步回归,但约束预测变量的数量最大(在我的具体情况,三)。下面是一些样本数据。

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)

我想这样做使用步骤()或者其它的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个回答
1
投票

您可以使用regsubsets包R,在那里你可以限制变量和选择你的方法(“前进”)。

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)
© www.soinside.com 2019 - 2024. All rights reserved.