다중공선성의 상태는 데이터 분석 시 문제를 야기하는 하나의 특성으로 알려져있다. 특히 회귀분석에서 다중공선성의 입력 데이터의 분석은 부정적인 영향을 미치는 것으로 알려져있고, 이를 해결하는 방법에 대해서도 오래전부터 많은 연구가 있었다.

관련 연구가 불충분하기는 하지만 아마 회귀분석 뿐 아니라 다른 분석 방법 등(결정트리 등)에서도 다중공선성이 부정적인 영향을 줄 것으로 예상된다. 이에 대한 추가적인 연구들이 필요하다고 생각된다. 

상관성(피어슨 상관계수)는 익숙하지만, 다중공선성 이란 단어는 익숙하지 않은 경우가 많다. 본 자료에서는 다중공선성에 대해서 정리하고자 한다.

< 목 차 >
1. 소개 및 정의              4. 해결방법
2. 문제점                      5. SPSS에서의 활용      
3. 진단방법                   6. 참고자료    
 
1. 소개 및 정의

다중공선성(Multicollinearity)은 입력변수들 간의 상관정도가 높은 상태를 말한다.

좀 더 자세히 설명하면,
데이터가 (p+1)개의 수치형(양적) 변수를 가지며, 
x1, x2, ... , xp의 p개의 입력(독립)변수와 Y 라는 1개의 종속변수로 구성되어 있다고 하자.
다중공선성이란 위의 데이터에서 p개의 입력변수들 사이에 상관관계가 존재하는 상태를 의미한다.

그럼, 이런 의문이 들지 않는가?

다중공선성(multicollinearity)과 상관성(Correlation)이 같은 것 아닌가?
(여기서 상관성이란 피어슨 상관계수와 같이 두 변수 간의 관계를 의미한다.)

정확한 이해를 위하여 다중공선성과 상관성의 차이를 구분해보자.

상관성은 (피어슨 상관계수 등에 의해 계산되는) (1) 두 변수 간의 상관정도를 계산하고 (2) 독립변수와 종속변수를 구분하지 않는다. 반면, 다중공선성은 (1) 두개 이상의 변수들 간의 상관정도를 계산하고 (2) 독립변수들 간의 관계 만을 고려한다.

상관성과 다중공선성은 측정하는 방법에도 차이가 있다. 

 상관성  Pearson Correlation 등
 다중공선성  VIF(분산팽창계수 또는 분산팽창인수)
 Tolerance(공차한계) 등

그럼, 사전적으로 좀 더 정확하게 다중공선성의 정의 및 의미를 살펴보고 소개를 마무리하자.
아래 내용은 위키피디아 백과사전에서 <다중공선성문제>에 대한 정의(설명)을 가져온 것이다.  

다중공선성문제(Multicollinearity)는 통계학의 회귀분석에서 독립변수들 간에 강한 상관관계가 나타나는 문제이다. 독립변수들간에 정확한 선형관계가 존재하는 완전공선성의 경우와 독립변수들간에 높은 선형관계가 존재하는 다중공선성으로 구분하기도 한다. 이는 회귀분석의 전제 가정을 위배하는 것이므로 적절한 회귀분석을 위해 해결해야 하는 문제가 된다. 위키피디아 백과사전

다중공선성은 다른 용어로 공선성이라 불리기도 한다. 두 개가 같은 의미로 사용된다. 영어로도 마찬가지이다. Multicollinearity 와 Collinearity 는 같은 의미로 사용된다. multi-collinearity 라는 쓰기도 한다.

사전(영어사전, 국어사전 등)을 찾아보면 위 용어가 포함되어 있는 않는 경우가 많다. 원래 전통적으로 존재하던 단어는 아니고 통계학을 연구하는 과정에서 만들어진 신조어로 이해할 수 있다. 그러나 통계학 분야, 데이터 분석 분야에서는 연구 논문, 서적 등에서 널리 사용되는 단어이므로 통계 및 데이터마이닝 등 데이터 분석 분야를 연구한다면 많이 접하게 되는 단어이다.

2. 문제점

이번에는 데이터에 다중공선성의 특성이 존재할 때 발생하는 문제점을 고려해보자.

분석하고자 하는 데이터에 <다중공선성>이 강하게 존재할 때

