數學建模學習 偏最小二乘回歸PLSR原理和板子

2021-10-07 17:03:34 字數 3555 閱讀 7419

解決問題方向:對於n個自變數,m個因變數的建模問題。

原理:首先在自變數集中提出第一主成分u1(pca,x1…xn的線性組合),同時在因變數中集中提出第一主成分v1,並要求u1,v1的相關程度達到最大。然後建立有y1…ym對u1的回歸,如果回歸方程已達到滿意的精度則演算法終止,否則繼續第二主成分的提取,直到能達到滿意的精度為止。

若最終對自變數提取了r個成分,u1…ur,plsr將通過建立y1…ym與u1…ur的回歸式,然後再表示成y1…ym與原自變數的回歸方程序,即最小二乘回歸方程序。

板子以及說明:(問題背景詳情見司守奎的《數學建模演算法與應用》對應章節)

matlab**:

clc,clear

ab0 =

load

('pz.txt');

mu =

mean

(ab0)

;%均值

sig =

std(ab0)

;% 標準差

rr =

corrcoef

(ab0)

%相關係數矩陣

ab =

zscore

(ab0)

;%資料標準化

a =ab(:

,[1:

3]);

%標準化的x

b =ab(:

,[4:end]);

%標準化的y

% pls命令需要標準化變數[xl

,yl,xs

,ys,beta

,pctvar

,mse

,stats]

=plsregress

(a,b)

contr =

cumsum

(pctvar,2

)%每行累計求和,即計算累計貢獻率

xw = a\xs

%自變數提出主成分係數,每列對應乙個成分,這個就是stats.

wyw = b\ys

%因變數提出的主成分係數

ncomp =

input

('輸入主成分個數')[

xl2,

yl2,

xs2,

ys2,

beta2

,pctvar2

,mse2

,stats2]

=plsregress

(a,b,ncomp)

n =size

(a,2);

% n是自變數個數

m =size

(b,2);

%求原始資料回歸方程常數項

beta3(1

,:)=

mu(n+

1:end)-mu

(1:n).

/sig(1

:n)*

beta2([

2:end],:

).*sig

(n+1

:end)

;%求原始資料x1,x2...xn的係數,每一列是乙個回歸方程

beta3([

2:n+1]

,:)=

(1./sig(1

:n))'*

sig(n+

1:end).*

beta2([

2:end],:

)bar

(beta2

','k')

%畫直方圖

yhat=

repmat

(beta3(1

,:),

[size

(a,1),

1])+

ab0(:,

[1:n])

*beta3([

2:end],:

)%求y1,y2...ym的**值

ymax=

max(

[yhat;

ab0(:,

[n+1

:end])]

);%求**值和觀測值的最大值

%下面畫y1,y2,y3的**圖,並畫直線y=x

figure,

subplot(2

,2,1

)plot

(yhat(:

,1),

ab0(

:,n+1)

,'*',[

0:ymax(1

)],[

0:ymax(1

)],'color'

,'k')%

legend

('單槓成績**圖',2

)subplot(2

,2,2

)plot

(yhat(:

,2),

ab0(

:,n+2)

,'o',[

0:ymax(2

)],[

0:ymax(2

)],'color'

,'k')%

legend

('彎曲成績**圖',2

)subplot(2

,2,3

)plot

(yhat(:

,3),

ab0(

:,n+3)

,'h',[

0:ymax(3

)],[

0:ymax(3

)],'color'

,'k')%

legend

('跳高成績**圖',2

)%如果**圖上,所有點都能在圖的對角線附近均勻分布,則方程的擬合值與原值差異很小哦這個方程的擬合效果就是令人滿意的,否則主成分個數再+

1

pz.txt文字說明:前3列為自變數,後3列為因變數;一行為乙個樣本

191

3650

5162

60189

3752

2110

60193

3858

12101

101162

3562

12105

37189

3546

13155

58182

3656

4101

42211

3856

8101

38167

3460

6125

40176

3174

15200

40154

3356

17251

250169

3450

17120

38166

3352

13210

115154

3464

14215

105247

4650150

50193

3646670

31202

3762

12210

120176

3754460

25157

3252

11230

80156

3354

15225

73138

3368

2110

43

《數學建模》 偏最小二乘法回歸分析

偏最小二乘回歸是一種新型的多元統計資料分析方法,它與1983年由伍德和阿巴諾等人首次提出。近十年來,它在理論 方法和應用方面都得到了迅速的發展。密西根大學的弗耐爾教授稱偏最小二乘回歸為第二代回歸分析方法。偏最小二乘回歸方法在統計應用中的重要性主要的有以下幾個方面 1 偏最小二乘回歸是一種多因變數對多...

MATLAB 偏最小二乘回歸演算法

設有q個因變數和p個自變數。為了研究因變數和自變數的統計關係,觀測n個樣本點,構成了自變數與因變數的資料表x 1 兩個成分盡可能多的攜帶他們各自資料表的變異資訊。2 兩個成分的相關程度達到最大。也就是說,他們能夠盡可能好地代表各自的資料表,同時自變數成分 在第乙個成分被成功提取後,分別實施x對 該m...

偏最小二乘回歸(基於MATLAB)

clc clear all 匯入資料 load data.mat s data data 1 27,29 n 27 n 是自變數的個數 m 1 m 是因變數的個數 讀取訓練資料 train num 1600 訓練樣本數 train data s data 1 train num,mu mean tr...