最小二乘近似问题


11

我正在上一门有关科学计算的课程,而我们仅研究了最小二乘近似。我的问题特别是关于使用多项式近似。我知道,如果您有n + 1个数据点,则可以找到描述所有这些点的唯一的次数为n的多项式。但我也可以看到为什么这并不总是理想的。通过这种方法,您可能会在数据点之间产生大量噪声。我想得到一个低阶多项式可以很好地估计您的数据是很好的。

我的问题是:您如何在实践中决定要使用的多项式阶数?有经验法则还是仅取决于眼前的问题?在决定或多或少的学位之间时,我们是否必须考虑各种折衷?还是我误会了这里的东西?

提前致谢。


2
我认为在实践中人们会使用样条曲线插值en.wikipedia.org/wiki/Spline_interpolation之类的东西,以便使用低阶多边形,但它们在整个范围内彼此非常适合。这样一来,人们不必猜测整个多项式的阶数。
纳赛尔2014年

感谢您的链接。我们还没有遍历花键,所以这是有趣的阅读。
Uday Pramod 2014年

您到底想做什么?您是否要插值或拟合给定数据?例如,插值包含噪声的正态分布的数据是没有用的。对于前者而言,纳赛尔的答案很好。对于后者,拟合函数仅取决于当前的问题,在许多情况下不是多项式。
Hauntergeist 2014年

您可能对交叉验证此问题的答案感兴趣。
BORT

Answers:


18

插值和曲线拟合的最重要方面是了解为什么高阶多项式拟合会成为问题以及其他选项是什么,然后您可以了解何时它们不是一个好选择。

高阶多项式的几个问题:

  • 多项式自然是振荡函数。随着多项式阶数的增加,振荡次数增加,并且这些振荡变得更加严重。我在这里简化,因为可能存在多个和虚的根,但使其复杂一些,但要点是相同的。

  • 当x变为+/-无穷大时,多项式以等于多项式阶数的速率接近+/-无穷大。这通常不是理想的行为。

  • 计算高阶多项式的多项式系数通常是一个病态问题。这意味着小的错误(例如,在计算机中四舍五入)会在答案中产生较大的变化。必须解决的线性系统涉及一个范德蒙矩阵,该矩阵很容易生病。

我认为也许这个问题的核心是曲线拟合插值之间的区别。

当您认为数据非常准确,因此希望函数与数据点完全匹配时,将使用插值。当您需要数据点之间的值时,通常最好使用与数据局部趋势匹配的平滑函数。三次样条或Hermite样条曲线通常是此类问题的一个不错的选择,因为它们对数据中的非局部(即远离给定点的数据点)变化或错误的敏感度要低得多,并且比多项式的震荡性小。考虑以下数据集:

x = 1   2   3   4   5   6   7   8   9  10
y = 1   1 1.1   1   1   1   1   1   1   1

插补
多项式拟合比Hermite样条曲线具有更大的振荡,尤其是在数据集的边缘附近。

另一方面,最小二乘近似是曲线拟合技术。当您对数据的预期功能有所了解时,可以使用曲线拟合,但是您不需要功能完全通过所有数据点。当数据可能包含测量误差或其他不确定性,或者希望提取数据的总体趋势时,通常会出现这种情况。最小二乘逼近通常是在课程中使用多项式进行曲线拟合而引入的,因为这会导致线性系统相对简单,使用您在课程中较早学习的技术即可解决。但是,最小二乘技术比仅多项式拟合更为通用,可用于将任何所需函数拟合到数据集。例如,如果您期望数据集呈指数增长趋势,

最后,选择正确的函数以适合您的数据与正确执行插值或最小二乘计算同样重要。这样做甚至允许(谨慎)外推。考虑以下情况。根据2000年至2010年美国的人口数据(以百万计):

Year:  2000   2001   2002   2003   2004   2005   2006   2007   2008   2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35

使用指数线性最小二乘拟合N(t)=A*exp(B*t)或10阶多项式插值可得出以下结果:
人口图

美国的人口增长不是很指数,但是我会让你成为最合适的判断者。


1
我想从您的美国人口图中得出一点,从记忆上讲,该领域的良好拟合并不意味着可以很好地推断。因此,在您拥有数据的区域之外显示较大的多项式误差可能会产生误导。
2014年

@Daryl Agreed,这就是为什么我强调外推应谨慎进行的原因,并且在这种情况下选择合适的功能至关重要。
Doug Lipinski 2014年

@DougLipinski感谢您的深刻见解。您能解释一下相对于最小二乘法线性化最小二乘法的意思吗?
bela83 '16

@ bela83正确回答该评论可能太长了。我想这是一个很好的新问题。
Doug Lipinski

@DougLipinski我试试看!
bela83 '16

2

非常不科学,但是一个很好的经验法则是,三阶多项式通常是一个好的开始,而且在实践中,我从未见过有人使用超过六阶的多项式而获得良好的结果。

“理想”多项式将是最低阶的多项式,可以很好地表示无噪声数据,足以满足您的目的。

如果您的数据足够小(通常是允许的话),则可以简单地尝试拟合高阶多项式,直到开始看到振荡为止,这往往是“过度拟合”的标志。

另一种选择是平滑样条线,但这在很大程度上取决于应用程序。样条曲线和平滑样条曲线仅适用于插值。对于嘈杂的数据,我倾向于更喜欢多项式拟合而不是平滑样条曲线,但是我使用的数据通常可以很好地近似多项式。


1

我对多项式逼近使用的一种相当有效的方法是计算不同度数(例如,从1到10)的最小二乘多项式,然后选择曲线以最小化连续两次之间中间点的均方误差。在数据集中按x)点排序。这有助于排除振荡过大的曲线。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.