最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MATLAB偏最小二乘回歸(PLSR)和主成分回歸(PCR)分析光譜數(shù)據(jù)|附代碼數(shù)據(jù)

2023-06-13 22:48 作者:拓端tecdat  | 我要投稿

全文鏈接:http://tecdat.cn/?p=2655

最近我們被客戶要求撰寫關于偏最小二乘回歸(PLSR)和主成分回歸(PCR)的研究報告,包括一些圖形和統(tǒng)計輸出。

此示例顯示如何在matlab中應用偏最小二乘回歸(PLSR)和主成分回歸(PCR),并討論這兩種方法的有效性

當存在大量預測變量時,PLSR和PCR都是對因變量建模的方法,并且這些預測變量高度相關或甚至共線性。兩種方法都將新的預測變量(稱為成分)構(gòu)建為原始預測變量的線性組合,但它們以不同的方式構(gòu)造這些成分。PCR創(chuàng)建成分來解釋預測變量中觀察到的變異性,而根本不考慮因變量。另一方面,PLSR確實將因變量考慮在內(nèi),因此通常會導致模型能夠使用更少的成分來適應因變量。

加載數(shù)據(jù)

加載包括401個波長的60個汽油樣品的光譜強度及其辛烷值的數(shù)據(jù)集。

set(gcf,'DefaultAxesColorOrder',jet(60));xlabel('Wavelt Inde'); ylabel('Oct'); axis('tiht');grid on

點擊標題查閱往期內(nèi)容

Matlab中的偏最小二乘法(PLS)回歸模型,離群點檢測和變量選擇

左右滑動查看更多

01

02

03

04

使用兩個擬合數(shù)據(jù)

使PLSR模型擬合10個PLS成分和一個因變量。

為了充分擬合數(shù)據(jù),可能需要十個成分,但可以使用此擬合的診斷來選擇具有更少成分的更簡單模型。例如,選擇成分數(shù)量的一種快速方法是將因變量中解釋的方差百分比繪制為成分數(shù)量的函數(shù)。

在實踐中,在選擇成分數(shù)量時可能需要更加謹慎。例如,交叉驗證是一種廣泛使用的方法,稍后將在本示例中進行說明。目前,上圖顯示具有兩個成分的PLSR解釋了觀察到的大部分方差y。計算雙組分模型的擬合因變量。

接下來,擬合具有兩個主要成分的PCR模型。第一步是X使用該pca函數(shù)執(zhí)行主成分分析,并保留兩個主成分。然后,PCR只是這兩個成分的因變量的線性回歸。當變量具有非常不同的可變性時,通常首先通過其標準偏差來規(guī)范每個變量。

從某種意義上說,上圖中的比較并不合理 - 通過觀察雙組分PLSR模型預測因變量的程度來選擇成分數(shù)(兩個),并且沒有說明為什么PCR模型應該限制相同數(shù)量的成分。然而,使用相同數(shù)量的成分,PLSR做得更好。實際上,觀察上圖中擬合值的水平分布,使用兩個分量的PCR幾乎不比使用常數(shù)模型好。回歸的r方值證實了這一點。

比較兩種模型的預測能力的另一種方法是在兩種情況下將因變量繪制成兩個預測變量。

如果不能以交互方式旋轉(zhuǎn)圖形,有點難以看到,但上面的PLSR圖顯示了緊密分散在平面上的點。另一方面,下面的PCR圖顯示點幾乎沒有線性關系。

請注意,盡管兩個PLS成分是觀察到的更好的預測因子,但下圖顯示它們解釋的方差比例比PCR中使用的前兩個主成分少。

PCR曲線一致性較高的事實表明,為什么使用兩種成分的PCR相對于PLSR在擬合時表現(xiàn)很差。PCR構(gòu)建成分以便最好地解釋X,因此,前兩個成分忽略了數(shù)據(jù)擬合中觀察到的重要信息y。

