使用predict来查找非线性模型的值

时间:2012-09-26 00:32:45

标签: r lm

我正在尝试下一个代码,试图看看预测是否可以帮助我找到2阶多项式的因变量的值,在这种情况下很明显y = x ^ 2:

x <- c(1, 2, 3, 4, 5 , 6)
y <- c(1, 4, 9, 16, 25, 36)
mypol <- lm(y ~ poly(x, 2, raw=TRUE))

> mypol

Call:
lm(formula = y ~ poly(x, 2, raw = TRUE))

Coefficients:
            (Intercept)  poly(x, 2, raw = TRUE)1  poly(x, 2, raw = TRUE)2  
                      0                        0                        1  

如果我试图找到x = 7的值,我得到这个:

> predict(mypol, 7)
Error in eval(predvars, data, env) : not that many frames on the stack

我做错了什么?

1 个答案:

答案 0 :(得分:13)

如果您阅读了predict.lm的帮助,您会发现需要多个参数,包括newdata

  

newdata - 一个可选的数据框,可在其中查找变量   哪个可以预测。如果省略,则使用拟合值。

predict(mypol, newdata = data.frame(x=7))