회귀분석(regression analysis)에 대한 초보적인 이해
어떤 도시의 교통량에 있어 회귀분석을 활용하는 것에 대해 알아봅니다.
교통량에 영향을 미치는 변수로는 무엇을 사용할 수 있을까?
인구수, 등록차량수, 취업인구수 등을 활용할 수 있겠다는 생각이 우선 듭니다.
회귀분석(regression)이란 측정된 변수(인자)간에 인과관계를 수학적인 함수관계로 표시한 것입니다.
원인이 되는 변수를 X (독립변수 또는 설명변수), 그 원인에 따라 영향을 받는 변수를 Y (종속변수)라 합니다.
몇가지 인자 X들이 교통량 Y에 미치는 영향을 분석하는 것인데 회귀분석 등 계량경제학(Econometrics)은 상당히 방대하고 깊은 지식을 필요로 합니다.
우리는 기존 32개 도시들의 다음 데이터를 가지고 있다고 합니다.
Y(교통량), X1(인구수), X2(차량대수), X3(취업인구), X4(무얼로 정해야 할까요?)
회귀분석이란 X1, X2, X3, X4가 Y에 어떤 영향을 미치는지 함수식을 찾아내는 것입니다.
예를 들어 다음의 직선관계(선형모형)을 생각해 볼 수 있습니다.
Y= a+bX1+cX2+dX3+eX4+f a는 상수항, f: 잔차항
통계 프로그램을 통해....회귀모형의 Y와 X들에 해당하는 데이터를 넣어 돌려보면.....a, b, c, d의 추정값을 얻습니다. (복잡한 수학적 과정을 프로그램화하여 쉽게 도출해 냅니다.)
위의 함수식 대신 다음과 같은 비직선관계식(비선형모형)...즉,
log Y = a + blogX1+clogX2+dlogX3+elogX4+f
를 사용할 수도 있습니다. (각 변수에 로그를 씌워 데이터값을 사용합니다.)
그래서 통계프로그램을 돌려 구체적인 수치로 얻게되는 a, b, c, d값....(각 추정치가 유의미한지 나타내는 t 값, 전체적으로 추정값이 유의미한지 나타내는 F값 등도 유심히 봐야합니다.)
일반적으로 통계프로그램에 의해서 도출되는 R^2 값, t값, F값 등으로 판단해 볼 때 이러한 비선형 함수식이 위의 선형 함수식보다 모델의 설명력을 높인다면, 비선형 모델이 더욱 적합한 것이지요.
그런데, 이러한 식이 설명력을 높일 수 있다하더라도 주의할 것이 있습니다.
예를 들어, 인구수와 취업인구수 간의 관계....두 독립변수간에는 선형관계가 있을 수 있습니다.
인구가 많은 도시가....취업인구수도 높겠죠. 이런 변수의 선택은 다중공선성(multicollinearity)이라고 하는 문제를 일으켜서....외견상으로는 설명력은 높아보이지만, 별 무의미한 결과를 가져옵니다. (다중공선성의 문제는 어느 정도 용인해야 하는 문제이긴 하지만 어떤 나쁜 결과를 가져오는지는 계량경제학 교재를 보고 확인해 봅시다.)
인구수와 차량대수도 마찬가지 입니다. 인구가 많을수록 차량대수가 많을 것은 당연한 예상입니다. 두 변수간의 선형관계가 존재한다는 것이죠.
아무 것이나 생각나는 대로 변수 X5, X6, X7 등을 새로 추가한다면 추가하는 것 자체만으로 회귀식의 설명력은 점점 높아지는 것으로 나옵니다. 전혀 인과관계가 없는 변수라 하더라도 모형식에 추가했다는 이유만으로 모형의 설명력을 높이는 결과를 가져오니 조심해야 합니다.
(대개 모형의 설명력을 파악하기 위해서 R^2의 값을 사용하는데, 이렇게 설명변수 X의 개수가 증가할수록 자연스럽게 R^2값이 증가하므로 이러한 부풀려진 거품을 바로 잡기 위해서 자유도(degree of freedom)를 가지고 그 값을 조정하는데 이러한 값을 조정된 R^2 (adjusted R^2)라 합니다. 만약 이 값이 93.6%라면 자유도를 고려할 때 종속변수의 변동 중 회귀모형에 의해 설명되는 비율이 93.6% 라는 뜻입니다.)
다음에 도시별 데이터가 인구 규모에 따라 분산의 크기가 달라져.....회귀모형이 가정하고 있는 등분산(homoscedasticity)가정을 깨뜨립니다. 소위 이분산(heteroscedasticity)문제를 일으키지요.
이런 문제는 회귀분석할 때 자주 발생하기 때문에 이러한 문제점에 대한 고려없이 대충 머리속에서 떠오르는 아무 회귀식이나 가정하고 인자를 설정하는 것은 위험합니다.
통계프로그램은 이러한 문제점에 대한 검증 자료를 결과로 보여줍니다.
간단히 말씀드려 그냥 마구잡이식으로 모형을 설정하는 것은 무슨 문제가 생길 수 있다는 것입니다.
직접 데이터를 가지고 여러가지 함수관계를 설정한 다음, 계속 통계프로그램을 돌려보면서 가장 적합한 모델을 발견해 내야 하기 때문에
인자들....즉, 인구수, 차량등록수,취업인구.... 등을 사용하는 것이 합당한 방법으로 보일 수도 있지만 ......반드시 그렇다고 확정적으로 말하는 것은 힘들 것 같습니다.
그렇다면 대안은?
인구수 대신.....학생수를 사용하여....위에서 말씀드린 인구수와 취업인구수간의 선형관계 가능성을 낮출 수 있을 것 같습니다.
그리고, 도시별 GDP(지역총생산) 자료를 구할 수 있다면....그걸 X변수로 사용할 것입니다. 4번째 독립변수 X4로 사용해 봅시다. 왜냐하면, 지역의 생산활동이 활발할수록 교통량이 늘어날 가능성이 크기 때문입니다.
그리고 선형회귀모형이 아닌 비선형회귀모형도 고려해 봅시다.
하나 더, 이분산 문제는 그걸 보정할 수 있는 다른 방법들을 사용해 봐야겠습니다. (어떤 방법이 있는지는 계량경제학 교재를 참고하세요)
'Infomation' 카테고리의 다른 글
Deep leaning을 이용한 고흐, 뭉크 스타일 사진 만들기 (neural-style) (0) | 2016.11.02 |
---|---|
로지스틱 회귀분석 in R (1) | 2016.11.02 |
MySQL에서 DB engine (0) | 2016.09.02 |
MarI/O - Machine Learning for Video Games (0) | 2016.08.26 |
데이터 기반 개인용 주가 예측 통할까? (0) | 2016.04.27 |