雍龍泉,賈 偉,黎延海
(1.陜西理工大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 陜西 漢中 723001;2.陜西省工業(yè)自動(dòng)化重點(diǎn)實(shí)驗(yàn)室, 陜西 漢中 723001)
最小二乘和最小一乘都是在各自的目標(biāo)函數(shù)達(dá)到最小的情形下估計(jì)參數(shù),思想上是一致的,但由于目標(biāo)函數(shù)的數(shù)學(xué)結(jié)構(gòu)不同,進(jìn)而造成了估計(jì)結(jié)果的差異.這種差異從統(tǒng)計(jì)學(xué)角度而言就形成了最小二乘和最小一乘的本質(zhì)區(qū)別:最小二乘的估計(jì)結(jié)果是條件均值,最小一乘的估計(jì)結(jié)果卻是條件中位數(shù).一般情況下,如果數(shù)據(jù)的分布是對(duì)稱且無異常值,則最小二乘得到的結(jié)果與最小一乘得到的結(jié)果相差不大;且使用最小二乘得到的結(jié)果具有唯一性,使用最小一乘得到的結(jié)果可能不唯一[1-5].
最小二乘法的優(yōu)點(diǎn)在于其有良好的數(shù)學(xué)性質(zhì),可以利用非線性規(guī)劃的方法求出最優(yōu)解[6-7],但在計(jì)算最小一乘時(shí),需求解一個(gè)不可微優(yōu)化問題(不能很好地利用已有的非線性規(guī)劃方法來計(jì)算最優(yōu)解),所以很長一段時(shí)間,對(duì)最小一乘法的研究處于停滯狀.1955年Charnes等通過把線性最小一乘轉(zhuǎn)化為線性規(guī)劃問題來求解,之后求解最小一乘的算法就不斷涌現(xiàn)[8-15].針對(duì)非線性最小一乘如何求解還需要深入研究.
圖1 非線性最小二乘擬合的幾何意義
圖2 非線性最小一乘擬合的幾何意義
論文對(duì)給定的非線性數(shù)據(jù)分別建立了以殘差為目標(biāo)的非線性最小二乘與最小一乘模型,采用正弦余弦算法確定相關(guān)參數(shù),應(yīng)用于無異常值的模型和包含一個(gè)異常值的模型.結(jié)果表明最小二乘估計(jì)容易受異常值的影響,而最小一乘是殘差的絕對(duì)值和而并非平方和,受異常值的影響小得多,具有比最小二乘更好的穩(wěn)定性.
給定n組離散數(shù)據(jù)(ti,ci),i=1,2,…,n,尋找擬合曲線f(t,X),使得擬合的殘差最小.論文分別建立如下優(yōu)化模型
(1)
(2)
模型(1)采用最小二乘,模型(2)采用最小一乘.
采用一種新的啟發(fā)式算法:正弦余弦算法(sine cosine algorithm, 簡(jiǎn)稱SCA)來確定參數(shù)X,模型(1)與(2)是一個(gè)無約束優(yōu)化問題minS(X).采用最小二乘時(shí),目標(biāo)函數(shù)為
(3)
采用最小一乘時(shí),目標(biāo)函數(shù)為
(4)
下面采用正弦余弦算法求解(3),(4).正弦余弦算法的主要步驟如下:
初始化算法參數(shù): 種群規(guī)模N,空間維數(shù)D,控制參數(shù)a,最大迭代次數(shù)Tmax;
在可行域空間中隨機(jī)初始化N個(gè)個(gè)體組成初始種群;t=1;
計(jì)算當(dāng)前每個(gè)個(gè)體的適應(yīng)值,并記錄最優(yōu)個(gè)體位置P(t);
while(t fori=1 toNdo//對(duì)每一個(gè)個(gè)體進(jìn)行更新 forj=1 toDdo//對(duì)每一維上進(jìn)行更新 根據(jù)式r1=a-at/Tmax計(jì)算r1的值; 隨機(jī)產(chǎn)生r2∈U[0,2π],r3∈U[0,2],r4∈U[0,1]; ifr4<0.5 (5) else (6) end if end for end for 越界處理; 計(jì)算每個(gè)個(gè)體的適應(yīng)值并更新種群的最優(yōu)個(gè)體位置P(t);t=t+1; end while. SCA算法最顯著的特點(diǎn)是基于正弦函數(shù)(5)和余弦函數(shù)(6)值的變化來達(dá)到尋優(yōu)目的,其結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn).在SCA算法中,主要參數(shù)有r1,r2,r3,r4,最關(guān)鍵的參數(shù)r1控制算法從全局搜索到局部開發(fā)的轉(zhuǎn)換.更多SCA算法詳見文獻(xiàn)[16-22]. 給定的數(shù)據(jù)見表1,2,表1中的數(shù)據(jù)無異常值,表2中的數(shù)據(jù)包含一個(gè)異常值.對(duì)表1,2中的數(shù)據(jù)分別采用最小二乘和最小一乘.算法程序用Matlab R2009a編寫.為消除隨機(jī)數(shù)對(duì)算法的影響,SCA算法運(yùn)行10次后,選取最優(yōu)結(jié)果(即誤差最小)進(jìn)行擬合.SCA算法參數(shù)設(shè)置:種群規(guī)模N=30,控制參數(shù)a=2,最大迭代次數(shù)Tmax=2 000,搜索空間為[-5,15]3. 算例已知某因變量c與自變量t滿足的關(guān)系式為 c=x1t2+x2t+x3?f(t,X), 其中:X=(x1,x2,x3)是待定參數(shù).對(duì)變量c,t觀測(cè)9次,得到的數(shù)據(jù)如表1所示. 表1 給定的數(shù)據(jù)(無異常值) 建立優(yōu)化模型為 (7) (8) 模型(7)采用最小二乘,模型(8)采用最小一乘.模型(7)采用SCA算法得到最優(yōu)解XLSR=(0.272 6, -3.640 8, 13.460 8).模型(8)采用SCA算法得到最優(yōu)解XLAD=(0.267 6, -3.631 5, 13.498 6).兩種方法的擬合曲線如圖3所示. 由于一個(gè)錯(cuò)誤輸入數(shù)據(jù),得到含有異常值的數(shù)據(jù),見表2. 表2 含有1個(gè)異常值的數(shù)據(jù) 圖3 無異常值的非線性最小二乘與最小一乘擬合結(jié)果 圖4 有異常值的非線性最小二乘與最小一乘擬合結(jié)果 表3給出了詳細(xì)的擬合值與誤差. 表3 SCA算法計(jì)算結(jié)果 從上述結(jié)果來看:無異常值時(shí),最小二乘與最小一乘得到的結(jié)果相差不大;有異常值時(shí),最小二乘的結(jié)果偏向異常值,而最小一乘變化較小,這充分表明異常值對(duì)最小二乘有著比較大的影響,而對(duì)最小一乘的影響較小.這主要是因?yàn)?當(dāng)數(shù)據(jù)中含有異常值時(shí),異常值有較大的偏差,其平方值(幾何意義即面積)相對(duì)更大.為了“優(yōu)化”平方和,就不能不“將就”這些點(diǎn),因而增加了殘差大的數(shù)據(jù)對(duì)擬合曲線的影響,使得異常值會(huì)把擬合曲線拉得離異常值更近一些,導(dǎo)致擬合結(jié)果失真.因此,對(duì)含有異常值的數(shù)據(jù)進(jìn)行擬合時(shí),應(yīng)選擇最小一乘以減少異常值對(duì)擬合結(jié)果的影響.3 算 例