主成分分析(principal components analysis, pca)
是一種分析、簡化資料集的技術。它把原始資料變換到乙個新的座標系統中,使得任何資料投影的第一大方差在第乙個座標(稱為第一主成分)上,第二大方差在第二個座標(第二主成分)上,依次類推。主成分分析經常用減少資料集的維數,同時保持資料集的對方差貢獻最大的特徵。這是通過保留低階主成分,忽略高階主成分做到的。這樣低階成分往往能夠保留住資料的最重要方面。但是在處理觀測數目小於變數數目時無法發揮作用,例如基因資料。
r語言中進行主成分分析可以採用基本的princomp函式,將結果輸入到summary和plot函式中可分別得到分析結果和碎石圖。但psych擴充套件包更具靈活性。
1 選擇主成分個數
選擇主成分個數通常有如下幾種評判標準:
另一種較為先進的方法是
平行分析
(parallel analysis)。該方法首先生成若干組與原始資料結構相同的隨機矩陣,求出其特徵值並進行平均,然後和真實資料的特徵值進行比對,根據交叉點的位置來選擇主成分個數。我們選擇usjudgeratings資料集舉例,首先載入psych包,然後使用fa.parallel函式繪製下圖,從圖中可見第一主成分位於紅線上方,第二主成分位於紅線下方,因此主成分數目選擇1。
fa.parallel(
usjudgeratings
[,-1
], fa="pc"
, n.iter=100
, show.legend=false)
2 提取主成分
pc=principal(
usjudgeratings
[,-1],
nfactors=1
)
pc1 h2 u2從上面的結果觀察到,pc1即觀測變數與主成分之間的相關係數,h2是變數能被主成分解釋的比例,u2則是不能解釋的比例。主成分解釋了92%的總方差。注意此結果與princomp函式結果不同,princomp函式返回的是主成分的線性組合係數,而principal函式返回原始變數與主成分之間的相關係數,這樣就和因子分析的結果意義相一致。1 0.92 0.84 0.1565
2 0.91 0.83 0.1663
3 0.97 0.94 0.0613
4 0.96 0.93 0.0720
5 0.96 0.92 0.0763
6 0.98 0.97 0.0299
7 0.98 0.95 0.0469
8 1.00 0.99 0.0091
9 0.99 0.98 0.0196
10 0.89 0.80 0.2013
11 0.99 0.97 0.0275
pc1ss loadings 10.13
proportion var 0.92
3 旋轉主成分
旋轉是在保持累積方差貢獻率不變條件下,將主成分負荷進行變換,以方便解釋。成分旋轉這後各成分的方差貢獻率將重新分配,此時就不可再稱之為「主成分」而僅僅是「成分」。旋轉又可分為正交旋轉和斜交旋轉。正交旋轉的流行方法是方差最大化,需要在principal中增加rotate='varimax'引數加以實現。也有觀點認為主成分分析一般不需要進行旋轉。
4 計算主成分得分
主成分得分是各變數的線性組合,在計算出主成分得分之後,還可以將其進行回歸等做進一步分析處理。但注意如果輸入資料不是原始資料時,則無法計算主成分得分。我們需要在principal中增加score=t的引數設定,結果將存放在結果的score元素中。
R語言多元分析系列之一 主成分分析
主成分分析 principal components analysis,pca 是一種分析 簡化資料集的技術。它把原始資料變換到乙個新的座標系統中,使得任何資料投影的第一大方差在第乙個座標 稱為第一主成分 上,第二大方差在第二個座標 第二主成分 上,依次類推。主成分分析經常用減少資料集的維數,同時保...
R語言主成分分析
head swiss 檢視資料 cor swiss 檢視相關性矩陣 方陣中絕對值最小的是0.06085861,比0.05大,因此swiss中變數相互之間均有或強或弱的相關關係,這份資料適合做主成份分析。由於變數的量綱不同會使主成份得分係數的可解釋性變差,使結果受到量綱大的變數影響,而忽略量綱較小的變...
主成分分析 R語言
主成分分析 principal component analysis,pca 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。原理 在用統計分析方法研究多變數的課題時,變數個數太多就會增加課題的複雜性。人們自然希望變數個數較少而得到的資訊較...