【问题标题】:How to plot fitted polynomial in R? [duplicate]如何在 R 中绘制拟合多项式? [复制]
【发布时间】:2016-07-30 22:05:21
【问题描述】:

我在R 中有一个parametric polynomial regression,我将其拟合到我的数据中,如下所示:

poly_model <- lm(mydataframef$y ~ poly(mydataframe$x,degree=5))

mydf 显然包含yx。然后我像这样绘制它

plot(mydataframe$x, mydataframe$y, xlab='regressor or predictor variable polynomial regression', ylab='outcome or label')

然后我想添加拟合的多项式,所以我执行以下操作:

abline(poly_model)

这给了我一个警告: Warning message: In abline(poly_model) : only using the first two of 6 regression coefficients

当然,情节完全不合时宜,因为正如承诺的那样,它只使用了前两个,即截距和斜率。当我只有一个预测变量时,为什么只使用前两个系数?那么,无论如何,情节应该是二维的?使困惑。谢谢。

【问题讨论】:

  • this 链接有帮助吗?
  • 提出一系列 x 值,使用 predict 生成 y 值并绘制它们。 newx = seq(min(dat$x), max(dat$x), length.out = 100); newdat = data.frame(newx = newx); newdat$newy predict(poly_model, newdata = newdat); with(newdat, plot(newx, newy, type = "l").
  • 尝试使用abline 绘制多项式响应似乎非常不明智。 abline 代表 , 嗯, ... 行。具有讽刺意味的是,您可能想要的是用于绘制曲线的 lines 函数。
  • 即使lines实际上也画了直线,但它只是连接了许多直线

标签: r polynomials


【解决方案1】:

这就是答案,

poly_model <- lm(mpg ~ poly(hp,degree=5), data = mtcars)

x <- with(mtcars, seq(min(hp), max(hp), length.out=2000))
y <- predict(poly_model, newdata = data.frame(hp = x))

plot(mpg ~ hp, data = mtcars)
lines(x, y, col = "red")

输出图是,

【讨论】:

    【解决方案2】:

    使用fitted。使用内置 data.frame BOD:

    fm <- lm(demand ~ poly(Time, 3), BOD)
    plot(demand ~ Time, BOD)
    lines(fitted(fm) ~ Time, BOD, col = "red")
    

    给予:

    【讨论】:

    • 这似乎不适合多项式。是某种样条回归吗?
    • 这里的适合是问题所要求的,并且与其他答案相同(以数据集和度数为模)。
    • 我现在看到是因为连接的点数较少,所以看起来波涛汹涌,但它是正确的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2021-11-26
    • 2016-06-26
    相关资源
    最近更新 更多