Matlab主成分分析 根據例子學原理

2021-10-09 11:03:36 字數 3038 閱讀 7240

主成分分析就是設法將原來眾多具有一定相關性的指標,重新組合成幾個新的相互無關的綜合指標,並且盡可能多地反映原來指標的資訊。它是數學上的一種降維方法。

其中 x1表示人均食品消費; x2表示人均衣著消費; x3表示家庭裝置及服務人均消費; x4表示醫療保健人均消費; x5表示交通和通訊人均消費; x6表示教育文化娛樂服務人均消費; 表x7示居住的人均消費; x8雜項商品和服務;y表示年。

主要步驟:

(1)對原來的p個指標進行標準化,以消除變數在水平和量綱上的影響;

(2)根據標準化後的資料矩陣求出相關係數矩陣 ;

(3)求出相關係數矩陣的特徵根和特徵向量 和對應的特徵向量;

(4)計算主成分貢獻率及累計貢獻率;一般取累計貢獻率達85-95%的特徵值 ,所對應的 個主成分;

(5)計算主成分荷載;

(6)對主成分載荷歸一化;

clc,clear

x=[2297.86 589.62 474.74 164.19 290.91 626.21 295.20 199.03;

2262.19 571.69 461.25 185.90 337.83 604.78 354.66 198.96;

2303.29 589.99 516.21 236.55 403.92 730.05 438.41 225.80;

2308.70 551.14 476.45 293.23 406.44 785.74 494.04 254.10;

2337.65 589.28 509.82 334.05 442.50 850.15 563.72 246.51;

2418.96 618.60 454.20 429.60 615.00 1065.12 594.48 164.28;

2702.34 735.01 475.36 459.69 790.26 1025.99 741.60 187.81;

3015.32 779.68 474.15 537.95 865.45 1200.52 903.22 196.77;

3135.65 849.53 583.50 629.32 929.92 1391.11 882.41 221.85;

3415.92 1038.98 615.74 705.72 976.02 1449.49 954.56 242.26];

x=

zscore

(x);

%資料標準化;

std=

corrcoef

(x);

%計算相關係數矩陣

[vec,val]

=eig

(std)

;%求特徵值(val)及特徵向量(vec)

newval=

diag

(val)

;%將特徵值作成乙個新向量

[y,ii]

=sort

(newval)

%對特徵根進行排序,y為排序結果,ii為索引

rate=y/

sum(y)

%計算貢獻率

sumrate=

0; newi=

;for k=

length

(y):-1

:1sumrate=sumrate+

rate

(k);

newi

(length

(y)+

1-k)=ii

(k);

if sumrate>

0.85

break

; end

endfprintf

('主成分數:%g\n\n'

,length

(newi));

for i=1:

1:length

(newi)

%計算載荷aa

for j=1:

1:length

(y)aa

(i,j)

=sqrt

(newval

(newi

(i)))*

vec(j,

newi

(i))

; end

end

aaa=aa.

*aa;

%主成分載荷歸一化zcfhz

for i=1:

1:length

(newi)

for j=1:

1:length

(y)zcfhz

(i,j)=aa

(i,j)

/sqrt

(sum

(aaa

(i,:))

);end

end

fprintf

('主成分載荷:\n'

), zcfhz %輸出主成分載荷zcfhzc

主成分數:2

計算主成分載荷:

aa =

0.9820 0.9632 0.7666 0.9831 0.9657 0.9763 0.9620 0.1481

-0.0241 0.0253 0.5461 -0.1018 -0.2272 -0.1192 -0.1300 0.9558

主成分載荷(單位化後):

a =0.3919 0.3844 0.3059 0.3923 0.3854 0.3896 0.3839 0.0591

-0.0210 0.0221 0.4778 -0.0891 -0.1988 -0.1043 -0.1138 0.8363

因此重慶城鎮居民消費水平的第一,二主成分:

1.在第一主成分的表示式中,我們可以看出第一項、二項、四項、五項、六項、七項的係數比較大,這6項指針對城鎮居民消費水平的影響較大。其中食品消費和醫療保健消費係數比另外幾項都大,說明居民現在很注重吃和健康兩方面。

2.在第二主成分表示式中,只有第八項的係數比較的係數比較大,遠遠超過其他指標的係數,因此可以單獨看作是雜項商品和服務的影響,說明人們的生活用品等雜項商品及服務在消費水平中也佔據了很大的比例。

主成分分析Matlab實現

資料匯入及處理 clcclear all a xlsread coach.xlsx b2 h16 資料標準化處理 a size a,1 b size a,2 for i 1 b sa i a i mean a i std a i end 計算相關係數矩陣的特徵值和特徵向量 cm corrcoef s...

Matlab 主成分分析(PCA)

是一種資料降維方法。保留具有代表性的主成分,捨棄比重較小的成分。演算法步驟 matlab 實現 clear all close all clc load data.mat m,n size x step1 預處理資料。均值標準化 零均值 特徵縮放 x x repmat mean x 50,1 s s...

MATLAB實現主成分分析 PCA

function ds,com num,pv,new score,new score s pca dr a,t pca dr 主成分降維及分析函式 輸入變數 a 原始資料 未標準化處理 t 設定累積貢獻率的閾值 輸出變數 ds 特徵值及貢獻率 com num 閾值t對應的主成分數 pv 閾值t對應的...