2017-02-04 17 views
0

Из следующего кода, я пытаюсь найти интервалы предсказания (95%), когда «тиражи» являются 0,5 и 20:Нахождение интервала предсказания с полиномиальной

AdvRev = read.csv(url("http://www.stat.tamu.edu/~sheather/book/data_sets.php/AdRevenue.csv"), header=TRUE) 
y = AdvRev$AdRevenue 
x = AdvRev$Circulation 

xsquared=x^2 
xcubed=x^3 
#I used polynomial regression since it fits better than y~x 
m6 = lm(y~x+xsquared+xcubed, data=AdvRev) 

#Bad leverage points were removed from the model. 
m9 <- update(m6, subset=(1:70)[-c(2,5,8,20,49,60)]) 
summary(m9) 

Попытка использовать следующий код, чтобы найти интервал для окончательно установленной модели (m9):

predict(m9, newdata=data.frame(x = c(0.5,20)), interval="prediction",level=0.95) 

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

+0

Это результат показывает на последнюю строку: '' '«»NewData было 2 строки, но переменные найдена у 70 строк Показать Traceback Ошибки в model.frame.default (Условия, NewData, na.action = na.action, xlev = object $ xlevels): переменная длина отличается (найдена для 'xsquared') '' ' – Taner

+1

Вы посмотрели содержимое' AdvRev'? Эти примеры не кажутся воспроизводимыми. Чтобы предсказать, все переменные в модели должны быть в новом data.frame. У вас есть только 'x'. Не 'xsquared' и' xcubed'. Вот почему мы обычно не делаем поли терминов таким образом, мы используем функцию 'poly'. 'lm (y ~ poly (x, 3, raw = TRUE), data = AdvRev)' – MrFlick

+0

Это дало мне ответ @MrFlick Большое вам спасибо. – Taner

ответ

0

Таким образом, благодаря @MrFlick мы узнали, что мы должны использовать полифункцию при создании полиномиальной модели линейной регрессии.