데이터분석/R

[ADP] 주성분분석(PCA, Principal Component Analysis)

버섯도리 2022. 1. 15. 15:08

> # 02. 주성분분석 (PCA, Principal Component Analysis)

> # 2. 분석결과 해석

> library(datasets)
> data("USArrests")
> head(USArrests)
           Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

> fit1 <- prcomp(USArrests, scale = TRUE)
summary(fit1)
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.5749 0.9949 0.59713 0.41645
Proportion of Variance 0.6201 0.2474 0.08914 0.04336
Cumulative Proportion  0.6201 0.8675 0.95664 1.00000
> # 2개의 요인으로 전체 분산의 86.7%를 설명할 수 있다.
screeplot(fit1, npcs = 4, type = "lines")

> # 기울기가 수평이 되는 전 단계에서 주성분의 갯수를 선택한다. 여기서는 2
print(fit1)
Standard deviations (1, .., p=4):
[1] 1.5748783 0.9948694 0.5971291 0.4164494

Rotation (n x k) = (4 x 4):
                PC1        PC2        PC3         PC4
Murder   -0.5358995  0.4181809 -0.3412327  0.64922780
Assault  -0.5831836  0.1879856 -0.2681484 -0.74340748
UrbanPop -0.2781909 -0.8728062 -0.3780158  0.13387773
Rape     -0.5434321 -0.1673186  0.8177779  0.08902432
> # 적재량(loadings) : 해당 요인(ex:comp1)의 전체 분산에 대해 각 문항이 분산을 설명하는 정도
> # Y1 = -0.5365Murder - 0.583Assault - 0.278UrbanPop - 0.543Rape
> # Y2 = 0.418Murder + 0.188Assault - 0.873UrbanPop - 0.167Rape     
> # 첫번째 요인의 전체 분산(SS Loading=1.0) = (-0.5365)^2 + (-0.583)^2 + (-0.278)^2 + (-0.543)^2

biplot(fit1)

> # comp와 화살표가 평행할수록 상관계수가 크기 때문에 Murder, Assult, Rape 변수들에 대해 큰 가중치가 적용되었음.
> # comp1 기준으로 범죄율 관련 상위 그룹은 Florida, Nevada, California이다.
> # comp1 기준으로 범죄율 관련 하위 그룹은 North Dakota이다.
> # comp2 기준으로 인구 관련 상위 그룹은 California이다.
> # comp2 기준으로 인구 관련 하위 그룹은 Mississippi이다.

 

 

 

 

 

출처 : 2020 데이터 분석 전문가 ADP 필기 한 권으로 끝내기