R語言中進行主成分分析可以采用基本的princomp函數,將結果輸入到summary和plot函數中可分別得到分析結果和碎石圖。但psych擴展包更具靈活性。
1 選擇主成分個數
選擇主成分個數通常有如下幾種評判標准:
- 根據經驗與理論進行選擇
- 根據累積方差貢獻率 ,例如選擇使累積方差貢獻率達到80%的主成分個數。
- 根據相關系數矩陣的特征值,選擇特征值大於1的主成分。
fa.parallel(USJudgeRatings[,-1], fa="pc", n.iter=100, show.legend=FALSE)
2 提取主成分
pc=principal(USJudgeRatings[,-1],nfactors=1)
PC1 h2 u2
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
PC1
SS loadings 10.13
Proportion Var 0.92
3 旋轉主成分
旋轉是在保持累積方差貢獻率不變條件下,將主成分負荷進行變換,以方便解釋。成分旋轉這后各成分的方差貢獻率將重新分配,此時就不可再稱之為“主成分”而僅僅是“成分”。旋轉又可分為正交旋轉和斜交旋轉。正交旋轉的流行方法是方差最大化,需要在principal中增加rotate='varimax'參數加以實現。也有觀點認為主成分分析一般不需要進行旋轉。
4 計算主成分得分
主成分得分是各變量的線性組合,在計算出主成分得分之后,還可以將其進行回歸等做進一步分析處理。但注意如果輸入數據不是原始數據時,則無法計算主成分得分。我們需要在principal中增加score=T的參數設置,結果將存放在結果的score元素中。