programming/r

[R] 요인분석, 주성분분석

10. 요인분석, 주성분분석

 

10.1 Factor Analysis(요인 분석, 인자 분석)

러개의 변수들 중에서 유사한 항목끼리 묶어서 원래의 변수보다 작은 인자(Factor)로 축소시켜 상호 관계를 분석하는 방법, 변수들 간의 상관관계를 고려하여 서로 유사한 변수들 끼리 묶어주는 방법

 

수많은 변수들 중에서 잠재된 몇 개의 변수(요인)를 찾아내는 것

 

ex) 학생들의 시험 성적 데이터가 수학, 과학, 영어, 중국어, 독어, 작곡, 연주의 점수(0점-100점)로 구성되어 있다면

  1. 수학, 과학은 상관관계가 있을 것이고 (수리계산능력)
  2. 영어, 중국어, 독어는 상관관계가 있을 것이고 (외국어능력)
  3. 작곡, 연주는 상관관계가 있을 것이다. (음악적능력, 음악적재능)

원래 7개의 변수(과목)로 구성되어 있는 것을 3개의 잠재변수 즉, [수리계산능력], [외국어능력], [음악적재능] 으로 요약할 수 있다.

 

요인분석은 데이터 축소(Data Reduction)와 관계가 있다.

 

 

10.2 주성분 분석(Principal Component Analysis, PCA)

여러 많은 변수에 대해서 주성분(Principal Component)이라는 새로운 변수를 생성하여 기존 변수들보다 차원을 요약, 축소하는 기법

 

예를 들어 x1, x2, x3, ~ , x10까지 10개의 변수가 있다면 주성분분석을 통해서 p1, p2로 차원을 축소하면 p1, p2만으로 원래 10개의 변수를 거의 다 설명할 수 있다는 개념

 

  • iris 데이터: iris라는 꽃의 꽃잎과 꽃받침의 길이와 너비에 관한 데이터
    150행, 5열로 이루어져 있으며, Species는 factor, 나머지는 int로 이루어진 데이터
  • Species: setosa, Versicolor, Virginica 4개
head(iris)

 

다중공선성(Multicollinearity)이 있는지 보기 위해 y 변수가 될 Species 열을 제외하고 나머지 열의 상관계수 확인

다중공선성 - 독립변수들 간에 강한 상관관계가 나타나는 경우

 

 

 

그리고 나머지는 가장 밑에 Cumulative Proportion을 보면 PC1부터 주성분이 하나씩 추가될수록 원래의 변수를 얼마나 설명하는지 알 수 있음

 

PC1은 원래 변수를 73% 설명하며, PC2가 추가되면 95%까지 설명할 수 있음

PC2 까지 해서 95%를 설명할 수 있으므로 주성분으로 PC1과 PC2를 선택

 

회귀분석을 하기 위해 주성분을 처리

 

PC1 = 0.5038236 * Sepal.Length -0.3023682 * Sepal.Width + 0.5767881 * Petal.Length + 0.5674952 * Petal.Width 으로 이루어진 선형조합 이기에 원래 데이터와 선형계수를 행렬 곱셈으로 선형조합에 맞게 만들어 줌

PRC <- as.matrix(log.ir) %&% ir.pca$rotation
  • %*%: 행렬 곱셈
  • ir.pca$rotation: 선형계수
head(PRC)