簡體   English   中英

在 R 中的逐步回歸中限制預測變量的數量

[英]Constrain number of predictor variables in stepwise regression in R

我希望能夠進行正向逐步線性回歸,但將預測變量的數量限制為最大值(在我的特定情況下為三個)。 這是一些示例數據。

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 中使用 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM