Matlab最小二乘法:線性最小二乘、加權(quán)線性最小二乘、穩(wěn)健最小二乘、非線性最小二乘與
原文鏈接:http://tecdat.cn/?p=26624?
原文出處:拓端數(shù)據(jù)部落公眾號
?
?
matlab軟件在擬合數(shù)據(jù)時使用最小二乘法。擬合需要一個參數(shù)模型,該模型將因變量數(shù)據(jù)與具有一個或多個系數(shù)的預(yù)測數(shù)據(jù)相關(guān)聯(lián)。擬合過程的結(jié)果是模型系數(shù)的估計。
為了獲得系數(shù)估計,最小二乘法最小化殘差的平方和。第i個數(shù)據(jù)點ri的殘差定義為觀測因變量值yi與擬合因變量值?i之間的差值,并標識為與數(shù)據(jù)相關(guān)的誤差。
殘差的平方和由下式給出
其中?n?是擬合中包含的數(shù)據(jù)點的數(shù)量,??S?是誤差估計的平方和。支持的最小二乘擬合類型包括:
線性最小二乘
加權(quán)線性最小二乘
穩(wěn)健最小二乘
非線性最小二乘
誤差分布
在擬合包含隨機變化的數(shù)據(jù)時,通常會對誤差做出兩個重要假設(shè):
誤差僅存在于響應(yīng)數(shù)據(jù)中,而不存在于預(yù)測數(shù)據(jù)中。
誤差是隨機的,并遵循均值為零且方差為?σ?2 的正態(tài)(高斯)分布。
第二個假設(shè)通常表示為
假設(shè)誤差是正態(tài)分布的,因為正態(tài)分布通常為許多測量量的分布提供足夠的近似值。
線性最小二乘
使用線性最小二乘法將線性模型擬合到數(shù)據(jù)。線性模型定義為系數(shù)為線性的??方程。例如,多項式是線性的,但高斯不是。為了說明線性最小二乘擬合過程,假設(shè)您有?n?個可以通過一次多項式建模的數(shù)據(jù)點。
為了求解未知系數(shù)?p?1 和?p?2 的這個方程,你可以將?S?寫成一個由兩個未知數(shù)組成的?n 個?聯(lián)立線性方程組。如果?n?大于未知數(shù)的數(shù)量。
因為最小二乘擬合過程使殘差的平方和最小化,所以通過?對每個參數(shù)對S?進行微分來確定系數(shù),并將結(jié)果設(shè)置為零。
真實參數(shù)的估計值通常用?b表示。用b?1 和?b?2 代替?p??1和?p?2,前面的方程變?yōu)?/p>
其中總和從?i??= 1 到?n。方程?定義為
求解?b?1
使用?b?1 值求解?b 2
如您所見,估計系數(shù)?p?1 和?p?2 只需要一些簡單的計算。將此示例擴展到更高次的多項式很簡單,盡管有點乏味。所需要的只是添加到模型中的每個線性項的附加正規(guī)方程。
在矩陣形式中,線性模型由公式給出
其中
y?是一個?n?×1 因變量向量。
β 是一個?m?× 1 的系數(shù)向量。
-
X?是模型的?n?×?m?設(shè)計矩陣。
ε 是一個?n?× 1 誤差向量。
對于一次多項式,兩個未知數(shù)中的?n 個?方程用?y、??X和 β 表示為
該問題的最小二乘解是一個向量?b,它估計系數(shù) β 的未知向量。正規(guī)方程由下式給出
其中?XT?是設(shè)計矩陣?X的轉(zhuǎn)置。求解?b,
?
您可以將?b插?回模型公式以獲取預(yù)測的因變量值??。
殘差由下式給出
加權(quán)最小二乘
通常假設(shè)因變量數(shù)據(jù)具有恒定的方差。如果違反此假設(shè),您的擬合可能會受到低質(zhì)量數(shù)據(jù)的過度影響。為了改善擬合,您可以使用加權(quán)最小二乘回歸,其中在擬合過程中包含一個額外的比例因子(權(quán)重)。加權(quán)最小二乘回歸最小化誤差估計
其中?wi?是權(quán)重。權(quán)重確定每個響應(yīng)值對最終參數(shù)估計的影響程度。與低質(zhì)量數(shù)據(jù)點相比,高質(zhì)量數(shù)據(jù)點對擬合的影響更大。如果權(quán)重已知,或者有理由證明它們遵循特定形式,則建議對數(shù)據(jù)進行加權(quán)。
您通??梢酝ㄟ^擬合數(shù)據(jù)和繪制殘差來確定方差是否不恒定。在下面顯示的圖中,數(shù)據(jù)包含各種質(zhì)量的重復(fù)數(shù)據(jù),并且假設(shè)擬合是正確的。殘差圖中顯示了質(zhì)量差的數(shù)據(jù),殘差圖具有“漏斗”形狀,其中小的預(yù)測值在因變量值中產(chǎn)生的散布比大的預(yù)測值更大。
穩(wěn)健最小二乘
通常假設(shè)因變量誤差服從正態(tài)分布,極值很少見。盡管如此,仍然會出現(xiàn)稱為異常值的極端值??。
最小二乘擬合的主要缺點是它對異常值的敏感性。異常值對擬合有很大影響,因為對殘差進行平方會放大這些極端數(shù)據(jù)點的影響。為了最大限度地減少異常值的影響,您可以使用穩(wěn)健的最小二乘回歸擬合您的數(shù)據(jù)。
-
最小絕對殘差 (LAR) — LAR 方法找到一條曲線,該曲線使殘差的絕對差值(而不是平方差)最小化。因此,極值對擬合的影響較小。
-
Bisquare weights - 此方法最小化加權(quán)平方和,其中賦予每個數(shù)據(jù)點的權(quán)重取決于該點與擬合線的距離。線附近的點獲得全部權(quán)重。離線較遠的點會減輕重量。比隨機機會預(yù)期的距離線更遠的點的權(quán)重為零。
在大多數(shù)情況下,雙平方權(quán)重方法優(yōu)于 LAR,因為它同時尋求使用通常的最小二乘法找到適合大部分數(shù)據(jù)的曲線,并且可以最大限度地減少異常值的影響。
雙平方權(quán)重的穩(wěn)健擬合使用迭代重新加權(quán)最小二乘算法,并遵循以下過程:
通過加權(quán)最小二乘擬合模型。
-
計算?調(diào)整后的殘差?并將它們標準化。調(diào)整后的殘差由下式給出
ri?是通常的最小二乘殘差,??hi?是?通過減少高杠桿?數(shù)據(jù)點的權(quán)重來調(diào)整殘差的杠桿,這對最小二乘擬合有很大影響。標準化調(diào)整殘差由下式給出
K?是等于 4.685 的調(diào)諧常數(shù),??s是由MAD?/0.6745??給出的穩(wěn)健標準偏差,?其中MAD?是殘差的中值絕對偏差。
-
計算魯棒權(quán)重作為?u的函數(shù)。雙方權(quán)重由下式給出
請注意,如果您提供自己的回歸權(quán)重向量,則最終權(quán)重是穩(wěn)健權(quán)重和回歸權(quán)重的乘積。
如果擬合收斂,那么你就完成了。否則,通過返回第一步執(zhí)行擬合過程的下一次迭代。
下圖將常規(guī)線性擬合與使用雙方權(quán)重的穩(wěn)健擬合進行了比較。請注意,穩(wěn)健擬合遵循大量數(shù)據(jù),不受異常值的強烈影響。
非線性最小二乘
使用非線性最小二乘公式將非線性模型擬合到數(shù)據(jù)。非線性模型定義為系數(shù)為非線性的方程,或系數(shù)為線性和非線性的組合。例如,高斯、多項式的比率和冪函數(shù)都是非線性的。
在矩陣形式中,非線性模型由公式給出
?
其中
y?是一個?n?×1 響應(yīng)向量。
f?是 β 和?X的函數(shù)。
β 是一個?m?× 1 的系數(shù)向量。
X?是模型的?n?×?m?設(shè)計矩陣。
ε 是一個?n?× 1 誤差向量。
非線性模型比線性模型更難擬合,因為無法使用簡單的矩陣技術(shù)估計系數(shù)。相反,需要遵循以下步驟的迭代方法:
從每個系數(shù)的初始估計開始。對于一些非線性模型,提供了一種啟發(fā)式方法,可以產(chǎn)生合理的起始值。對于其他模型,提供了區(qū)間 [0,1] 上的隨機值。
生成當(dāng)前系數(shù)集的擬合曲線。擬合因變量值???由下式給出
???=??f?(?X?,?b?)
并且涉及計算?f?(?X,b ) 的雅可比行列式?,?它被定義為關(guān)于系數(shù)的偏導(dǎo)數(shù)矩陣。
-
調(diào)整系數(shù)并確定擬合是否有所改善。調(diào)整的方向和幅度取決于擬合算法。
通過返回到步驟 2 來迭代該過程,直到擬合達到指定的收斂標準。
您可以對非線性模型使用權(quán)重和穩(wěn)健擬合,并相應(yīng)地修改擬合過程。
穩(wěn)健擬合示例
此示例顯示如何比較排除異常值和穩(wěn)健擬合的效果。該示例顯示了如何從模型中排除大于 1.5 個標準差的任意距離處的異常值。然后,這些步驟將移除異常值與指定穩(wěn)健擬合進行比較,從而降低異常值的權(quán)重。
創(chuàng)建基準正弦信號:
y0 = sin(xata);
向具有非恒定方差的信號添加噪聲。
ydta = y0 + gnise + snise;
用基準正弦模型擬合噪聲數(shù)據(jù),并指定 3 個輸出參數(shù)以獲得包括殘差在內(nèi)的擬合信息。
f = ftye('a*sin(b*x)');
[fi1,gof,fifo] = fit(xdat
檢查 fitinfo 結(jié)構(gòu)中的信息。
從 fitinfo 結(jié)構(gòu)中獲取殘差。
rsiduls = fno.rsis;
將“異常值”識別為距基準模型大于 1.5 標準差的任意距離處的點,并在排除異常值的情況下重新擬合數(shù)據(jù)。
I = abs( resls) > 1.5 * std( esda
outlrs = exclaa(xaa,dta,'ind
fit2 = fit(xdta,yda
將排除異常值的效果與在穩(wěn)健擬合中給予它們較低的雙方權(quán)重的效果進行比較。
繪制數(shù)據(jù)、異常值和擬合結(jié)果。指定一個信息圖例。
plot(fit1,'r-',xda
繪制考慮異常值的兩個擬合的殘差:
figure
plot(fit2,xdata,ydat
hold on
plot(fit3,xdata,ydat
hold off
最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現(xiàn)
7.在R語言中實現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測股票價格
9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標