擬合更多成分

隨著在PCR中添加更多成分,它必然會更好地擬合原始數(shù)據(jù)y,這僅僅是因為在某些時候,大多數(shù)重要的預測信息X將存在于主要成分中。例如,使用10個成分時,兩種方法的殘差遠小于兩個成分的殘差。

交叉驗證

在預測未來變量的觀察結(jié)果時,選擇成分數(shù)量以減少預期誤差通常很有用。簡單地使用大量成分將很好地擬合當前觀察到的數(shù)據(jù),但這是一種導致過度擬合的策略。過于擬合當前數(shù)據(jù)會導致模型不能很好地推廣到其他數(shù)據(jù),并對預期誤差給出過度樂觀的估計。

交叉驗證是一種更加統(tǒng)計上合理的方法,用于選擇PLSR或PCR中的成分數(shù)量。它通過不重復使用相同的數(shù)據(jù)來擬合模型和估計預測誤差來避免過度擬合數(shù)據(jù)。因此,預測誤差的估計不會樂觀地向下偏差。

pls可以選擇通過交叉驗證來估計均方預測誤差(MSEP),在這種情況下使用10倍CV。

plsreg(X,y,10,'CV',10);

對于PCR,crossval結(jié)合用于計算PCR的平方誤差之和,可以再次使用10倍交叉驗證來估計MSEP。

?sum(crossval(@?pcrsse,X,y,'KFold',10),1)/?n;

PLSR的MSEP曲線表明兩個或三個成分好。另一方面,PCR需要四個成分才能獲得相同的預測精度。

事實上,PCR中的第二個成分會增加模型的預測誤差,這表明該成分中包含的預測變量的組合與其沒有很強的相關性y。再次,這是因為PCR構(gòu)建成分來解釋X,而不是y。

模型簡約

因此,如果PCR需要四個成分來獲得與具有三個成分的PLSR相同的預測精度,那么PLSR模型是否更加簡約?這取決于您考慮的模型的哪個方面。

PLS權(quán)重是定義PLS分量的原始變量的線性組合,即,它們描述了PLSR中的每個分量依賴于原始變量的權(quán)重。

類似地,PCA載荷描述了PCR中每個成分依賴于原始變量的強度。

對于PLSR或PCR,可以通過檢查每個成分最重要的變量來為每個成分提供有意義的解釋。例如,利用這些光譜數(shù)據(jù),可以根據(jù)汽油中存在的化合物解釋強度峰值,然后觀察特定成分的權(quán)重挑選出少量這些化合物。從這個角度來看,更少的成分更易于解釋,并且由于PLSR通常需要更少的成分來充分預測因變量,因此會導致更簡約的模型。

另一方面,PLSR和PCR都導致每個原始預測變量的一個回歸系數(shù)加上截距。從這個意義上講,兩者都不是更簡約,因為無論使用多少成分,兩種模型都依賴于所有預測變量。更具體地,對于這些數(shù)據(jù),兩個模型都需要401個光譜強度值以進行預測。

然而,最終目標可能是將原始變量集減少到仍然能夠準確預測因變量的較小子集。例如,可以使用PLS權(quán)重或PCA載荷來僅選擇對每個成分貢獻最大的那些變量。如前所示,來自PCR模型擬合的一些成分可主要用于描述預測變量的變化,并且可包括與因變量不強相關的變量的權(quán)重。因此,PCR會導致保留預測不必要的變量。

對于本例中使用的數(shù)據(jù),PLSR和PCR所需的成分數(shù)量之間的差異不是很大,PLS權(quán)重和PCA載荷選擇了相同的變量。其他數(shù)據(jù)可能并非如此。

有問題歡迎下方留言!

點擊文末?“閱讀原文”

獲取全文完整資料。

本文選自《偏最小二乘回歸(PLSR)和主成分回歸(PCR)分析光譜數(shù)據(jù)》。