이 데이터를 <회귀분석>에 적용하면 어떤 문제가 생길까?
이 데이터를 <결정트리>에 적용하면 어떤 문제가 생길까?
( 그 외의 다른 방법(알고리즘)들도 차후 고려해봐야하겠다.. )

다중공선성 데이터를 <회귀분석>에 적용하는 경우 어떤 문제가 발생할까? 

분석 결과인 회귀 계수가 불안정해지는 것이다. 회귀계수가 해당 변수의 종속변수에 미치는 영향력을 올바로 설명하지 못하게 된다. 즉, 다중공선성을 고려하지 않고 회귀분석을 수행한 후 그 결과를 해석하면 잘못된 결론(변수의 중요성을 설명할 때)을 내리게 되는 문제가 발생한다.  

다중공선성 데이터를 <결정트리>에 적용하는 경우 어떤 문제가 발생할까?
분류에 중요한 영향을 미치는 변수가 결정트리의 분리 조건에 나타나지 않게 되는 문제가 발생한다.
또한 중요변수가 사용되지 않음으로 인해서 분류율(정확도)가 낮아지게 되는 문제가 있다.

3. 다중공선성 진단(측정) 방법

이번에는 데이터에 다중공선성의 정도를 진단하는 방법에 대해서 알아보겠다.
상관성을 계산하는 방법은 잘 알다시피 피어슨 상관계수가 있다. 물론, 그 외에도 여러가지방법이 있다.

다중공선성을 계산하는 방법은 그와 별도로 존재한다.
2개 이상의 변수들 간의 상관성을 측정하기 때문에 당연히 피어슨 상관계수로는 계산할 수 없다.

물론, 상관성 매트릭스 Correlation Matrix 를 작성하여 데이터의 다중공선성을 판단하는 경우도 있지만, 각 변수의 다중공선성을 정확히 판단하기 위해서는 별도의 측정 방법이 필요하다.  

이 같이 각 변수들을 행/열의 값으로 하는

행렬을 구성한다. 대각선은 자기자신과 상관관계이므로 1이며, 행렬의 값은 대칭이므로 한쪽면만 계산한다.

이 데이터는 다중공선성의 문제가 없어 보인다.

그러나 정확한 진단을 위해서는 위의 <상관성 행렬> 보다는 진단방법과 기준을 사용해야 한다.

다중공선성의 수식으로는 VIF, Tolerance, CN 등의 계산 방법이 존재한다. (VIF:분산확대인자 또는 분산팽창계수, Tolerance:공차한계, CN:상태지수)

VIF (Variation Inflation Factor, 분산팽창지수) 측정법이 이 들중에서도 가장 많이 (일반적으로) 사용된다.
SPSS 통계 프로그램에서도 회귀분석 수행 창에서 VIF 측정을 선택하여 점검할 수 있도록 지원해주고 있다.

각 방법에 대해서는 나중에 자세히 설명해야 하겠다. (개념, 계산 방법 및 자세한 수식)  

일반적으로
VIF 즉, 분산팽창계수가 10 이상 일때 다중공선성이 존재한다고 판단한다.
Tolerance 즉, 공차한계는 0.1 이하 일때 다중공선성이 존재한다고 판단한다.
(사실, VIF 와 Tolerance는 같은 방법이다. Tolerance의 역수를 취한 값이 VIF 값이다.)  

그런데 왜 VIF 가 10이상일때 다중공선성이 존재한다고 판단할까?

참고로 VIF 값은 0에서 무한대의 값의 범위를 갖는다. 여기서 10이라는 기준값은 명확하게 정해진 것은 아니다. 단지 일반적인 기준일 뿐이다. 그러나 10 이상이라는 기준이 일반적으로 사용되는 기준이므로 구지 다른 기준값을 사용하기보다는 우리도 연구할 때 10 을 기준으로 사용하는 것이 좋겠다.


이해를 돕기 위하여 다른 질문을 해보자.

피어슨 상관계수를 계산했을 때 얼마 이상이면 두 변수간에 상관성이 있다고 할 수 있을까?
잘 알고있는 바와 같이, 피어슨 상관계수는 -1 에서 1 의 값의 범위를 갖는다.
어떤 분야, 어떤 연구에서는 절대값 0.5 이상을 기준으로 하고, 어떤 경우에는 0.7 이상을 기준으로 한다. 
즉, 명확한 기준값은 없으며 연구자, 연구분야, 연구내용에 따라 기준값을 정해야 할 것이다.  

