回歸和插值的區別是什麼?

特別是,三次樣條插值和多項式回歸,他們比較相似


以2D情形(x, y), x, y都是標量為例:插值和回歸處理的數據類型都是S:={(x_1, y_1), ..., (x_n, y_n)}一切插值方法和一切回歸方法的本質區別就是:插值追求「擬合曲線一定要通過S中所有的點」,回歸恰恰避免這一點。拉格朗日插值公式保證了只要願意使用足夠高次的多項式來擬合,一定可以讓擬合曲線通過S中所有的點,但是這樣得出的擬合曲線次數隨樣本點的個數n線性增長,極不穩定。這樣做,用來描述數據產生機制的數學模型過度信賴數據,會導致過擬合的後果。數據中總是帶有隨機誤差的,所以過於信賴樣本點可能沒有好結果。回歸恰恰是認識到了這一事實,在描述數據的時候選擇用簡單的模型處理數據,給出的回歸直線或者回歸曲線看起來就像一條「差不多」的曲線。過擬合與否用預測數據集或者cross validation看得很明顯。

回到LZ的問題中舉的例子,我可以說一下在使用多項式回歸比較合適的數據集中,為什麼多項式回歸比spline好(反之我不熟悉spline對多項式回歸的優勢情形,請相關專家補充):
spline通過分段來避免高次多項式增加穩定性,每一段上模型的複雜度被控制了,但是分的段可以很多,模型還是很複雜。從信息利用的角度也不好,比如一段上的擬合曲線幾乎只取決於這一段及其相鄰區間段,遙遠的區間段中的數據幾乎沒有幫助,雖然他們實際上carry essential information。


我沒怎麼系統學過統計,姑且認為你說的回歸是我平時用的「擬合」一詞。這兩種分析的確表面上有點像,比如在微分方程數值解的譜方法中,插值和傅里葉級數的截斷(算是一種擬合)確實有一些微妙的相似性,但原本的思想其實還是很不同的。

擬合,是你認為數據點滿足一個特定的函數關係,然後去優化函數中的參數使得函數的行為儘可能接近數據點。其中的思想是,數據點是不準確而有測量誤差的,我們想用一個簡潔的關係來歸納總結數據之間的關係,或驗證模型和數據之間的相符程度。

插值,是已知一個函數在若干點的取值,但我們需要知道這些點之外函數的取值,所以用插值的方式來近似函數在任意一點的取值。其中的思想是,雖然我們不太清楚函數關係的解析形式,但已知的數據是絕對精確的。

所以,擬合通常使用在處理實驗中採集的數據。但插值,最早則是起源於數值計算。早年哪有什麼計算機,計算三角函數、指數函數、對數函數等等,只能使用查表的辦法。但是數學用表上只有給定的幾個點的函數取值,如果要計算其他點的取值,只能使用插值的辦法,反正數學用表上的數字在有效數字的範圍內都是精確的。時間推移到現在,插值也依然往往用在計算非解析函數的取值上。

比較容易令人迷惑的是,對於N個數據點,似乎總可以用N階多項式插值,這似乎相當於用一個N階多項式來擬合這N個數據點,於是插值和擬合似乎是差不多的。但除去目的不同的問題,這樣做實際上是不可能的,因為多項式插值不具有一致收斂性,插值函數可能不會一致地收斂於原函數,所以會引發Runge現象,插值函數在一些點會有非常巨大的誤差。比如對函數1/(1+x^2)的插值。這也是為什麼三次樣條反而比多項式插值更普遍。而擬合有類似的問題,稱為過擬合。


回歸和插值的目的都是擬合。

回歸是從全局出發,依賴經驗模型的設定,必須提前預設要擬合的曲線模型,力求滿足對整體樣本走勢的刻畫,比如多項式,logic等等。模型始終固定,而模型參數會隨著樣本點的變化而變動。

但很多時候我們不可能知道滿足所有樣本點的精確理論模型,插值則是從局部出發,利用一定的插值函數對其中n個點進行依次擬合,最終完成對所有點的曲線擬合。


回歸是通過擬合確定方程。
插值就是從回歸確定的方程得到需要的值。

三次樣條函數就是通過回歸確定的三次多項式;插值就是通過增加區間內自變數的密度確定所需的因變數。
插值這個詞本身就很形象,就是插入未知但可以通過一些擬合方程計算出來的值。


推薦閱讀:

N 個乒乓球中有一個和其他的質量不同,用天平最少幾次一定能稱出來?
在進行線性回歸時,為什麼最小二乘法是最優方法?

TAG:演算法 | 數學 | 統計學 |