요인 분석 (Factor Analysis) 이란?

요인분석에 대해서 먼저 간단하게 설명해보면,
요인분석은 수많은 변수들 중에서 잠재된 몇 개의 변수(요인)을 찾아내는 것이다. 
이 설명만 듣고 이해가 된다면 아마도 천재가 아닐까?? 아래에서 예를 들어 설명해야겠다.

학생들의 시험 성적 데이터를 예를 들어 생각해보자.
이 데이터가 수학, 과학, 영어, 중국어, 독어, 작곡, 연주 의 점수(0점-100점)으로 구성되어 있다고 하면, 
수학, 과학은 상관관계가 있을 것이고 (수리계산능력) 
영어, 중국어, 독어 가 상관관계가 있을 것이고 (외국어능력) 
작곡, 연주 가 상관관계가 있을 것이다. (음악적능력, 음악적재능)
(위의 가정이 좀 이상할 수 있지만, 그냥 그렇다고 받아들이자...)

즉, 원래 7개의 변수(과목)으로 구성되어있지만, (그냥 봐서는 잘 모르지만 상관관계를 따져보면)
내부적으로는 3개의 잠재변수 즉, [수리계산능력], [외국어능력], [음악적재능] 으로 구성된 것으로 파악할 수 있다. 

이렇게 원래 많은 수(7개)의 변수들을 소수의 몇 개의(3개)의 잠재된 변수로 찾아내는 것을 요인분석이라고 한다. 감이 오겠지만 ... 요인분석은 데이터 축소(Data Reduction)과 관계가 있다.
이렇게 찾은 잠재변수를 영어로는 Latent Variable 이라고 부른다. 

이제 정리해보자.

요인분석(Factor Analysis)은 변수들 간의 상관관계를 고려하여 저변에 내재된 개념인 요인들을 추출해내는 분석방법이다. 다른 말로 하면, 요인분석은 변수들 간의 상관관계를 고려하여 서로 유사한 변수들 끼리 묶어주는 방법이다. 또 다른 말로 하면, 많은 변수로 구성된 데이터가 몇 개의 요인에 의해 영향을 받는가를 알아보는 것이라고도 할 수 있다.

좀 더 자세한 설명 및 정의를 보고 싶다면 위키피디아 백과사전을 참고해보자. 위키피디아 설명 보기


요인분석 용어 이해의 주의점

일반적으로 <영화흥행요인분석>, <효과적인교육효과의요인분석> 이라는 형식의 제목의 연구들이 존재한다.  
그러나 이들 제목에서 사용된 요인분석이라는 말과 우리가 이 글에서 사용하는 요인분석은 같지 않음을 주의해야 한다. 여기서 요인분석의 의미는 어떤 결과에 요인 원인(변수)가 무엇인가를 찾는 것이고, 이 글에서의 요인분석은 이미 충분히 얘기했듯이 데이터에 상관성이 높은 변수들을 묶어 잠재된 몇 개의 변수를 찾는 것이다.


요인분석 수행의 목적

요인분석이 무엇인지 대충 이해를 하였다. 그러면 요인분석이 왜 필요한지 어떠한 목적으로 사용되는지 생각해보도록 하자. 요인분석은 다양한 목적으로 사용될 수 있다. 아래에 요인분석의 목적을 구분하여 정리하였다.

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

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

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

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

사실, 이 내용은 [1],[2]의 내용과 의미를 같이 한다. 즉, [1],[2]에 대한 부연설명이라고도 할 수 있다.
위 내용등을 어찌보면 같은 내용인데 이해를 돕기 위해서 여러가지 측면으로 설명했을 뿐이다.


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

많은 경우 (많은 사람들이) 요인분석과 주성분분석을 혼동한다.
두 용어를 같은 것으로 이해하는 사람들도 많다. ( 요인분석 = 주성분분석 ? ) 그러나 이것은 요인분석이나 주성분 분석을 잘 이해하지 못한 것이다. (참고는 요인분석은 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 : 목표 변수를 고려한다. 목표 변수를 잘 예측/분류하기 위하여 원래 변수들의 선형 결합으로 이루어진 몇 개의 주성분(변수)들을 찾아낸다.


SPSS 에서 <요인분석> 수행하는 방법 

대표적인 통계 프로그램인 SPSS Statistics 에서 <요인분석>을 수행하는 방법을 간단히 설명한다. 
프로그램을 수행한 후 메뉴에서 [분석] - [데이터 축소] - [요인분석] 을 클릭한다. 

그 다음 부터의 자세한 단계는 아래의 교재를 찾아 참고하기 바란다. 
차후에 정리해서 추가 글을 올려야겠다. 

[참고1] SPSS 평균비교와 데이터축소 (SPSS Korea 컨설팅 팀 저) part 2. 페이지 7에서부터 주욱~ 
[참고2] SPSS 12.0 통계자료분석 (한국사회조사연구소, 정영해 외, 2005년 2월) 

그 외에도 수많은 SPSS 사용법에 대한 책을 참고하면 되겠다.  


요인(Latent Variable) 즉, 잠재변수의 개수 결정 

요인의 개수를 결정하는 대표적인 방법으로 아래의 2가지가 있다. 

[1] 고유값을 사용한 요인의 개수 결정
일반적으로 고유값이 1이상인 잠재변수들을 선택한다.
(그런데 내 생각에는... 고유값이 원래 변수의 개수에 종속적이므로 좀 문제가 될 것 같다. 왜냐하면, 생성된 모든 잠재변수의 고유값을 다 더하면 입력변수의 수와 같은 값이 되기 때문...)  

[2] 스크리도표를 이용한 요인 개수 결정
그래프를 사용하여 결정하는 방법이다. 사람이 눈으로 (직관적으로) 결정하기에 좋다.
XY축으로 된 선 그래프인데 처음에는 기울기가 급격하게 줄다가 완만히 지게 되는 데, 완만해지게 되는 곳을 보고서 요인 개수를 결정한다.

아래의 블로그 글에 고유값을 사용하여 잠재변수를 결정하는 방법이 잘 설명되어있으니 참고하기 바란다.
http://blog.naver.com/seahawk00/130015880594


<요인분석> 의 절차  

요인분석은 일반적으로 아래의 절차 순으로 분석이 진행된다.

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

* 요인분석을 활용한 다중공선성 문제의 해결 방안 (아이디어)

아래의 문제를 해결하는 하나의 방법으로 <요인분석>이 사용될 수 있다. 요인분석을 통해 새변수 생성과 추가를 통해 다중공선성에 유연하고(견고하고) 성능이 좋은 모델을 생성할 수 있다. 여기서 성능이 좋다는 것은, 나무의 크기가 작고(구조가 단순하여 이해,설명하기 쉽고), 분류율도 좋다는 것을 뜻한다.


공부에 도움이 되는 도서 추천

[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

[2] 에듀팜의 동영상 강좌 <SPSS 고급> 강좌 중 목차참고
유료강좌입니다. 수강해서 듣고 있는데 좋은 자료로 추천합니다. 
23번 [인자분석] 개요와 개념소개 + SPSS 설문예제 (25분)
24번 [인자분석] 인자모형의 개요와 설문분석 (55분)
25번 [인자분석] SPSS 실습강의 / 예제 (25분)


참고파일들

[1] 요인분석 정리 한글 파일



[2] http://www.yorku.ca/ptryfos/f1400.pdf 에서 받은 PDF 자료 (예제 통한 설명)


[3] 수강한 강좌에서의 <인자분석> 관련 파일들


[4] 내가 작성한 PPT 파일







by 에이아이 2009. 7. 24. 18:39