最小二乘法(转)
最小二乘法(又稱最小平方法)是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實(shí)際數(shù)據(jù)之間誤差的平方和為最小。最小二乘法還可用于曲線擬合。其他一些優(yōu)化問題也可通過最小化能量或最大化熵用最小二乘法來表達(dá)。 中文名最小二乘法 外文名Least squares 別????稱 最小平方法[1]? 提出者馬里·勒讓德 提出時間1806年 應(yīng)用學(xué)科數(shù)學(xué) 適用領(lǐng)域范圍代數(shù) 適用領(lǐng)域范圍曲線擬合 1?歷史 2?線性最小二乘的基本公式 3?原理 4?公式 5?擬合 6?課題 7?思考與練習(xí) 8?實(shí)例
? ,? ? ,? 顯然該方程組一般而言沒有解,所以為了選取最合適的 ? 讓該等式"盡量成立",引入殘差平方和函數(shù)S (在統(tǒng)計學(xué)中,殘差平方和函數(shù)可以看成n倍的均方誤差MSE) 當(dāng) ? 時, ? 取最小值,記作: 通過對 ? 進(jìn)行微分[2]??求最值,可以得到: 如果矩陣 ? 非奇異則 ? 有唯一解[3]??:
可解得 ? 。[1]? 最小二乘法的Matlab實(shí)現(xiàn) ① 一次函數(shù)線性擬合使用polyfit(x,y,1) ②多項式函數(shù)線性擬合使用 polyfit(x,y,n),n為次數(shù) 擬合曲線 x=[0.5,1.0,1.5,2.0,2.5,3.0], y=[1.75,2.45,3.81,4.80,7.00,8.60]。 解:MATLAB程序如下: x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) x1=0.5:0.5:3.0; y1=polyval(p,x1); plot(x,y,'*r',x1,y1,'-b') 計算結(jié)果為: p =0.5614 0.8287 1.1560 即所得多項式為y=0.5614x^2+0.8287x+1.15560 ③非線性函數(shù)使用 lsqcurvefit(fun,x0,x,y)[1]? a=nlinfit(x,y,fun,b0) 最小二乘法在交通運(yùn)輸學(xué)中的運(yùn)用 交通發(fā)生預(yù)測的目的是建立分區(qū)產(chǎn)生的交通量與分區(qū)土地利用、社會經(jīng)濟(jì)特征等變量之間的定量關(guān)系,推算規(guī)劃年各分區(qū)所產(chǎn)生的交通量。因為一次出行有兩個端點(diǎn),所以我們要分別分析一個區(qū)生成的交通和吸引的交通。交通發(fā)生預(yù)測通常有兩種方法:回歸分析法和聚類分析法。[1]? 回歸分析法是根據(jù)對因變量與一個或多個自變量的統(tǒng)計分析,建立因變量和自變量的關(guān)系,最簡單的情況就是一元回歸分析,一般式為:Y=α+βX式中Y是因變量,X是自變量,α和β是回歸系數(shù)。若用上述公式預(yù)測小區(qū)的交通生成,則以下標(biāo) i 標(biāo)記所有變量;如果用它研究分區(qū)交通吸引,則以下標(biāo) j 標(biāo)記所有變量。而運(yùn)用公式的過程中需要利用最小二乘法來求解,上述公式中的回歸系數(shù)根據(jù)最小二乘法可得: 其中,式中的X拔是規(guī)劃年的自變量值,Y拔是規(guī)劃年分區(qū)交通生成(或吸引)預(yù)測值。[1]?
要擬合得到形如y?=?a?+?b?x?的函數(shù),求解函數(shù)中系數(shù)的方程組為 其中, ? 為權(quán)重,對應(yīng)每個實(shí)驗點(diǎn)的實(shí)驗次數(shù),4個實(shí)驗點(diǎn)只有第一個點(diǎn)重復(fù)做了一次且得到相同結(jié)果(如果結(jié)果不同則另算一個實(shí)驗點(diǎn)),其它都沒有重復(fù)實(shí)驗,因此總次數(shù)為5次。 解得 故擬合方程為 http://baike.baidu.com/link?url=rBgkhXjyELjtHVMpEpPLzh2iNTfUYzoLhgtuXLvyjsspa6K5PwdxNydnVlZYx3zpzqnWcXlXxWVVD-haWzWb0K
目錄
歷史
1801年,意大利天文學(xué)家朱賽普·皮亞齊發(fā)現(xiàn)了第一顆小行星谷神星。經(jīng)過40天的跟蹤觀測后,由于谷神星運(yùn)行至太陽背后,使得皮亞齊失去了谷神星的位置。隨后全世界的科學(xué)家利用皮亞齊的觀測數(shù)據(jù)開始尋找谷神星,但是根據(jù)大多數(shù)人計算的結(jié)果來尋找谷神星都沒有結(jié)果。時年24歲的高斯也計算了谷神星的軌道。奧地利天文學(xué)家海因里希·奧爾伯斯根據(jù)高斯計算出來的軌道重新發(fā)現(xiàn)了谷神星。 高斯使用的最小二乘法的方法發(fā)表于1809年他的著作《天體運(yùn)動論》中。 法國科學(xué)家勒讓德于1806年獨(dú)立發(fā)明“最小二乘法”,但因不為世人所知而默默無聞。 二乘法?(2張) 勒讓德曾與高斯為誰最早創(chuàng)立最小二乘法原理發(fā)生爭執(zhí)。 1829年,高斯提供了最小二乘法的優(yōu)化效果強(qiáng)于其他方法的證明,因此被稱為高斯-馬爾可夫定理。(來自于wikipedia)[1]?線性最小二乘的基本公式
考慮超定方程組(超定指未知數(shù)少于方程個數(shù)): 其中m代表有m個等式,n代表有 n 個未知數(shù) ? ,m>n ;將其進(jìn)行向量化后為:? ,? ? ,? 顯然該方程組一般而言沒有解,所以為了選取最合適的 ? 讓該等式"盡量成立",引入殘差平方和函數(shù)S (在統(tǒng)計學(xué)中,殘差平方和函數(shù)可以看成n倍的均方誤差MSE) 當(dāng) ? 時, ? 取最小值,記作: 通過對 ? 進(jìn)行微分[2]??求最值,可以得到: 如果矩陣 ? 非奇異則 ? 有唯一解[3]??:
原理
在我們研究兩個變量(x,y)之間的相互關(guān)系時,通常可以得到一系列成對的數(shù)據(jù)(x1,y1.x2,y2... xm,ym);將這些數(shù)據(jù)描繪在x -y直角坐標(biāo)系中,若發(fā)現(xiàn)這些點(diǎn)在一條直線附近,可以令這條直線方程如(式1-1)。 ? (式1-1) 其中:a0、a1 是任意實(shí)數(shù) 為建立這直線方程就要確定a0和a1,應(yīng)用《最小二乘法原理》,將實(shí)測值Yi與利用計算值Yj(Yj=a0+a1X)(式1-1)的離差(Yi-Yj)的平方和 ? 最小為“優(yōu)化判據(jù)”。 令:φ = ? (式1-2) 把(式1-1)代入(式1-2)中得: φ = ? (式1-3) 當(dāng) ? 最小時,可用函數(shù) φ 對a0、a1求偏導(dǎo)數(shù),令這兩個偏導(dǎo)數(shù)等于零。 ∑2(a0 + a1*Xi - Yi)=0(式1-4) ∑2Xi(a0 +a1*Xi - Yi)=0(式1-5) 亦即: na0 + (∑Xi ) a1 = ∑Yi (式1-6) (∑Xi ) a0 + (∑Xi^2 ) a1 = ∑(Xi*Yi) (式1-7) 得到的兩個關(guān)于a0、 a1為未知數(shù)的兩個方程組,解這兩個方程組得出: a0 = (∑Yi) / n - a1(∑Xi) / n (式1-8) a1 = [n∑(Xi Yi) - (∑Xi ∑Yi)] / (n∑Xi^2 -∑Xi∑Xi)(式1-9) 這時把a(bǔ)0、a1代入(式1-1)中, 此時的(式1-1)就是我們回歸的一元線性方程即:數(shù)學(xué)模型。 在回歸過程中,回歸的關(guān)聯(lián)式不可能全部通過每個回歸數(shù)據(jù)點(diǎn)(x1,y1. x2,y2...xm,ym),為了判斷關(guān)聯(lián)式的好壞,可借助相關(guān)系數(shù)“R”,統(tǒng)計量“F”,剩余標(biāo)準(zhǔn)偏差“S”進(jìn)行判斷;“R”越趨近于 1 越好;“F”的絕對值越大越好;“S”越趨近于 0 越好。 R = [∑XiYi - m (∑Xi / m)(∑Yi / m)]/ SQR{[∑Xi2 - m (∑Xi / m)2][∑Yi2 - m (∑Yi / m)2]} (式1-10) * 在(式1-10)中,m為樣本容量,即實(shí)驗次數(shù);Xi、Yi分別為任意一組實(shí)驗數(shù)據(jù)X、Y的數(shù)值。[1]?公式
擬合
對給定數(shù)據(jù)點(diǎn)集合 ? ,在取定的函數(shù)類 ? 中,求 ? ,使誤差的平方和 ? 最小, ? 。從幾何意義上講,就是尋求與給定點(diǎn)集 ? 的距離平方和為最小的曲線y=p(x)。函數(shù)p(x)稱為擬合函數(shù)或最小二乘解,求擬合函數(shù)p(x)的方法稱為曲線擬合的最小二乘法。[1]? 最小二乘法的矩陣形式 最小二乘法的矩陣形式為: 其中 ? 為 ? 的矩陣, ? 為 ? 的列向量, ? 為 ? 的列向量。如果 ? (方程的個數(shù)小于未知量的個數(shù)),這個方程系統(tǒng)稱為矛盾方程組(Over Determined System),如果 ? (方程的個數(shù)小于未知量的個數(shù)),這個系統(tǒng)就是Under Determined System。 正常來看,這個方程是沒有解的,但在數(shù)值計算領(lǐng)域,我們通常是計算 ? ,解出其中的 ? 。比較直觀的做法是求解 ? ,但通常比較低效。其中一種常見的解法是對 ? 進(jìn)行QR分解( ? ),其中 ? 是 ? 正交矩陣(Orthonormal Matrix), ? 是 ? 上三角矩陣(Upper Triangular Matrix),則有 用MATLAB命令| 1 | x=R\(Q\b) |
課題
從前面的學(xué)習(xí)中, 我們知道最小二乘法可以用來處理一組數(shù)據(jù), 可以從一組測定的數(shù)據(jù)中尋求變量之間的依賴關(guān)系, 這種函數(shù)關(guān)系稱為經(jīng)驗公式. 本課題將介紹最小二乘法的精確定義及如何尋求點(diǎn)與點(diǎn)之間近似成線性關(guān)系時的經(jīng)驗公式. 假定實(shí)驗測得變量之間的 n個數(shù)據(jù), 則在 平面上, 可以得到 n個點(diǎn) , 這種圖形稱為“散點(diǎn)圖”, 從圖中可以粗略看出這些點(diǎn)大致散落在某直線近旁, 我們認(rèn)為 與 之間近似為一線性函數(shù), 下面介紹求解步驟. 考慮函數(shù) , 其中 和 是待定常數(shù). 如果在一直線上,可以認(rèn)為變量之間的關(guān)系為一元函數(shù) . 但一般說來, 這些點(diǎn)不可能在同一直線上. 它只能用直線來描述 , 時, 計算值 與實(shí)際值 產(chǎn)生的偏差. 當(dāng)然要求偏差越小越好, 但由于 可正可負(fù), 因此不能認(rèn)為總偏差 時, 函數(shù) 就很好地反映了變量之間的關(guān)系, 因為此時每個偏差的絕對值可能很大. 為了改進(jìn)這一缺陷, 就考慮用 來代替 . 但是由于絕對值不易作解析運(yùn)算, 因此, 進(jìn)一步用 來度量總偏差. 因偏差的平方和最小可以保證每個偏差都不會很大. 于是問題歸結(jié)為確定 中的常數(shù) 和 , 使 為最小. 用這種方法確定系數(shù) , 的方法稱為最小二乘法. 由極值原理得 , 即 解此聯(lián)立方程得 (*) 問題 I 為研究某一化學(xué)反應(yīng)過程中, 溫度 ℃)對產(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)算編寫一個小的程序, 求經(jīng)驗公式 ; (程序編寫思路為: 任意給定兩個集合A (此處表示溫度)、B(此處表示得率), 由公式(*)可定義兩個二元函數(shù)(集合A和B為其變量)分別表示 和 . 集合A元素求和: Apply[Plus,A] 表示將加法施加到集合A上, 即各元素相加, 例如Apply[Plus,{1,2,3}]=6;Length[A]表示集合A 元素的個數(shù), 即為n; A.B表示兩集合元素相乘相加;A*B表示集合A與B元素對應(yīng)相乘得到的新的集合.) (4) 在同一張圖中顯示直線 及散點(diǎn)圖; (5) 估計溫度為200時產(chǎn)品得率. 然而, 不少實(shí)際問題的觀測數(shù)據(jù) , , …, 的散點(diǎn)圖明顯地不能用線性關(guān)系來描敘, 但確實(shí)散落在某一曲線近旁, 這時可以根據(jù)散點(diǎn)圖的輪廓和實(shí)際經(jīng)驗, 選一條曲線來近似表達(dá) 與 的相互關(guān)系. 問題 II 下表是美國舊轎車價格的調(diào)查資料, 今以 表示轎車的使用年數(shù), (美元)表示相應(yīng)的平均價格, 求 與 之間的關(guān)系. 使用年數(shù) 1 2 3 4 5 6 7 8 9 10 平均價格 2651 1943 1494 1087 765 538 484290 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)于 的圖形.思考與練習(xí)
1. 假設(shè)一組數(shù)據(jù) : , , …, 變量之間近似成線性關(guān)系, 試?yán)眉系挠嘘P(guān)運(yùn)算, 編寫一簡單程序: 對于任意給定的數(shù)據(jù)集合 , 通過求解極值原理所包含的方程組, 不需要給出 、 計算的表達(dá)式, 立即得到 、 的值, 并就本課題 I /(3)進(jìn)行實(shí)驗. 注: 利用Transpose函數(shù)可以得到數(shù)據(jù)A的第一個分量的集合, 命令格式為: 先求A的轉(zhuǎn)置, 然后取第一行元素, 即為數(shù)據(jù)A的第一個分量集合, 例如 (A即為矩陣 ) = (數(shù)據(jù)A的第一個分量集合) = (數(shù)據(jù)A的第二個分量集合) B-C表示集合B與C對應(yīng)元素相減所得的集合, 如 = . 2. 最小二乘法在數(shù)學(xué)上稱為曲線擬合, 請使用擬合函數(shù)“Fit”重新計算 與 的值, 并與先前的結(jié)果作一比較. 注: Fit函數(shù)使用格式: 設(shè)變量為x, 對數(shù)據(jù)A進(jìn)行線性擬合, 如對題1中的A擬合函數(shù)為:實(shí)例
| 數(shù)據(jù)編號 | 1 | 2 | 3 | 4 |
| 實(shí)驗次數(shù)w | 2 | 1 | 1 | 1 |
| x | 0.1 | 0.2 | 0.3 | 0.4 |
| y | 1.1 | 1.9 | 3.1 | 3.9 |
http://jingyan.baidu.com/article/59a015e3accd13f7948865a9.html
?
總結(jié)
- 上一篇: 大型网站架构文章
- 下一篇: java jsp失效问题--待解决