如何进行多项式预测?

时间:2017-03-01 21:29:32

标签: r ggplot2 lm

如果我没记错,那么从ggplot' s lm()函数中提取geom_smoth()系数的确切方法并不存在。我已经尝试过在不使用ggplot的情况下对输出进行建模,但我的答案却不尽相同。

mpg数据集的示例:

ggplot(mpg, aes(displ, hwy)) +
  geom_point() +
  geom_smooth(method='lm', formula=y~poly(x,2))

test1

而不是来自geom_smooth()的默认黄土模型我主动逼迫2阶多项式,因此我可以建立一个方程并求解其最小值。输出看起来像displ = 5.75左右的最小值。

然而,当我尝试在ggplot之外进行建模时:

test <- lm(mpg$hwy ~ poly(mpg$displ,2))
polyfun <- function(x) {coef(test)[1] + coef(test)[2]*x + coef(test)[3]*(x)^2 }
curve(polyfun, from=0, to=7)
optimize(polyfun, interval = c(0, 7), maximum = F)

我得到一个疯狂的不同答案:

test2

optimize的结果为:$minimum [1] 1.308562。我很确定使用模型系数的方程形式是正确的,但绘制的方程是非常错误的。我有什么明显的遗失吗?

0 个答案:

没有答案