2

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

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

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

4

2 回答 2

2

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

考虑以下示例(实线显示 OLS 拟合):最小二乘

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

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

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

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

于 2011-09-20T09:38:17.677 回答
0

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

于 2011-11-14T19:35:00.283 回答