【问题标题】:Linear regression, with limits线性回归,有限制
【发布时间】:2011-11-20 19:32:49
【问题描述】:

我有一组点 (x, y),其中每个 y 的误差范围为 y.low 到 y.high。假设线性回归是合适的(在某些情况下,数据可能最初遵循幂律,但已将 [log, log] 转换为线性)。

计算最佳拟合线很容易,但我需要确保该线在每个点的误差范围内。如果回归线超出范围,而我只是将其向上或向下推以保持在两者之间,这是可用的最佳拟合,还是斜率也需要更改?

我意识到在某些情况下,1 个点的下限和另一个点的上限可能需要不同的斜率,在这种情况下,大概只触及这 2 个边界是最合适的。

【问题讨论】:

  • 是什么让您认为您的数据集和给定的错误界限甚至存在这样的拟合?
  • 嗯,不能保证,所以我需要检查它不存在的情况。然而,由于数据被认为是从这样的公式生成的,然后四舍五入(每个点的精度不同),它很可能存在。我基本上是对这些数据表进行逆向工程,以找到原始公式。
  • 请让我们知道您对我们的期望(一种一次性解决此问题的方法?一个集成到您的代码中的库(什么语言)?一种编码算法你自己?)
  • 我不希望任何库都能做到这一点,我希望它是通用的,而不是一个孤立的。首先,问题是简单地调整最佳拟合的截距是否会产生最佳约束拟合,或者这种最佳约束拟合也可能具有不同的斜率?如果它只是一个截距调整,那是我可以处理的一个相当微不足道的解决方案。如果需要一个新的斜率,用什么数学方法来处理?

标签: linear-regression


【解决方案1】:

与无约束问题相比,所述约束问题可以具有不同的截距和不同的斜率。

考虑以下示例(实线表示 OLS 拟合):

现在,如果您想象[y.low; y.high] 在前两点的边界非常紧,而在最后一点的边界非常松。约束拟合将接近虚线。显然,这两种拟合具有不同的斜率和不同的截距。

您的问题本质上是具有线性不等式约束的最小二乘法。例如,Charles L. Lawson 和 Richard J. Hanson 在"Solving least squares problems" 中处理了相关算法。

这是相关章节的direct link(我希望链接有效)。您的问题可以简单地转换为问题 LSI(通过将 y.high 约束乘以 -1)。

至于编码,我建议看看 LAPACK:那里可能已经有一个函数可以解决这个问题(我还没有检查过)。

【讨论】:

  • 感谢您的参考。我发现的东西似乎都受到线性等式或不等式的约束,但我的界限更通用。检查我的激励数据源,我认为“最合适的”可能无论如何都无关紧要。我使用 python 脚本来找到适合范围内的最陡和最浅的线。由于我怀疑原始数据表是用一个方程产生的,其参数的有效数字数量相当少,所以我很暴力地在界限内产生了所有低 sig-fig 线。然后我会找一个“看起来不错”的。
【解决方案2】:

我知道 MATLAB 有一个优化库,可以执行受约束的 SQP(顺序二次规划)以及许多其他用于解决不等式约束的二次最小化问题的方法。您想要最小化的成本函数将是您的拟合和数据之间的平方误差之和。限制是你提到的那些。我敢肯定也有免费的库可以做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2021-03-18
    • 1970-01-01
    • 2018-06-11
    相关资源
    最近更新 更多