最小二乘法
1.什么是最小二乘法
所謂的最小二乘法(generalized least squares)是一種數(shù)學(xué)優(yōu)化技術(shù),它通過最小化誤差的平方和找到一組數(shù)據(jù)的最佳函數(shù)匹配。 最小二乘法是用最簡的方法求得一些絕對(duì)不可知的真值,而令誤差平方之和為最小。 最小二乘法通常用于曲線擬合。很多其他的優(yōu)化問題也可通過最小化能量或最大化熵用最小二乘形式表達(dá)。
比如從最簡單的一次函數(shù)y=kx+b講起已知坐標(biāo)軸上有些點(diǎn)(1.1,2.0),(2.1,3.2),(3,4.0),(4,6),(5.1,6.0),求經(jīng)過這些點(diǎn)的圖象的一次函數(shù)關(guān)系式。當(dāng)然這條直線不可能經(jīng)過每一個(gè)點(diǎn),我們只要做到5個(gè)點(diǎn)到這條直線的距離的平方和最小即可,這這就需要用到最小二乘法的思想.然后就用線性擬合來求。一般只用于建模。
2.最小二乘法歷史簡介
1801年,意大利天文學(xué)家朱賽普·皮亞齊發(fā)現(xiàn)了第一顆小行星谷神星。經(jīng)過40天的跟蹤觀測后,由于谷神星運(yùn)行至太陽背后,使得皮亞齊失去了谷神星的位置。隨后全世界的科學(xué)家利用皮亞齊的觀測數(shù)據(jù)開始尋找谷神星,但是根據(jù)大多數(shù)人計(jì)算的結(jié)果來尋找谷神星都沒有結(jié)果。時(shí)年24歲的高斯也計(jì)算了谷神星的軌道。奧地利天文學(xué)家海因里?!W爾伯斯根據(jù)高斯計(jì)算出來的軌道重新發(fā)現(xiàn)了谷神星。
高斯使用的最小二乘法的方法發(fā)表于1809年他的著作《天體運(yùn)動(dòng)論》中。
法國科學(xué)家勒讓德于1806年獨(dú)立發(fā)現(xiàn)“最小二乘法”。但因不為時(shí)人所知而默默無聞。
勒讓德曾與高斯為誰最早創(chuàng)立最小二乘法原理發(fā)生爭執(zhí)。
1829年,高斯提供了最小二乘法的優(yōu)化效果強(qiáng)于其他方法的證明,因此被稱為高斯-莫卡夫定理。
3.最小二乘法-課題一
從前面的學(xué)習(xí)中, 我們知道最小二乘法可以用來處理一組數(shù)據(jù), 可以從一組測定的數(shù)據(jù)中尋求變量之間的依賴關(guān)系, 這種函數(shù)關(guān)系稱為經(jīng)驗(yàn)公式. 本課題將介紹最小二乘法的精確定義及如何尋求 與 之間近似成線性關(guān)系時(shí)的經(jīng)驗(yàn)公式. 假定實(shí)驗(yàn)測得變量之間的 個(gè)數(shù)據(jù) , , …, , 則在 平面上, 可以得到 個(gè)點(diǎn) , 這種圖形稱為“散點(diǎn)圖”, 從圖中可以粗略看出這些點(diǎn)大致散落在某直線近旁, 我們認(rèn)為 與 之間近似為一線性函數(shù), 下面介紹求解步驟.
考慮函數(shù) , 其中 和 是待定常數(shù). 如果 在一直線上, 可以認(rèn)為變量之間的關(guān)系為 . 但一般說來, 這些點(diǎn)不可能在同一直線上. 記 , 它反映了用直線 來描述 , 時(shí), 計(jì)算值 與實(shí)際值 產(chǎn)生的偏差. 當(dāng)然要求偏差越小越好, 但由于 可正可負(fù), 因此不能認(rèn)為總偏差 時(shí), 函數(shù) 就很好地反映了變量之間的關(guān)系, 因?yàn)榇藭r(shí)每個(gè)偏差的絕對(duì)值可能很大. 為了改進(jìn)這一缺陷, 就考慮用 來代替 . 但是由于絕對(duì)值不易作解析運(yùn)算, 因此, 進(jìn)一步用 來度量總偏差. 因偏差的平方和最小可以保證每個(gè)偏差都不會(huì)很大. 于是問題歸結(jié)為確定 中的常數(shù) 和 , 使 為最小. 用這種方法確定系數(shù) , 的方法稱為最小二乘法.
由極值原理得 , 即
解此聯(lián)立方程得
(*)
問題 I 為研究某一化學(xué)反應(yīng)過程中, 溫度 ℃)對(duì)產(chǎn)品得率 (%)的影響, 測得數(shù)據(jù)如下:
溫度 ℃)
100 110 120 130 140 150 160 170 180 190
得率 (%)
45 51 54 61 66 70 74 78 85 89
(1) 利用“ListPlot”函數(shù), 繪出數(shù)據(jù) 的散點(diǎn)圖(采用格式: ListPlot[{ , , …, }, Prolog->AbsolutePointSize[3]] );
(2) 利用“Line”函數(shù), 將散點(diǎn)連接起來, 注意觀察有何特征? (采用格式: Show[Graphics[Line[{ , , …, }]] , Axes->True ]) ;
(3) 根據(jù)公式(*), 利用“Apply”函數(shù)及集合的有關(guān)運(yùn)算編寫一個(gè)小的程序, 求經(jīng)驗(yàn)公式 ;
(程序編寫思路為: 任意給定兩個(gè)集合A (此處表示溫度)、B(此處表示得率), 由公式(*)可定義兩個(gè)二元函數(shù)(集合A和B為其變量)分別表示 和 . 集合A元素求和: Apply[Plus,A] 表示將加法施加到集合A上, 即各元素相加, 例如Apply[Plus,{1,2,3}]=6;Length[A]表示集合A 元素的個(gè)數(shù), 即為n; A.B表示兩集合元素相乘相加;A*B表示集合A與B元素對(duì)應(yīng)相乘得到的新的集合.)
(4) 在同一張圖中顯示直線 及散點(diǎn)圖;
(5) 估計(jì)溫度為200時(shí)產(chǎn)品得率.
然而, 不少實(shí)際問題的觀測數(shù)據(jù) , , …, 的散點(diǎn)圖明顯地不能用線性關(guān)系來描敘, 但確實(shí)散落在某一曲線近旁, 這時(shí)可以根據(jù)散點(diǎn)圖的輪廓和實(shí)際經(jīng)驗(yàn), 選一條曲線來近似表達(dá) 與 的相互關(guān)系.
問題 II 下表是美國舊轎車價(jià)格的調(diào)查資料, 今以 表示轎車的使用年數(shù), (美元)表示相應(yīng)的平均價(jià)格, 求 與 之間的關(guān)系.
使用年數(shù)
1 2 3 4 5 6 7 8 9 10
平均價(jià)格
2651 1943 1494 1087 765 538 484 290 226 204
(1) 利用“ListPlot”函數(shù)繪出數(shù)據(jù) 的散點(diǎn)圖, 注意觀察有何特征?
(2) 令 , 繪出數(shù)據(jù) 的散點(diǎn)圖, 注意觀察有何特征?
(3) 利用“Line”函數(shù), 將散點(diǎn) 連接起來, 說明有何特征?
(4) 利用最小二乘法, 求 與 之間的關(guān)系;
(5) 求 與 之間的關(guān)系;
(6) 在同一張圖中顯示散點(diǎn)圖 及 關(guān)于 的圖形.
4.思考與練習(xí)
1. 假設(shè)一組數(shù)據(jù) : , , …, 變量之間近似成線性關(guān)系, 試?yán)眉系挠嘘P(guān)運(yùn)算, 編寫一簡單程序: 對(duì)于任意給定的數(shù)據(jù)集合 , 通過求解極值原理所包含的方程組, 不需要給出 、 計(jì)算的表達(dá)式, 立即得到 、 的值, 并就本課題 I /(3)進(jìn)行實(shí)驗(yàn).
注: 利用Transpose函數(shù)可以得到數(shù)據(jù)A的第一個(gè)分量的集合, 命令格式為:
先求A的轉(zhuǎn)置, 然后取第一行元素, 即為數(shù)據(jù)A的第一個(gè)分量集合, 例如
(A即為矩陣 )
= (數(shù)據(jù)A的第一個(gè)分量集合)
= (數(shù)據(jù)A的第二個(gè)分量集合)
B-C表示集合B與C對(duì)應(yīng)元素相減所得的集合, 如 = .
2. 最小二乘法在數(shù)學(xué)上稱為曲線擬合, 請使用擬合函數(shù)“Fit”重新計(jì)算 與 的值, 并與先前的結(jié)果作一比較.
注: Fit函數(shù)使用格式:
設(shè)變量為x, 對(duì)數(shù)據(jù)A進(jìn)行線性擬合, 如對(duì)題1中的A擬合函數(shù)為: