【问题标题】:Plotting cubic regression in R在 R 中绘制三次回归
【发布时间】:2020-04-17 07:25:11
【问题描述】:

我想对五个数据点进行三次回归:(1024, 1), (4096, 8), (16384, 16), (65536, 16), (262144, 48)。我不是普通的 R 用户,所以我做了一些研究。首先我要做的是这个(source):

df <- read.table(text="GRID Value 1024   1 4096   8 16384   16 65536  
16 262144   48", header=TRUE)

然后

plot(q, df,type='b',col='navy',main='Nonlinear relationship',lwd=3)

但我得到的图只是一个“连接点”图,而不是实际的三次回归(请参见下文)。对于如何解决此问题,我将不胜感激。

【问题讨论】:

  • 你还没有估计三次函数,所以除了数据之外没有什么可以绘制的。
  • @user2974951 你能告诉我如何估计 R 中的三次函数吗?

标签: r plot non-linear-regression


【解决方案1】:
df <- read.table(text="
GRID Value
1024   1
4096   8
16384  16
65536  16
262144  48", header=TRUE)

mod=lm(Value~poly(GRID,3),data=df)

plot(df$Value~df$GRID)
lines(predict(mod,data.frame(GRID=seq(0,max(df$GRID),1)))~seq(0,max(df$GRID),1))

这是一个如何根据数据估计三次函数的示例,请注意拟合不佳。

【讨论】:

  • 最好这样做:curve(predict(mod, newdata = data.frame(GRID = x)), add = TRUE)
  • 当我在planetcalc.com/5992 尝试使用相同值的三次回归时,我得到了很好的拟合。为什么 R 和那个链接之间会出现这种差异?
  • @sequence 我不知道该工具是如何工作的,所以我无法回答。你确定合身好?你看到的是三次函数吗?
  • @user2974951 该服务提供的图片非常适合。这个函数不应该像 R 那样进入负数领域。
猜你喜欢
  • 2015-03-19
  • 1970-01-01
  • 2018-09-04
  • 2017-02-05
  • 2014-04-22
  • 2021-07-09
  • 2016-07-09
  • 1970-01-01
  • 2013-07-11
相关资源
最近更新 更多