解決問題方向:對於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...