Из следующего кода, я пытаюсь найти интервалы предсказания (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)
Однако, он не дает верного ответа. Если вы можете исправить мой окончательный код, я бы очень признателен.
Это результат показывает на последнюю строку: '' '«»NewData было 2 строки, но переменные найдена у 70 строк Показать Traceback Ошибки в model.frame.default (Условия, NewData, na.action = na.action, xlev = object $ xlevels): переменная длина отличается (найдена для 'xsquared') '' ' – Taner
Вы посмотрели содержимое' AdvRev'? Эти примеры не кажутся воспроизводимыми. Чтобы предсказать, все переменные в модели должны быть в новом data.frame. У вас есть только 'x'. Не 'xsquared' и' xcubed'. Вот почему мы обычно не делаем поли терминов таким образом, мы используем функцию 'poly'. 'lm (y ~ poly (x, 3, raw = TRUE), data = AdvRev)' – MrFlick
Это дало мне ответ @MrFlick Большое вам спасибо. – Taner