데이터과학 삼학년

요인분석 (Factor Analysis, Latent variable) 본문

Statistical Learning

요인분석 (Factor Analysis, Latent variable)

Dan-k 2021. 4. 15. 20:53
반응형

요인 분석 (Factor Analysis) 이란?
- 요인분석은 수많은 변수들 중에서 잠재된 몇 개의 변수(요인)을 찾아내는 것

 

예시)
학생들의 시험 성적 데이터를 예를 들어 생각해보자.
이 데이터가 수학, 과학, 영어, 중국어, 독어, 작곡, 연주 의 점수(0점-100점)으로 구성되어 있다고 하면, 
수학, 과학은 상관관계가 있을 것이고 (수리계산능력) 
영어, 중국어, 독어 가 상관관계가 있을 것이고 (외국어능력) 
작곡, 연주 가 상관관계가 있을 것이다. (음악적능력, 음악적재능)
(위의 가정이 좀 이상할 수 있지만, 그냥 그렇다고 받아들이자...)
즉, 원래 7개의 변수(과목)으로 구성되어있지만, (그냥 봐서는 잘 모르지만 상관관계를 따져보면)
내부적으로는 3개의 잠재변수 즉, [수리계산능력], [외국어능력], [음악적재능] 으로 구성된 것으로 파악할 수 있다. 

>> 이렇게 원래 많은 수의 변수들을 소수의 몇 개의 잠재된 변수로 찾아내는 것을 요인분석

>> 요인분석은 데이터 축소(Data Reduction)과 관계가 있음
>> 이렇게 찾은 잠재변수를 영어로는 Latent Variable 이라고 부름


요인분석(Factor Analysis)

- 변수들 간의 상관관계를 고려하여 저변에 내재된 개념인 요인들을 추출해내는 분석방법

- 변수들 간의 상관관계를 고려하여 서로 유사한 변수들 끼리 묶어주는 방법

- 많은 변수로 구성된 데이터가 몇 개의 요인에 의해 영향을 받는가를 알아보는 


요인분석의 목적
[1] 입력변수들의 특성 파악
- 수많은 입력 변수들이 어떻게 서로 상관되어 지는지를 파악한다. 어떤 분석을 수행하기에 앞서 이런 탐색하여 데이터의 특성을 이해하는 데에 도움이 된다. (데이터 분석에 앞서서 데이터를 이해하는 과정이 필요하다.)  

[2] 새 변수의 생성 효과 (전처리 기능)  
- 원 데이터의 많은 수의 변수들을 차후의 분석 (회귀분석, 결정트리 등)에 입력하기에 앞서, 본래의 변수보다 더 적절한 변수들을 생성해 준다. 원 데이터의 변수만을 사용하여 분석하는 것보다, 새로운 (잠재)변수를 추가하여 분석을 수행하게 되면 더 좋은 분석 결과(모델)를 얻을 수 있다.

[3] 데이터 축소 (Data Reduction)
- 데이터의 축소를 통하여 분석결과의 해석을 용이하게 한다. 예를 들어, 변수가 100개가 있다고 해보자. 결정트리 분석 또는 회귀분석을 수행하면 그 결과는 (트리의 모양, 수식의 형태)는 너무 복잡해서 이해하기가 너무 힘들 것이다. 해석이 안된다. 나름대로 이해를 해도 다른 사람에서 설명하기 힘들다.
그러나 몇 개의 축소된 (잠재)변수를 사용할 경우 결과 모델이 단순해지고 이해하고 설명하기가 쉬워진다.
모델이 단순화 되었다고 성능(분류율, 예측율)이 낮아지는 것이 아니다. 오히려 더 높은 성능을 갖게 되는 장점이 있다. (단순하면서도 더 좋은 성능 얼마나 좋은가? !)

[4] 다중공선성으로 인한 문제의 해결
- 많은 비모수적 통계 및 데이터마이닝 분석방법의 경우 입력데이터에 다중공선성이 존재할 경우 분석 결과 모델의 오류 또는 결과 해석에서의 오류가 발생할 우려가 높다. 따라서, 다중공선성의 상태를 고려하여 분석해야 한다. (그렇지 않으면, 잘못된 분석 결과를 내리게 된다.) 여러가지 해결방법이 있지만 그 중 하나가 요인분석을 사용하는 것이다.

요인분석을 사용하여 새로운 (잠재)변수를 만들어 추가한 후 분석을 수행하면 다중공선성의 문제를 해결할 수 있다.  


요인분석과 주성분분석의 관계

- 많은 경우 (많은 사람들이) 요인분석과 주성분분석을 혼동한다.
두 용어를 같은 것으로 이해하는 사람들도 많다. ( 요인분석 = 주성분분석 ? ) 그러나 이것은 요인분석이나 주성분 분석을 잘 이해하지 못한 것이다. (참고는 요인분석은 Factor Analysis 이고, 주성분 분석은 Principle Component Analysis 이며 보통 PCA 라고 불린다.)

