6

我正在尝试下一个代码来尝试查看 predict 是否可以帮助我找到 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

我究竟做错了什么?

4

1 回答 1

16

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

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

predict(mypol, newdata = data.frame(x=7))
于 2012-09-26T00:36:19.290 回答