【问题标题】:R best fit of 45 degree lineR 最佳拟合 45 度线
【发布时间】:2016-02-27 08:00:38
【问题描述】:

(我知道它一定非常简单,但我在 R 中苦苦挣扎:)

我有保存在 X 和 Y 向量中的 x 和 y 值的数据集。我知道数据图应该完全遵循 -45 度线(见下图)

我如何找到最适合数据的 -45 度线(+ 所有这些统计数据可从 summary(lm(...)) 获得?我试过 lm,但我不能强迫它放弃拟合斜率参数

谢谢

尝试后:lm(y~1,offset=-x) 并应用abline(coefficient, -1) 我得到以下图(见下文)

黑线是斜线图,黄线是我的猜测——lm 有什么问题还是我完全错过了什么?

【问题讨论】:

  • 也许lm(y~1,offset=-x) ?

标签: r model-fitting


【解决方案1】:

我相信@BenBolker 的解决方案是正确的,也许您使用了错误的系数:

lm1 <- lm(y~1,offset=-x,data=df)
plot(df)
abline(coefficients(lm1),-1)

这会产生:

这个合身对我来说看起来很合适。截距为 -2.217。

【讨论】:

  • 是的,-2.217 应该是最合适的截距(手动测试),但是当我输入相同的代码时(即使将我的数据绑定到数据框以严格遵守您的代码),我得到拦截 -1.42323 如上图所示的黑线 - 完全错误
  • 万岁!解决了!问题在于包含重复行的数据集。对数据集应用唯一函数后, lm 返回正确的拦截!感谢大家! :-)
  • (因此结果从一开始就是正确的,因为最小的 y 点具有最大的权重......)
【解决方案2】:

既然你说:

y = -1*x + b

然后

y+x = b

所以计算 (y+x) 的平均值,得到 b 的平均值

mean(y+x)

【讨论】:

  • 谢谢,但另外我需要总结中提供的所有统计数据(lm(...)),我忘了把它写到问题中......我知道我可以计算这些分开,但我敢打赌 lm() 函数将针对我计划处理的大量数据进行适当优化......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 2016-03-06
  • 2017-10-05
  • 1970-01-01
  • 2017-03-31
相关资源
最近更新 更多