회귀분석의 모형진단

회귀분석의 모형진단

필요성

단순회귀분석의 경우엔 독립변수와 종속변수를 고려해봤자 $2$ 차원이기 때문에 분석이 제대로 되었는지 한 눈에 확인할 수 있다. 하지만 다중회귀분석의 경우 $3$ 차원을 넘어가면 그림으로 그리기 어려워 때문에 분석이 정말 잘 맞는지 확인하기 어렵다. 회귀분석의 가정을 제대로 만족시키지 못했지만 가설검정은 통과하는 경우가 있는데, 이 경우 분석은 그냥 틀린 게 된다.

분석이 틀리는 것은 주로 1. 데이터가 선형모형에 맞지 않은 경우나 2. 분석 결과와 실제 데이터에 대한 이해와 괴리가 심한 경우다. 모형진단은 데이터가 선형모형에 맞는지 맞지 않는지 확인하기 위해서 실시하게 된다.

진단법 1

데이터가 선형모형에 맞지 않다는 것은 쉽게 말해 데이터가 직선 모양으로 있지 않다는 것이다. 데이터가 선형모형에 맞는지 맞지 않는지는 표준화된 잔차 그림을 보고 모형진단을 함으로써 판단한다. 이러한 잔차분석은 상당히 기발한 방법인데, 높은 차원에서 직선을 그려보기 어렵기 때문에 고안된 것이다. 애초에 굳이 잔차라는 것을 계산하는 이유가 바로 이것이라고 봐도 무방하다.

1.png 2.png 잔차 그림에서 아래 네 가지 조건이 만족되면 모형진단은 통과한 것으로 본다.

회귀분석의 본질과도 같은 가정으로써, 회귀분석의 목표가 직선을 구하기 위한 것인데 선형성을 만족하지 않는다면 의미가 없다. 물론 애초에 회귀분석을 사용한 이유 자체가 선형성이 있음을 짐작하는 것이므로 실제 분석에선 아주 쉽게 만족하는 편이다.

특정 구간에서 변동이 급격히 작아지거나 한다면 데이터들이 같은 과정으로 얻어졌다고 보기 힘들다. 예컨대 통계를 수집하는 조사원의 차이, 실수 등의 문제가 있는 게 아닌지 고려하지 않을 수가 없다. 만약 데이터가 뒤로 갈수록 분산이 커지거나 작아지는 등의 문제가 있는 경우 변수를 변환해서 부분적으로 해결할 수 있다.

정규성은 다른 가정들과 달리 샤피로-윌크 검정이나 하르케-베라 검정과 같이 객관적인 진단이 가능하다. 그럼에도 불구하고 문제가 간단하지만은 않은데, 주로 정규성에 심대한 타격을 입히는 것은 이상치들이기 때문이다. 이러한 경우 이상치에 해당하는 데이터들을 분석자가 직접 보고 그 현상을 직접 설명할 수 있다면 큰 문제가 되지 않는다. 당부할 것은 이상치라고 해서 무작정 제거하지 말라는 것이다. 예를 들어 표본이 $300$ 개고, 위 아래로 식스시그마($\pm 3 \sigma$)를 벗어나는 이상치가 $3$ 개 정도 있다면 그건 정상이다. 이상치가 너무 많은 것도 문제지만 분포이론과 달리 지나치게 이상치가 적어도 정규분포를 제대로 따르는 것은 아니다.

위 네가지는 조건은 임의가 아니라 중요한 순서대로 배치되어있다. 실제 통계 분석에 임하다보면 모든 데이터가 깔끔하게만 나타나주는 건 아니라서 몇가지 조건과 타협해야할 때도 있다. 그 때 정규성은 이상치가 많거나 살짝 쏠리는 등 다소 문제가 있더라도 어느정도 포기할 수도 있다.

이러한 모형진단은 상당부분이 눈대중에 의존하며 데이터에 대한 이해가 필수적이다. 틀린 부분을 찾는 것은 첫번째 문제, 틀린 부분을 어떻게 해결할 것인지가 두번째 문제다. 이 능력을 키우는 방법은 가능한 실제 분석에 임하면서 많은 유형을 보는 것이 최선이다.

코드

아래는 잔차 그림을 출력해주는 코드다.

out<-lm(rating~.,data=attitude); summary(out)
win.graph(5,5); plot(rstudent(out),main="표준화된 잔차")

  1. Hadi. (2006). Regression Analysis by Example(4th Edition): p86~88. ↩︎

댓글