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)
但是,它没有给出有效的答案。如果你可以纠正我的最终代码,我会非常感激。
这是显示了最后一行的结果: '''“newdata”了2行,但变量发现有70行 显示回溯 错误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