2016-08-28 8 views
3

Я предполагаю использовать функцию прогнозирования для прогнозирования, когда fjbjor составляет 5.5, и я всегда получаю это предупреждение, и я пробовал много способов, но он всегда приходит так есть тот, кто может видеть то, что я делаю неправильно здесьПредупреждающее сообщение 'newdata' имеет 1 строку, но найденные переменные имеют 16 строк в R

Это мой код

fit.lm <- lm(fjbjor~amagn, data=bjor) 
summary(fit.lm) 

new.bjor<- data.frame(fjbjor=5.5) 
predict(fit.lm,new.bjor) 

и это выходит

1  2  3  4  5  6  7  8  9  10  11 
5.981287 2.864521 9.988559 5.758661 4.645530 2.419269 4.645530 5.313409 6.871792 3.309773 4.200278 

     12  13  14  15  16 
3.755026 5.981287 5.536035 1.974016 3.755026 

Предупреждение сообщение: «NewData» было 1 строку, а переменные, найденные у 16 ​​строк

Если кто-то может увидеть, что это неправильно, я был бы очень благодарен за помощь.

ответ

2

Ваша модель fjbjor ~ amagn, где fjbjor является ответом и amagn является ковариат. Тогда ваш newdata - data.frame(fjbjor=5.5).

newdata следует использовать для обеспечения ковариатов, а не для ответа. predict сохранит только столбцы ковариатов в newdata. Для вашего указанного newdata это будет NULL. В результате predict будет использовать внутреннюю модельную рамку для прогнозирования, которая вернет вам установленные значения.

Предупреждающее сообщение достаточно ясно. predict определяет ожидаемое количество прогнозов от nrow(newdata), что равно 1. Но тогда то, что я описал выше, произошло, так что возвращено 16 установленных значений. Такое несоответствие дает предупреждение.


Похоже модели вы действительно хотите: amagn ~ fjbjor.

+0

Спасибо большое :) Знаете ли вы, что мне нужно добавить, чтобы найти 95% -ный интервал прогнозирования в 5.5? – Abc123

+0

Спасибо за помощь :) – Abc123

 Смежные вопросы

  • Нет связанных вопросов^_^