- 요인분석과 주성분분석은 물론 깊은 관계가 있다. 그러나 엄밀하게는 같은 것은 아니다.
요인분석을 수행하기 위해서 즉, 몇 개의 요인(잠재된 변수)들을 추출하기 위해서 여러 가지 방법이 사용될 수 있으나 그 중에 가장 많이 사용되는 방법이 <주성분 분석>이다. (그렇다고, 요인분석이 주성분분석의 상위 개념에 있는 것이라고 할 수는 없다. 집합으로 볼 때 포함 관계 아님)

* 공통점
[1] 모두 데이터를  축소한다. 
[2] 원래 데이터의 새로운 몇 개의 변수들로 만들어 낸다. ([1] 과 같은 말인데 그래도 다시 써봄)

* 차이점
(아래에 정리해보았다. 요인분석은 FA 로, 주성분분석은 PCA 로 표현하였다.)

[1] 생성되는 변수의 수
FA  : 몇 개라고 지정할 수 없다. 데이터의 의미에 따라 다르다. 3개가 될 수도 있고, 또는 4개도 있고, ...
데이터에 서로 성관성을 갖는 변수들의 군집의 개수로 나뉘어질 것이다.
PCA : 주성분이라고 하며, 보통 2개를 찾는다. 제1주성분, 제2주성분 이라고 불린다.

[2] 생성되는 변수의 의미 (이름)
FA : 위에서 학생들의 성적데이터를 가지고 설명했듯이 분석가가 적절한 이름을 붙일 수 있다. 자동적으로 이름을 만들어주지는 않는다.
PCA : 보통 2개의 변수를 채택한다. 첫번째 것은 제1주성분, 제2주성분 이라고 부른다. (원래 데이터의 입력변수가 p라고 하면, ... 제p주성분까지 만들수 있다. 그러나 보통 2개 정도만 사용한다. 이걸로 보통 충분하다.)
요인분석에서는 서로 상관있는 변수들의 이름을 지을 수 있으나 제n주성분의 경우는 그게 좀 힘들다. (의미 중심으로 묶였다기 보다는 분류 결정력이 높은 임의의 변수를 만든 것이기 때문이다.)

[3] 생성된 변수들의 관계
FA : 새 (잠재)변수들은 기본적으로 대등한 관계를 갖는다. 어떤 것이 더 중요하다 라는 의미는 요인분석에서는 없다. 단, 분류/예측에 그 다음 단계로 사용된 다면 그 때 중요성의 의미가 부여될 것이다.  
PCA : 제1주성분이 가장 중요하고, 그 다음 제2주성분이 중요하게 취급된다. 그 다음은 제3주성분 ... 이런 식이다. 즉, 변수들 간의 중요성의 순위가 존재한다.

[3] 분석방법의 의미
FA : 목표 필드를 고려하지 않는다. 그냥 데이터가 주어지면 변수들을 비슷한 성격들로 묶어서 새로운 [잠재]변수들을 만들어 낸다.
PCA : 목표 변수를 고려한다. 목표 변수를 잘 예측/분류하기 위하여 원래 변수들의 선형 결합으로 이루어진 몇 개의 주성분(변수)들을 찾아낸다.

 


요인분석의 절차  
[1] 요인의 수를 결정한다. 
[2] 해석하기 쉽게 회전시킨다. 
[3] 요인적재량을 이용하여 요인을 이루는 항목들을 선택한다. 
[4] 새롭게 결정된 (생성된) 잠재변수에 이름(Label)을 부여한다. 
[5] 잠재변수에 값(점수)를 계산하여 입력한다.  
[6] 이제 몇 개의 잠재변수가 생성, 추가되었다. 이 데이터를 사용하여 추가적 분석을 수행한다.

요인분석을 수행하는 자세한 절차, 계산방식은 주로 주성분을 사용한다.
자세하게 설명하기에는 꽤 복잡하고 어렵다. 참고도서로 제시한 <만화로 쉽게 설명하는 요인분석>을 참고하기를 권한다. 아이겐벨유, 아이겐벡터를 계산할 줄도 알아야하고, 행렬계산을 사용하여 벡터값을 회전하는 계산도 할 줄 알아야 한다. 직접 프로그램을 짜기는 힘들고 (가능한 사람들도 있겠지만...) 인터넷에서 제공하고 있는 패키지를 사용하거나 그냥 SPSS를 사용하여 분서을 수행해야 할 것이다.

 


변수의 회전 방법
- 새로운 변수를 만들고 나서, 그 변수를 해석하기 쉽게 하기 위하여 이 변수들을 회전하는 단계가 필요하다. 변수의 회전은 크게 두 가지 <직각회전>과 <비직각회전>으로 구분된다.
  > 직각회전(orthogonal rotation) : Varimax rotation, Quartimax rotation, Equimax rotation
  > 비직각회전(oblique rotation) : Oblimin rotation, Covarimin rotation, Quartimin rotation


요인분석 활용

