主成分分析

R 的多變量機率分配

Surajit Ray

Professor, University of Glasgow

主成分分析(PCA)的目標

  • 降維
  • 產生互不相關的變數
  • 以更少維度涵蓋變異
R 的多變量機率分配

演算法

  • PC1 在橘色方向解釋最大變異
  • PC2 與 PC1 不相關,在藍色方向解釋剩餘最大變異
  • PC3 與 PC1、PC2 不相關,在綠色方向解釋剩餘最大變異

princomp() 函式會計算主成分(PC)

R 的多變量機率分配

在 R 進行主成分分析

精簡格式

princomp(x, cor = FALSE, scores = TRUE)
  • x:數值矩陣或 data frame
  • cor:使用相關矩陣取代共變異矩陣
  • scores:輸出資料在主成分上的投影分數
R 的多變量機率分配

mtcars 資料集的主成分分析

mtcars 資料集包含 32 款汽車的 11 個燃油消耗相關變數

head(mtcars,5)
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
R 的多變量機率分配

從 mtcars 資料集中選取數值欄位

  • 排除二元變數 vsam
    mtcars.sub <- mtcars[ , -c(8,9)] 
    
    $$
  • 執行 PCA
    cars.pca <- princomp(mtcars.sub, cor = TRUE, scores = TRUE) 
    
R 的多變量機率分配

princomp 函式輸出

cars.pca
Standard deviations:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 Comp.9 
 2.378  1.443  0.710  0.515  0.428  0.352  0.324  0.242  0.149 
summary(cars.pca)
Importance of components:
                       Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8  Comp.9
Standard deviation      2.378  1.443  0.710 0.5148 0.4280 0.3518 0.3241 0.2419 0.14896
Proportion of Variance  0.628  0.231  0.056 0.0294 0.0204 0.0138 0.0117 0.0065 0.00247
Cumulative Proportion   0.628  0.860  0.916 0.9453 0.9656 0.9794 0.9910 0.9975 1.00000
R 的多變量機率分配

來實作主成分分析吧!

R 的多變量機率分配

Preparing Video For Download...