Предупреждающее сообщение «newdata» имело 1 строку, но найденные переменные имеют 16 строк в R

Я должен использовать функцию прогнозирования, чтобы предсказать, когда fjbjor равно 5,5, и я всегда получаю это предупреждающее сообщение, и я пробовал много способов, но оно всегда приходит, так что есть ли кто-нибудь, кто может увидеть, что я делаю неправильно здесь

это мой код

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 строк

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


person Abc123    schedule 28.08.2016    source источник


Ответы (1)


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

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

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


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

person Zheyuan Li    schedule 28.08.2016
comment
Большое спасибо :) знаете ли вы, что мне нужно добавить, чтобы найти 95% интервал предсказания на уровне 5,5? - person Abc123; 29.08.2016
comment
Спасибо вам за помощь :) - person Abc123; 29.08.2016