Как я могу сохранить все промежуточные модели в прямой регрессии

#r

#r

Вопрос:

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

Ответ №1:

Используйте keep параметр. keep это функция, которая принимает model и aic и возвращает то, что вы хотите сохранить.

 utils::example("lm", echo = FALSE)

m <- step(lm.D9, keep = function(model, aic) list(model = model, aic = aic))
m$keep
#>       [,1]      [,2]     
#> model List,14   List,11  
#> aic   -12.58106 -13.06335
  

Получите доступ к моделям следующим образом

 m$keep[["model", 1]]
#> Call:
#> lm(formula = weight ~ group)
#> 
#> Coefficients:
#> (Intercept)     groupTrt  
#>       5.032       -0.371

m$keep[["model", 2]]
#> Call:
#> lm(formula = weight ~ 1)
#> 
#> Coefficients:
#> (Intercept)  
#>       4.847
  

Указанная keep нами функция также может быть записана следующим образом.

 step(lm.D9, keep = dplyr::lst)