- 차원축소 PCA(주성분분석)과 Factor Analysis(요인분석)
- 차원 = 변수
- 차원축소는 변수를 줄이는 것을 말한다. 변수가 너무 많을 때 이 변수를 다 사용하는 것은 불필요하거나 효율적이지 않기 때문에, 결과에 크게 영향을 미치지 않는 변수는 제거하거나, 비슷한 변수를 같이 묶는다.
- 차원 축소 방법 : 상관관계가 중요하다. 상관관계가 높은 변수들을 묶어볼 수 있다. 즉 variance-covariance matrix(공분산행렬)을 이용할 수 있다.
- covariance matrix는 correlation matrix(상관관계)와 유사
- 차원축소는 심리학에서 많이 사용되고, 요인분석이 특히 많이 사용된다. 그 이유는 행복, 성격, IQ등 눈이 보이지 않는 것을 주로 측정하는데, 보이지 않는 언어지능, 수리지능이 원인이고, 고전 국어 수학 등의 것이 결과다. 언어지능이 있기 때문에 점수라는 결과가 있는 것이다.
- unobservable : 원인, observable :결과로 친다.
- 차원축소의 장점 : 관측이 불가능한 보이지 않는 (unobservable)한 대상을 측정하기 위해 관측이 가능한 보이는 (observable)것을 이용해 심리학 등의 연구가 가능하다. 너무 많은 변수들을 줄여주어 보다 적은 변수로도 원하는 대상을 측정할 수 있도록 해준다. 데이터 사이언스에서는 너무 많은 데이터를 축소하는 효과가 있다.
- 차원축소의 단점 : 연구자의 의도대로 결과를 조절할 수 있고 정보의 손실이 발생한다.
- 변수들을 묶을 때, 상관관계가 높은 변수들을 하나로 묶을 수 있는데, 이 때 어떤 목적과 기준으로 묶는지를 명확히 해야 한다. 원래 데이터의 분산을 최대한 유지해야 하고, 분산이 말도 안되게 날아가거나 줄어들 경우 원데이터와는 아예 다른 새로운 데이터가 되어버릴 수도 있으니 분산에 유의해야 한다.
- (예시) 국어점수와 영어점수의 데이터가 있다. 이 observable variance로부터 unobservable한 ‘언어능력’이 있을 것이라고 예상한다. 두 과목의 평균은 64.5로 동일하고 분산을 영어가 더 크다. 여기서 언어능력이라는 새로운 unobservable한 것을 찾으려고 할 때, 분산을 쪼개서 살펴보아야 한다.
- 주성분 분석(PCA)와 요인분석(FA)의 차이점
- 요인분석은 unique variance가 있다. 목적에 따라 어떤 분석을 쓸지 결정해야 하고, 두 분석의 결과가 다르다.
- 공분산 : 거리보다는 방향의 개념
공분산이 0이면 서로의 상관관계가 0이다. 상관관계와 공분산은 뗄 수 없는 관계이다.
- 공분산과 상관관계
상관계수는 공분산을 표준화 한 값이다. 공분산은 측정단위의 영향을 많이 받고 분산과 똑같이 측정단위가 커지면 그 값도 커진다. 또 공분산의 값은 상관계수와 달리 방향은 알 수 있으나(음의방향, 양의방향 등) 그 힘(power)인 얼마나를 알 수 없다. 이 power 를 설명하는 것이 상관관계이다.
- 고유값과 고유벡터
[2.0 , 1.0]
[1.0, 2.0]
이런 공분산 행렬이 있을 때, 이 매트릭스의 고유값은 1과 3 이다. 이는 분산-공분산 행렬을 선형변환했을 때, 그 크기는 변하고 방향이 변하지 않는 벡터가 있다고 할 때 그 벡터의 크기는 각 1배와 3배가 된다는 의미이다. 방향이 바뀐다는 것은 아예 그 데이터의 정보가 바뀐다는 것을 의미한다. 메트릭스의 고유값의 합(1+3)은 두 분산의 합(2+2)와 같고, 고유값의 곱 (1*3 = 3)은 determinant (3)과 같다. 이 고유값과 고유벡터가 필요한 이유는 분산을 가지고 잘 활용하기 위한 것이다.
- 주성분을 뽑아 낼 때의 원칙
- 주성분 분석은 변수들의 개수를 확 줄일수록 성공적인 주성분 분석이라고 할 수 있다.
- 분산이 가장 커지는 축을 첫 번 째 주성분으로 하고, 남은 것들 중 가장 분산이 큰 축을 두 번째 주성분으로, 그 남은 것에서 가장 큰 분산을 세 번째로 계속…
- 즉, lst principal component’s variance> 2nd>3nd>…
- 각 주성분(PC)는 서로 직교(90도)한다.
- 주성분 분석은 가장 큰 분산을 갖는 부분공간을 보존하는 최적의 선형변환으로 주성분 몇 개로 전체 분산을 설명하려는 시도이다.
- 주성분 분석 순서 :
- 1. Z분포로 표준화를 한다. 분산이 큰 변수는 값이 크게 나올 것이므로 표준화를 하는 것이 우선이다. 평균이 0, 분산이 1인 데이터로 표준화를 한다. 즉, 총 변수의 개수 = 총분산이 될 것이다. 2개의 변수로 pca를 한다면 총 분산은 2개이다.
- 2. 고유값과 고유벡터를 구한다. (각 두개의 고유값과 고유벡터가 나온다.)
- 이 때의 고유벡터를 PC라고 한다. 고유값이 큰 것이 첫번째 주성분이다.
이 그림에서 총분산은 2 인데( 두 가지 변수를 분석했으므로), 그 중 PC1이 설명하는 분산의 양이 1.97/2 =0.99 즉 99%의 분산을 설명한다. 이 PC1이 혼자 전체의 99프로의 분산을 설명한다. 이는 아마 확실히 언어능력일 것이라는 결론을 낼 수 있다. 아이겐 벨류는 결국 분산을 설명하는 것이다.
PC2 처럼 한 개의 고유값이 1보다 못하다는 것은 변수 하나만도 설명 못한다는 말이다. 이걸 가지고 분석을 해야 할 필요가 있나? 그렇지 않기 때문에 버린다.
결론적으로, 국어능력, 영어능력이라는 두 개의 변수를 99% 설명하는 ‘언어능력’이라는 차원으로 확 줄여서 이 한 개의 데이터만 사용하겠다라는 것이 주성분 분석의 차원축소이다.
- 여기서 PC1과 PC2의 상관관계는 0 , 즉 직각이다.
4가지 변수를 2가지 차원으로 축소했는데, 여기서 eigenvalue의 값이 2.7인 것은 이 PC1이 2.7만큼의 변수의 분산을 설명할 수 있다는 말이고, PC2인 eigenvalue 2는 1개의 차원도 제대로 설명하지 못한다. 이를 그래프화 하면 아래와 같이 나타난다.
#Scree plot reference : https://www.datasklr.com/principal-component-analysis-and-factor-analysis/principal-component-analysis