Я пытаюсь сохранить несколько объектов lm в одном списке.Например, я подгоняю 3 простых регрессии полиномов порядка 1, 2, 3 и добавляю их в список с помощью цикла for.
lm_results <- list()
for (i in 1:3){
lm_results[[i]] <- lm(mpg~poly(horsepower, i),
data=Auto)
}
Должно быть, что-то не так в том, что я делаю, потому что функция predict()
работает только с последним объектом списка, т.е. lm_results[[3]]
Для lm_results[[1]]
,Я получаю сообщения об ошибках и предупреждения:
predict(lm_results[[1]], Auto)
Error: variable 'poly(horsepower, i)' was fitted with type "nmatrix.2" but
type "nmatrix.3" was supplied
In addition: Warning message:
In Z/rep(sqrt(norm2[-1L]), each = length(x)) :
longer object length is not a multiple of shorter object length
Для lm_results[[2]]
отображается только предупреждение:
predict(lm_results[[2]], Auto)
Error: variable 'poly(horsepower, i)' was fitted with type "nmatrix.1" but
type "nmatrix.3" was supplied
Самое странное, что если я сделаю то же самое "вручную "(см. ниже), все работает нормально.
lm_results <- list()
lm_results[[1]] <- lm(mpg~poly(horsepower, 1),
data=Auto)
lm_results[[2]] <- lm(mpg~poly(horsepower, 2),
data=Auto)
lm_results[[3]] <- lm(mpg~poly(horsepower, 3),
data=Auto)
Есть идеи, в чем может быть проблема?
Заранее спасибо.