Я не понимаю, как сгенерировать предсказанные значения из линейной регрессии с помощью команды predict.lm
, когда какое-то значение зависимой переменной Y отсутствует, даже если отсутствует независимое наблюдение X. С алгебраической точки зрения это не проблема, но я не знаю эффективного метода сделать это на R. Возьмем, к примеру, этот поддельный фрейм данных и регрессионную модель. Я пытаюсь назначить прогнозы в исходном фрейме данных, но не могу сделать это из-за отсутствия одного значения Y: я получаю сообщение об ошибке.
# Create a fake dataframe
x <- c(1,2,3,4,5,6,7,8,9,10)
y <- c(100,200,300,400,NA,600,700,800,900,100)
df <- as.data.frame(cbind(x,y))
# Regress X and Y
model<-lm(y~x+1)
summary(model)
# Attempt to generate predictions in source dataframe but am unable to.
df$y_ip<-predict.lm(testy)
Error in `$<-.data.frame`(`*tmp*`, y_ip, value = c(221.............
replacement has 9 rows, data has 10
Я решил эту проблему, создав прогнозы с использованием алгебры df$y<-B0+ B1*df$x
или создав прогнозы путем вызова коэффициентов модели df$y<-((summary(model)$coefficients[1, 1]) + (summary(model)$coefficients[2, 1]*(df$x))
; однако сейчас я работаю с моделью больших данных с сотнями коэффициентов, и эти методы больше не применимы. Я хотел бы знать, как это сделать с помощью функции predict
.
Спасибо заранее за вашу помощь!
?predict.lm
там вы увидите, какие аргументы необходимы для запуска функции, а также пример. - person Biranjan   schedule 04.07.2017