关于 r:绘制最佳拟合曲线 | 珊瑚贝

plotting a curvilinear line of best fit


在图表上绘制最佳拟合曲线的正确方法是什么?我试图提供一个回归模型作为线的参数 – 而不是特定点。在下面的模型中,正确的线应该是完美的拟合(因为数据中没有噪音)。如何从线性模型中绘制最佳拟合线?

1
2
3
4
5
6
library(lattice)
vals<-data.frame(x=1:10,y=(1:10)^2)

xyplot(x~y,data=vals)
line(lm(x~y,data=vals)) #doesnt work
abline(vals$x,vals$y) #doesnt work

enter

  • 您在绘图或最佳拟合曲线方面需要帮助吗?
  • 画线….由于某种原因,我尝试的语法不起作用(我发誓我在询问之前阅读了文档!)
  • 您使用的是 ggplot2 还是其他库?
  • 我刚刚意识到您正在使用 lattice 。
  • 抱歉,我已将其添加为图书馆
  • 我想了很多,并将其纳入我的答案。


要使用 lattice 库获得回归,您需要在 xyplot 函数中包含类型参数。要获得线性回归,请使用 “r”,要获得非线性回归(这就是您想要的),请使用 “smooth”。所以这就是你的代码应该是这样的

1
2
3
library(lattice)
vals<-data.frame(x=1:10,y=(1:10)^2)
xyplot(x~y,data=vals,type=c(“p”,”smooth”))

“p” 用于点,”smooth” 用于平滑回归。这将产生一个看起来像这样的图表

enter

替代方案,如果您出于某种原因确实想要对此进行线性回归,您的代码将如下所示

1
2
3
library(lattice)
vals<-data.frame(x=1:10,y=(1:10)^2)
xyplot(x~y,data=vals,type=c(“p”,”r”))

你的图表看起来像这样

enter

  • 如果我使用 smooth 作为参数,它不适合线性模型的确切线,对吗?它适合黄土版本。有没有办法直接指定型号?例如,如果我想在点上拟合一条荒谬的线
  • 除了内置的 smooth 和 r,您最好的选择是看这里。


我认为您可能正在颠倒公式中参数的顺序,因为 y 与 x 的常规图将从 xyplot( y ~ x ) 返回。但是如果你真的想要一个二次多项式拟合的线性回归,那么使用公式中的 poly 函数和 predict 函数来获得拟合值:

1
2
xyplot(x~y,data=vals)
plot(vals$y, predict( lm(x~poly(y, 2), data=vals)) )

这不是一个精确的拟合,因为您正在绘制 x 对 x 的平方根。

1
2
3
4
5
6
resid(  lm(x~poly(y, 2),data=vals))
#——————————
          1           2           3           4           5           6           7
-0.57799840 -0.01438720  0.28444720  0.35772841  0.26036947  0.06297286 -0.14816950
          8           9          10
-0.27107622 -0.18807651  0.23418989

另一种方法(确实给出了精确的拟合)是在公式中使用 I 函数:

1
2
3
 plot(vals$y, fitted( lm(x~I(y^(1/2) ), data=vals)) )
 points(vals, pch=”x”, col=’red’)
 points(vals$y, vals$x, pch=”x”, col=’red’)

enter


来源:https://www.codenong.com/40644600/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9512.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?