SPSS를 사용하여 다중공선성을 측정하는 방법을 아래 글에 정리하였다.
http://ai-times.tistory.com/142


4. 해결책

이번에는 다중공선성의 문제를 해결하는 방법에 대해서 알아보자.

(0) 기본적인 방법들
- 각 입력변수를 제거/추가하면서 회귀계수의 변동정도를 파악한다.
- 다중공선성이 높다고 판단된 변수들 중에서 몇 개를 제거한 후 분석을 한다.

(1) PLS 회귀분석
PLS는 Partial Least Square 또는 Projection to Latent Structures 의 약자이다.
SPSS 18.0 버전의 프로그램에 추가된 기능이다. (2008/06 SPSS 세미나 자료 참고)  
인자분석(요인분석)을 사용하여 Latent(잠재) 변수를 찾고 활용하는 방법이다.  

(2) OLS 회귀분석
다중공선성에 적합하도록 알고리즘을 개선한 기존과 다른 회귀분석 알고리즘이다.


5. SPSS에서의 다중공선성 측정 방법 

SPSS 통계 프로그램에서는 <다중공선성>에 관련된 기능들을 지원하고 있다.

(1) 다중공선성의 진단
각 입력변수 별로 VIF 수치를 제시해준다.
이 값을 가지고 입력 데이터에 다중공선성의 정도를 파악할 수 있다. 만약, VIF 값이 높은 변수가 있다면
분석 및 모델 해석 시 고려해 주어야 한다.
 
SPSS를 사용하여 다중공선성을 측정하는 방법을 아래 글에 정리하였다.
http://ai-times.tistory.com/142


(2) PLS 회귀분석
다중공선성에 견고한 새로운 알고리즘(기능)을 버전. 18.0 (?) 부터 지원하고 있다.
기본 기능은 아니므로 이 기능을 사용하려면 사용하려면 해당 모듈을 추가 설치해야 한다.




6. 참고 자료 (인터넷 글)  

[1] http://kr.blog.yahoo.com/skk1991/754126

[2] http://cafe.daum.net/statstory/Lnxm/35?docid=10OJP|Lnxm|35|20090514174020&q=%B4%D9%C1%DF%B0%F8%BC%B1%BC%BA&srchid=CCB10OJP|Lnxm|35|20090514174020

[3] http://blog.daum.net/kjh325/5649828
     ( SPSS에서 VIF 를 측정하고 해석하는 방법 ) 

[4] http://blog.naver.com/ibuyworld/110048919032

[5] http://blog.naver.com/azureguy/130035562492

[6] http://blog.naver.com/leespecia/20089849767
     (VIF 및 Tolerance 측정 결과 및 의미)


7. 참고 자료 (파일)  

[1] 회귀분석과 다중공선성

[2] 다중공선성의 진단방법


[3] 다중공선성 진단 (한글파일)
 

by 에이아이 2009. 8. 4. 18:42
  • 고감자 2011.04.21 11:22 ADDR EDIT/DEL REPLY

    정말 잘 봤습니다.

  • 지원맘 2011.05.07 15:52 ADDR EDIT/DEL REPLY

    논문을 준비중인데 정말 도움이 되었습니다.
    그런데 궁금한 것이 있는데요
    저의 논문에서 두 변수의 상관관계는 0.920으로 나왔고
    다중공선성은 VIF 1.285~2.576으로 문제가 없는 것으로 나왔는데요....
    이건 어떻게 해석을 해야 할까요? 회귀분석을 해도 되는 걸까요?
    심사날짜가 얼마 안남아 답답한 마음에 적어봅니다.
    답변부탁드려요^^

  • HYUK 2011.07.11 15:11 ADDR EDIT/DEL REPLY

    잘 보고 갑니다.^^

  • hjlee 2013.04.07 18:32 ADDR EDIT/DEL REPLY

    감사합니다. 이해하는데 많은 도움이 되었습니다.

  • 최서아 2013.09.28 23:11 ADDR EDIT/DEL REPLY

    많은 도움이 되었습니다. 감사합니다.

  • 전경탁 2013.12.02 21:16 ADDR EDIT/DEL REPLY

    많은 도움이 되었습니다. 좋은 자료 감사합니다.