Пошаговая регрессия R - изменение критериев входа / удаления и значимости переменных модели - PullRequest
1 голос
/ 03 августа 2020

Я использовал функцию регрессии lm и пошаговую регрессию. К сожалению, пошаговый метод не дает большой гибкости. Критерии входа / удаления и значимость не могут быть отрегулированы.

Используя mtcars, я запускаю эти коды

*
FitAll <- lm(mpg ~ . ,data=mtcars) # Fit reg model with all variables
FitStart <- lm(mpg~1,data=mtcars) # Fit reg model with just intercept
step(FitStart, direction = "both"  , scope=formula(FitAll)) # stepwise, "both"=forward&backward

Он сообщает мне, что ступенчатые остановки с 3 переменными в модели, wt + цил + л. Когда я запускаю регрессионную модель с ними, я обнаруживаю, что некоторые из переменных не имеют значения при 5%.

fit <- lm(formula = mpg ~ wt + cyl + hp, data = mtcars)
summary(fit)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 38.75179    1.78686  21.687  < 2e-16 ***
wt          -3.16697    0.74058  -4.276 0.000199 ***
cyl         -0.94162    0.55092  -1.709 0.098480 .  
hp          -0.01804    0.01188  -1.519 0.140015    

Есть ли способ использовать эту функцию lm и step для определения критериев входа и выхода. Кроме того, бывают случаи, когда я хочу повысить строгость ко всем переменным, значимым на 1%. Есть ли способ указать критерии входа / выхода и уровень значимости с помощью этого метода? Есть ли лучший пакет для использования? Любая помощь очень ценится. Спасибо

1 Ответ

1 голос
/ 03 августа 2020

Возможно, вы захотите попробовать пакет StepReg, который, кажется, предлагает нужные вам параметры

# install.packages("StepReg")

library(StepReg)

stepwise(mtcars, 
         y = "mpg", 
         selection = "bidirection", 
         select = "SL", 
         sle = .01, 
         sls = .01)
#> $process
#>   Step EffectEntered EffectRemoved EffectNumber    Select
#> 1    0     intercept                          1  1.000000
#> 2    1            wt                          2 -9.859915
#> 3    2           cyl                          3 -2.914801
#> 
#> $variate
#> [1] "intercept" "wt"        "cyl"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...