프로그래밍

[R] R을 이용한 주성분분석

RainIron 2021. 5. 23. 21:09
반응형

1. 주성분분석의 개념

1) 정의: 해당 데이터의 원래 변수들을 선형변환을 통해 '주성분'이라 불리는, 서로 상관되어 있지 않거나 독립적인 새로운 인공 변수를 구하여 해석하는 분석 방법

 

2) 다변량 자료: 둘 이상의 서로 상관관계에 있는 변수들을 포함하고 있는 자료

- 변수 정보를 차원 축소하여 단순화 시킨 후 이해

 

3) 특징

- 주성분분석은 다변량 자료 분석 방법 중 하나

- 서로 상관되어 있는 변수들의 복잡한 구조를 '차원 단순화'시켜 간편하고 이해하기 쉽도록 한다.

 

4) 차원: 공간 내에 있는 점 등의 위치를 나타내기 위해 필요한 축의 개수

- 데이터 분석의 측면에서 '차원 = 변수의 수'

 

5) 차원 축소와 주성분분석이 필요한 이유

- 차원의 저주: 변수의 수가 늘어나, 차원이 커지면서 발생하는 문제 ( 과적합 )

- 차원의 저주로 복잡함 발생 -> 복잡함 탈피와 시각화의 용이를 위해 상관 있는 변수들끼리의 정보 단순화 -> 차원 축소 시행

- 모든 변수를 조합하여 해당 데이터를 잘 설명할 수 있는 중요성분을 가진 새로운 변수를 추출하는 것

 

6) 선형변환: 여러 변수들을 다음과 같이 가중결합 시킨 형태, p차원의 정보를 선형적 개념에서 1차원으로 축소하는 것

- 계산식: y = a1x1 + a2x2 + a3x3 + ... apxp (y = 변환된 값, a = 가중계수, x = 변수값)

 

7) 주성분분석 4단계

    * 데이터 특성 파악(상관분석을 통한 변수간 상관관계 파악)

    * 가중계수 추출(공분산 행렬에 대한 고유값 분해 이용)

    * 차원 축소(상관계수 및 상관행렬)

    * 보유 주성분 개수 판정(전체변이에 대한 공헌도, 고유값 크기)

 

2. 주성분분석의 예시와 활용

1) 주성분분석의 방법

- 주성분분석의 문제점: 측정 단위에 따라 분산이 크게 달라짐

- 표준화

    * 표준화하는 경우: 측정 단위가 다른 경우, 상관행렬로부터 시작하는 주성분분석

    (예: 자료의 단위가 다른 경우, 측정 단위의 차이가 많이 나는 경우)

    * 표준화하지 않는 경우: 자료의 단위가 동일한 경우, 분산공분산 행렬로부터 시작하는 주성분분석

    (변수의 단위 그대로, 변동 그대로를 사용하기 때문에 데이터와 모집단의 특성을 잘 드러낼 수 있음)

 

2) 주성분분석의 예시

- 성별과 연령에 따른 상품의 고객 만족에 대한 주성분분석

=> 공분산 행렬 -> 고유 벡터 -> 주성분점수 도출


3. R을 이용한 주성분분석

1) 데이터 입력

# 데이터 입력
x1 <- c(26, 46, 57, 36, 57, 26, 58, 37, 36, 56, 78, 95, 88, 90, 52, 56)
x2 <- c(35, 74, 73, 73, 62, 22, 67, 34, 22, 42, 65, 88, 90, 85, 46, 66)
x3 <- c(35, 76, 38, 69, 25, 25, 87, 79, 36, 26, 22, 36, 58, 36, 25, 44)
x4 <- c(45, 89, 54, 55, 33, 45, 67, 89, 47, 36, 40, 56, 68, 45, 37, 56)

score <- cbind(x1, x2, x3, x4)
colnames(score) <- c('국어', '영어', '수학', '과학')
rownames(score) <- 1:16

 

2) 'prcomp' 함수를 사용하여 주성분 고유 벡터값을 출력

* prcomp(): 공분산행렬의 eigenvalue를 이용하지 않고, SVD(특이값 분해)를 수행하여 계산한다.

# 'prcomp' 함수를 사용하여 주성분 고유 벡터값을 출력
result = prcomp(score)
result

표준 편차와 주성분 출력

3) 'summary' 함수를 이용해 각 성분별 요약 결과치를 출력

# 'summary' 함수를 이용해 각 성분별 요약 결과치를 출력
summary(result)

-> 누적 기여율(성분 개수 누적 셜명기여율)에 따라 2개의 주성분이 93% 이상의 설명률을 보이므로 2개 주성분으로 결정

-> 보통 누적기여율이 80% 이상 되는 지점의 성분 수를 주성분 수로 결정

 

4) 출력된 요약 결과치에 의한 주성분 함수

표준 편차와 주성분 출력

- 주성분1: 0.61*국어 + 0.72*영어 + 0.26*수학 + 0.21*과학

- 주성분2: -0.39*국어 + -0.09*영어 + 0.74*수학 + 0.54*과학

반응형

'프로그래밍' 카테고리의 다른 글

[R] R을 이용한 예측분석  (0) 2021.05.29
[R] R을 이용한 로지스틱회귀분석  (0) 2021.05.24
[R] R을 이용한 분산분석  (0) 2021.05.23
[R] R을 이용한 회귀분석  (0) 2021.05.17
[R] R을 이용한 상관분석  (0) 2021.05.16