點擊標題查閱往期內(nèi)容

R語言實現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸
Matlab中的偏最小二乘法(PLS)回歸模型,離群點檢測和變量選擇
R語言實現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸
R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸R語言Lasso回歸模型變量選擇和糖尿病發(fā)展預測模型
R語言實現(xiàn)貝葉斯分位數(shù)回歸、lasso和自適應lasso貝葉斯分位數(shù)回歸分析
Python貝葉斯回歸分析住房負擔能力數(shù)據(jù)集
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
R語言區(qū)間數(shù)據(jù)回歸分析
R語言用LOESS(局部加權(quán)回歸)季節(jié)趨勢分解(STL)進行時間序列異常檢測
PYTHON用時變馬爾可夫區(qū)制轉(zhuǎn)換(MRS)自回歸模型分析經(jīng)濟時間序列
R語言隨機森林RandomForest、邏輯回歸Logisitc預測心臟病數(shù)據(jù)和可視化分析
基于R語言實現(xiàn)LASSO回歸分析
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
使用R語言進行多項式回歸、非線性回歸模型曲線擬合
R語言中的偏最小二乘回歸PLS-DAR語言生態(tài)學建模:增強回歸樹(BRT)預測短鰭鰻生存分布和影響因素
R語言實現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸
Matlab中的偏最小二乘法(PLS)回歸模型,離群點檢測和變量選擇
偏最小二乘回歸(PLSR)和主成分回歸(PCR)
R語言如何找到患者數(shù)據(jù)中具有差異的指標?(PLS—DA分析)?R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸R語言Lasso回歸模型變量選擇和糖尿病發(fā)展預測模型
R語言實現(xiàn)貝葉斯分位數(shù)回歸、lasso和自適應lasso貝葉斯分位數(shù)回歸分析
Python貝葉斯回歸分析住房負擔能力數(shù)據(jù)集
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
R語言區(qū)間數(shù)據(jù)回歸分析
R語言用LOESS(局部加權(quán)回歸)季節(jié)趨勢分解(STL)進行時間序列異常檢測
PYTHON用時變馬爾可夫區(qū)制轉(zhuǎn)換(MRS)自回歸模型分析經(jīng)濟時間序列
R語言隨機森林RandomForest、邏輯回歸Logisitc預測心臟病數(shù)據(jù)和可視化分析
基于R語言實現(xiàn)LASSO回歸分析
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
使用R語言進行多項式回歸、非線性回歸模型曲線擬合
R語言中的偏最小二乘回歸PLS-DA
R語言生態(tài)學建模:增強回歸樹(BRT)預測短鰭鰻生存分布和影響因素
R語言生態(tài)學建模:增強回歸樹(BRT)預測短鰭鰻生存分布和影響因素
R語言實現(xiàn)偏最小二乘回歸法 partial least squares (PLS)回歸
Matlab中的偏最小二乘法(PLS)回歸模型,離群點檢測和變量選擇
偏最小二乘回歸(PLSR)和主成分回歸(PCR)
R語言如何找到患者數(shù)據(jù)中具有差異的指標?(PLS—DA分析)


MATLAB偏最小二乘回歸(PLSR)和主成分回歸(PCR)分析光譜數(shù)據(jù)|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
浮梁县| 奇台县| 福贡县| 清水河县| 无锡市| 涞水县| 南昌县| 镇原县| 阿荣旗| 濮阳市| 宁德市| 东光县| 马关县| 鄄城县| 长治县| 沁阳市| 朝阳区| 桃江县| 新巴尔虎左旗| 大连市| 柘荣县| 奉节县| 德兴市| 瑞昌市| 巴彦淖尔市| 安康市| 祁阳县| 淮安市| 曲阜市| 海林市| 柳江县| 深圳市| 濮阳市| 清远市| 谢通门县| 榆林市| 乌鲁木齐市| 阿勒泰市| 宁武县| 英吉沙县| SHOW|