[1] 중요한 변수 발견
- 다중공선성이 존재하는 데이터를 가지고 결정트리를 생성할 경우 분석 결과에 문제가 발생하는 것으로 알려져있다.하나의 변수가 노드의 구분에서 선택되어 사용되었다면 그 변수와 상관성이 있는 변수들이 모델에 나타나지 않는 문제가 생긴다. 이것은 모델을 해석할 때 중요한 변수를 놓치게 되는 잘못된 결론을 내리게 된다.
예를 들어, [A, B, C, D, E, F, G, H] 의 입력변수와 [T] 라는 종속변수로 구성된 데이터에 대하여 결정트리 분석을 한다고 하자. 변수 A, B, C, D 가 분류에 영향을 미치는 중요한 변수라고 하자. A, B, C는 서로 상관성이 높다. (즉, 다중공선성이 존재한다.) 그러면, 나무에서는 A, D만 나타나게 될 수 있다. 분석가는 T라는 변수를 결정하는데 A, D가 중요하다는 결론을 내리게 된다. 트리에 나타나지 않은 나머지 변수들 B, C, E, F, G, H 는 중요하지 않은 변수로 간주된다. 즉, B, C를 놓치게 되는 문제가 발생한다.

[2] 결과 모델의 성능(분류율) 향상
- 결정트리는 나무 모델을 생성하는 과정에서 한 노드에서 한 변수만을 선택하여 데이터를 분류한다.
즉, 결정트리는 분석은 하나의 변수에 수직적으로 데이터가 잘 분리될 때 좋은 성능을 나타낼 수 있다.
그러나 변수들 간의 상관성이 존재한다는 것은 하나의 변수에 수직적이지 못하고 두개 이상의 변수에 걸쳐 기울어져 있는 상태를 의미한다. 즉, 어떤 변수를 선택한다고 하더라도 잘 구분될 수가 없다.

 


출처: https://ai-times.tistory.com/112 [ai-times]

 

도서 추천
[1] SPSS 12.0 통계자료분석 (한국사회조사연구소, 정영해 외, 2005년 2월)
요즘 SPSS가 17.0 버전이 출시되었으니 점 오래된 버전에 대한 책이지만 읽어보면 별 차이는 없다.
p.309 - p.321 (14장. 요인분석)에서 요인분석에 대하여 자세하게 설명하고 있다.

[2] SPSS 평균비교와 데이터축소 (SPSS Korea 컨설팅팀 저)
Part 2의 Page 7-8 그리고 9부터 주욱... 을 보면 요인분석에 대한 설명이 잘 되어 있다.
SPSS 활용에 연관하여서도 설명되어 있다.

[3] 만화로 쉽게 배우는 인자분석
인자분석 = 요인분석 이다. 이 책에서는 만화로 인자분석을 재미있게 그리고 자세하게 설명하고 있다.
필요한 수학적인 개념 및 풀이과정을 자세하게 설명하고 있는 좋은 책이다.
그리고 인자(요인)분석과 주성분분석과의 차이점에 대해서도 잘 설명하고 있다.


인터넷 자료 (블로그글, 사이트 등)
[0] http://6025.co.kr/statistics/yo.asp
통계 컨설팅 회사에서 제공하는 요인분석 기법 설명 (SPSS 사용법, 해석 등)
[1] http://blog.naver.com/seahawk00/130015880594
요인분석에 대하여 간단하게 잘 설명하고 있는 블로그글
[2] http://www.statsoft.com/textbook/stfacan.html
StatSoft 사의 <요인분석> 강좌글
[3] http://cafe.naver.com/bluematrix/410
[4] http://blog.daum.net/bomall/15938151
[5] http://blog.naver.com/nlboman?Redirect=Log&logNo=24061508
[6] http://blog.naver.com/seahawk00?Redirect=Log&logNo=130015880594
사회복지를 연구하시는 분의 블로그 논문을 위한 통계분석법들을 잘 정리해 둠.
[7] http://www.yorku.ca/ptryfos/f1400.pdf
회귀분석 파트의 강의자료 PDF 파일이다. 예제를 통하여 자세하게 설명하고 있다. 

동영상 자료
[1] 스탠포드 대학교의 공개 동영상 강좌 <Factor Analysis> 동영상 강좌 바로가기
Stanford University 에서는 많은 수의 강의를 인터넷을 통하여 공개하고 있다.
본 동영상 강좌는 CS229 기계학습(Machine Learning) 강좌의 일부이다. 요인분석이 통계학의 분석법이지만, 인공지능, 기계학습, 데이터마이닝 등의 분야에서 필요한 기술임을 알 수 있다.
Stanford CS229 - Machine Learning


 

728x90
반응형
LIST

'Statistical Learning' 카테고리의 다른 글

KS test (Kolmogorov–Smirnov test)  (0) 2021.05.25
Kernel Density Estimation (KDE)  (0) 2021.05.03
샘플링 (Sampling)  (0) 2021.04.05
Edit Distance (Levenshtein Distance) (퍼옴)  (1) 2021.04.01
Mahalanobis Distance  (0) 2021.04.01
Comments