主成分分析法(PCA) 降維

2021-10-25 16:20:42 字數 2731 閱讀 6272

主成分分析是一種降維演算法,它能將多個指標轉換為少數幾

個主成分,這些主成分是原始變數的線性組合,且彼此之間

互不相關,其能反映出原始資料的大部分資訊。一般來說,

當研究的問題涉及到多變數且變數之間存在很強的相關性時,

我們可考慮使用主成分分析的方法來對資料進行簡化。

樣本標準化

計算標準化樣本協方差矩陣

計算r的特徵值和特徵向量

得出主成分貢獻率和累計貢獻率

利用得分矩陣算出主成分

解釋主成分含義

對於主成分分析降維以後,一般可以很好地用於聚類和回歸,但是不能用於評價模型

spss軟體更加快速,方便

資料不要忘記標準化

要對主成分的有很好的解釋

clear;clc

load data1.mat % 主成分聚類

% load data2.mat % 主成分回歸

% 注意,這裡可以對資料先進行描述性統計

% 描述性統計的內容見第5講.相關係數

[n,p]

=size

(x);

% n是樣本個數,p是指標個數

%% 第一步:對資料x標準化為x

x=zscore

(x);

% matlab內建的標準化函式(x-

mean

(x))/

std(x)

%% 第二步:計算樣本協方差矩陣

r =cov

(x);

%r =

corrcoef

(x);

disp()

disp

(r)%

% 第三步:計算r的特徵值和特徵向量

% 注意:r是半正定矩陣,所以其特徵值不為負數

% r同時是對稱矩陣,matlab計算對稱矩陣時,會將特徵值按照從小到大排列哦

[v,d]

=eig

(r);

% v 特徵向量矩陣 d 特徵值構成的對角矩陣

%% 第四步:計算主成分貢獻率和累計貢獻率

lambda =

diag

(d);

% diag函式用於得到乙個矩陣的主對角線元素值(返回的是列向量)

lambda =

lambda

(end:-1

:1);

% 因為lambda向量是從小大到排序的,我們將其調個頭

contribution_rate = lambda /

sum(lambda)

;% 計算貢獻率

cum_contribution_rate =

cumsum

(lambda)

/sum

(lambda)

;% 計算累計貢獻率 cumsum是求累加值的函式

disp

('特徵值為:'

)disp

(lambda')

% 轉置為行向量,方便展示

disp

('貢獻率為:'

)disp

(contribution_rate')

disp

('累計貢獻率為:'

)disp

(cum_contribution_rate')

disp

('與特徵值對應的特徵向量矩陣為:'

)% 注意:這裡的特徵向量要和特徵值一一對應,之前特徵值相當於顛倒過來了,因此特徵向量的各列需要顛倒過來

% rot90函式可以使乙個矩陣逆時針旋轉90度,然後再轉置,就可以實現將矩陣的列顛倒的效果

v=rot90

(v)';

disp

(v)%

% 計算我們所需要的主成分的值

m =input

('請輸入需要儲存的主成分的個數: ');

f =zeros

(n,m)

;%初始化儲存主成分的矩陣(每一列是乙個主成分)

for i =1:m

ai =v(

:,i)';

% 將第i個特徵向量取出,並轉置為行向量

ai =

repmat

(ai,n,1)

;% 將這個行向量重複n次,構成乙個n*p的矩陣

f(:, i)

=sum

(ai .

* x,2)

;% 注意,對標準化的資料求了權重後要計算每一行的和

end%%(

1)主成分聚類 : 將主成分指標所在的f矩陣複製到excel**,然後再用spss進行聚類

% 在excel第一行輸入指標名稱(f1,f2,..

., fm)

% 雙擊matlab工作區的f,進入變數編輯中,然後複製裡面的資料到excel**

% 匯出資料之後,我們後續的分析就可以在spss中進行。

%%(2)主成分回歸:將x使用主成分得到主成分指標,並將y標準化,接著匯出到excel,然後再使用stata回歸

% y =

zscore

(y);

% 一定要將y進行標準化哦~

% 在excel第一行輸入指標名稱(y,f1, f2,..

., fm)

% 分別雙擊matlab工作區的y和f,進入變數編輯中,然後複製裡面的資料到excel**

% 匯出資料之後,我們後續的分析就可以在stata中進行。

降維之PCA主成分分析法

如圖所示,尋找藍色的點到直線的垂直距離的和最小的直線 向量 pca 與 linear regression 的區別 pca衡量的是點到直線的垂直距離,而linear regression是所有x點對應的真實值y g x 與估計值f x 之間的vertical distance距離,如下圖所示 二 p...

主成分分析法(PCA)

一 數學基礎 1.方差 用來計算每乙個變數 觀察值 與總體均數之間的差異。總體方差計算公式 為總體方差,為變數,為總體均值,為總體例數。2.協方差 在概率論 和統計學中,協方差用於衡量兩個變數的總體誤差。而方差是 協方差的一種特殊情況,即當兩個變數是相同的情況。期望值分別為 e x 與 e y 的兩...

資料降維 主成分分析法

什麼叫做主成分分析法,我們先看一張圖橢圓的圖,如果讓你找一條線,使得橢圓上所有點在該線上對映的點最分散,保留下來的資訊最多,你會怎麼選擇這條線?若是下圖,會選擇水平線,這是用一維的方式去盡可能多的表示二維的資料,那麼多維的資料呢,是否可以用較低維的資料盡可能表示。如何用二維的平面去盡可能表示乙個橢球...