主成分分析是一種降維演算法,它能將多個指標轉換為少數幾
個主成分,這些主成分是原始變數的線性組合,且彼此之間
互不相關,其能反映出原始資料的大部分資訊。一般來說,
當研究的問題涉及到多變數且變數之間存在很強的相關性時,
我們可考慮使用主成分分析的方法來對資料進行簡化。
樣本標準化
計算標準化樣本協方差矩陣
計算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 的兩...
資料降維 主成分分析法
什麼叫做主成分分析法,我們先看一張圖橢圓的圖,如果讓你找一條線,使得橢圓上所有點在該線上對映的點最分散,保留下來的資訊最多,你會怎麼選擇這條線?若是下圖,會選擇水平線,這是用一維的方式去盡可能多的表示二維的資料,那麼多維的資料呢,是否可以用較低維的資料盡可能表示。如何用二維的平面去盡可能表示乙個橢球...