獨斷論

구조파악을 위한 인자분석 (SPSS 사용설명서 26, Factor Analysis for Structure Detection) 본문

과학과 기술/SPSS

구조파악을 위한 인자분석 (SPSS 사용설명서 26, Factor Analysis for Structure Detection)

부르칸 2015. 5. 20. 14:33

http://dogmas.tistory.com/410에서 주성분분석(principal component analysis, PCA)을 이용하여 데이터축소(data reduction)를 하는 방법에 대해서 알아보았다. 제목은 인자분석(factor analysis)이라고 달아놓았지만 이는 SPSS에서 메뉴구성상 인자분석이라고 했을뿐 이는 정확히 말하면 주성분분석이다. 


여기서는 이제 factor analysis를 이용하여 데이터의 구조파악(structure detection)을 하는 방법에 대해서 알아보자. 주성분분석과 똑같이 SPSS에서 factor analysis를 이용하지만 축회전과 factor extraction 방법만 다를뿐이다.


이제 풀고자 하는 문제에 대해서 알아보자. 통신회사에서 여러가지 통신요금제를 만들기 위하여 통신기기 사용자들의 사용양상을 파악하고자 하고 이에 따라 여러가지 서비스를 사용양상에 따라 비슷한것끼리 묶고자 한다면 factor analysis를 사용하여 데이터의 변수구조파악을 하는 것이 중요하다.


아래 csv 파일을 받아서 SPSS에 읽은 후에 telecom.sav로 저장하자.


telco.csv

그러면 아래와 같은 형태가 된다. 



인자분석(Factor Analysis)의 수행

Analysis > Dimension Reduction > Factor...를 클릭한다.



아래와 같은 윈도우가 뜨면 region을 제외한 모든 변수를 오른쪽으로 옮겨 분석할 변수로 설정하고

Descriptives를 클릭하여 윈도우 하나가 더 뜨면

Anti-image와 KMO and Bartlett's test of sphericity를 클릭한 후에

Continue를 클릭한다. 

Factor Analysis 대화창으로 돌아가게 되면 오른쪽에 Extraction을 클릭한다. 



이제 factor analysis의 extraction에서 method로는 principal axis factoring을 선택한다. 앞서 PCA에서 principal component factoring을 선택한것과 차이가 난다.

Display에서 scree plot을 선택하는데 factor를 몇개를 선택한 것인지 중요한 판단 근거가 된다.

여기서는 eigenvalue가 1이 넘는 것으로 선택하도록 하였다. 만약 scree plot으로 factor의 갯수를 선택하고자 한다면 한번 factor analysis를 수행해서 scree plot을 본 뒤에 그 기울기가 갑자기 바뀌는 지점까지 factor가 몇개인지 알아낸 후에 다시 factor analysis를 수행하여 위의 윈도우에서 fixed number of factors를 설정하면 된다.


Continue를 클릭한 후에 Rotation을 클릭한다.


위와 같은 윈도우가 뜨면 rotation  method로 varimax를 클릭하고 display에서 loading plot을 선택한 후에

Continue를 클릭하고 OK를 클릭한다.


결과 보기

KMO and Bartlett's Test 결과



위 표는 factor analysis를 통한 structure detection이 얼마나 적절한지를 보여주는 것인다.

KMO 테스트에서 Kaiser-Meyer-Olkin Measure of Sampling Adequacy는 그 statistc 값이 0.888인데, 1에 가까울수록 데이터의 variance 값들이 factor들에 의하여 잘 설명되어진다고 볼수 있다. 만약 이 값이 0.5보자 작다면 factor analysis를 별로 의미가 없을지도 모른다.


Bartlett's test의 가설은 correlation matrix가 단위행렬이다라는 것이며 이는 structure detection으로 사용하기에 불가하다는 말이다. 그런데 여기서 p-value가 0.000이므로 이 가설에 위배된다. 따라서 본 데이터는 structure detection에 사용가능하다고 볼수 있다. 


Communalities의 결과


Initial communalities는 다른 변수들에 의하여 해당변수의 variance가 얼마나 설명되어지는 나타낸다.

extraction communalities는 factor들에 의하여 해당변수의 variance가 얼마나 설명되어지는 나타내는 것이다.

만약 extraction communality 값이 작다면 분석에서 제외시킬수 있는데 여기서는 그렇게 작은 값은 보이지 않는다.


Total Variance Explained



가장 왼쪽에 Initial eigenvalues부터 보면...

Total에 1보다 넘는 factor가 3개인데 이 3개의 factor만 가지고도 전체 variance의 약 65.0%를 설명해 줄수 있다.


중간에 extraction sums의 결과는 축을 회전하기 전에 factor들이 전체 variance를 얼마나 설명해 주는지를 보여준다. 3개의 factor가 약 56.0%를 설명한다고 보여주었다. factor extraction을 하기 전보다 약 9%가 줄어들었다. 


세번째는 축을 회전했을때 결과이다. 전체 56%는 변화가 없지만 각각의 factor들이 설명해주는 값들이 변화되었다. 회전하기 전에는 첫번째 factor가 가장 많은 variance를 설명해주었지만 축을 회전 한 후에는 1번째와 2번째 factor가 변화를 설명해주고 있다. 왜 이런 변화를 가져오게 되었는지는 factor matrix와 rotated factor matrix를 보면 알게 된다. 


Factor Matrix와 Rotated Factor Matrix



3개의 factor에 대하여 연관이 많은 변수를 빨간색으로 표시해 놓았다. 왼쪽은 회전하지 않은 factor이고 오른쪽은 회전한 factor이다. 회전하지 않은 첫번째 factor는 변수 tollmon과 양의 관계를 갖고 두번째 factor는 음의 관계를 갖는다. 하지만 wiremon은 첫번째 factor와 양의 관계를 갖고 두번째 factor와 양의 관계를 갖는데 이렇게 되면 첫번째 factor와 두번째 factor 사이의 관계가 의미가 없어진다.


오른쪽에 회전한 factor를 보면 회전하기 전에 의미없던 factor와 변수들 사이의 관계가 없어졌다. 예를 들어 tollmon은 회전하기 전에 두번째 factor와 관계가 -0.373이었지만 회전한 후에는 0.018로 작아졌다. 


이제 회전한 factor들이 각각 무슨 의미를 갖는지 알아보면...
첫번째 factor는 대개 tollmon(Toll free last month), callid(Caller ID), callwait(Call waiting), forward(Call forwarding), confer(3-way calling)와 연관이 있는데 이는 통신기기의 부가기능을 나타낸 factor라고 보면 된다.

두번째 factor는 equipmon(Equipment last month), internet(Internet service), ebill(Electronic bill)과 연관이 있는데 이는 통신기기의 기술적 측면을 나타낸 것이다.

세번째  factor는 longmon(Long distance last month)와 관련이 있으므로 장거리통화라고 보면 된다.


Comments