2014-03-16 2 views
0

Я пытаюсь сделать простое предсказание, используя линейную регрессию У меня есть data.frame, где некоторые из элементов пропускают цену (и поэтому обозначают NA). Это apperantely не работает:Предсказывающий результат с моделью в R

#Simple LR 
fit <- lm(Price ~ Par1 + Par2 + Par3, data=combi[!is.na(combi$Price),]) 
Prediction <- predict(fit, data=combi[is.na(combi$Price),]), OOB=TRUE, type = "response") 

Что я должен поставить вместо data=combi[is.na(combi$Price),])?

ответ

1

Изменить datanewdata. Посмотрите на ?predict.lm, чтобы узнать, какие аргументы могут принять predict. Дополнительные аргументы игнорируются. Таким образом, в вашем случае dataOOB) игнорируется, а по умолчанию - возврат прогнозов данных обучения.

Prediction <- predict(fit, newdata = combi[is.na(combi$Price),]) 

identical(predict(fit), predict(fit, data = combi[is.na(combi$Price),])) 
## [1] TRUE 
+0

спасибо Jake – thecheech

+0

Вы не должны явно исключить 'NA' в исходном приступе либо,' na.action' по умолчанию является 'na.omit', который пропускает строки с любым' NA 'значения. Также обратите внимание, что существует метод 'прогноза (...)' для почти каждого пакета моделирования в R, а некоторые из них принимают аргумент 'type = ... '. 'predict.glm (...)' является важным примером, где вам действительно нужно указать 'type =" response "'. – jlhoward

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