회귀분석/이론

회귀분석이론 4

학위논문통계 2013. 3. 26. 21:41

 

지난 번 이야기를 더 해보죠.

 

1. 회귀분석에서 우리가 투사를 하는 이유는 방정식이 풀어지지 않기 때문입니다.

 

데이터 y1, y2, ..., yn의 n은 방정식의 수를 나타냅니다. 반면에 우리가 알아야 하는 회귀계수 b0, b1, b2,...,bk의 (k+1)은 미지수의 개수입니다. 이게 일치가 안되고 n >> (k+1)이 되니 회귀계수를 구할 수가 없고, 따라서 회귀계수를 풀려면 독립변수들을 포함하는 공간에다 일단은 떨어뜨려야 합니다. 그 중에서 가장 좋은 방법은 수직으로 떨어뜨리는 것이라는 것이죠.

 

여기서 독립변수의 개수가 n-1, 즉 설문응답자 수 n에서 1을 뺀 만큼 모형에서 독립변수로 집어 넣으면 이 경우 떨어뜨리지 않고는 바로 방정식이 풀어집니다. 그래서 이 경우 결정계수 R^2는 1이 됩니다.

 

하여간 이렇게 데이터와 모형간의 거리를 가능하면 줄이는 생각은 매우 중요합니다. 요인분석이나 구조방정식에서 이런 생각을 사용합니다. 이건 나중에 다시 이야기 하겠지만 이 경우 데이터에서 나온 공분산행렬과 모형에서 도출되는 공분산행렬을 가능하면 일치시키려고 하는 아이디어입니다.

 

 

 

2. 그럼 회귀분석에서 다중공선성 문제를 현실에서 어떻게 응용될까요?

 

만약 독립변수들이 모두 독립적(즉 상관관계가 없으면) 우리는 다중회귀분석을 할 필요가 없이 독립변수 따로 단순회귀분석을 하거나 사실은 상관관계 분석만 해도 됩니다. 또한 독립변수들 중에 어떤 변수를 제외하여 돌려보거나 다른 독립변수를 추가하여 새로 회귀분석을 하여도 기존에 모형에서 구한 회귀계수와 거의 달라지지 않습니다.

 

지난번 대선의 경우를 보면 지지정당에 미치는 요인을 여러개 생각할 수 있습니다. 나이, 학력, 지역 등등, 만약 이런 요인들이 서로 독립적인 관계이면 이런 요인들을 복합적으로 생각할 필요없이 각 요인과 정당지지를 개별적으로 분석해도 된다는 것이죠. 사실 설문조사하는 사람들이 주로 이렇게 분석하죠.

 

그러나 이 요인들간에 상당한 관계가 있죠.

 

지난번 대선에서 봤듯이 연령차에 따라 지지정당에서 차이가 뚜렷하게 났습니다. 지지정당의 변동에서 연령이라는 독립변수의 변동이 차지하는 비중이 매우 높았죠. 그래서 사람들이 나이가 많아지면 보수적으로 된다고 주장을 많이 합니다.

 

물론 그럴 가능성은 있습니다. 그러나 연령의 효과는 상당히 과대평가가 되었다는 것이죠. 우리나라의 경우 특히 고속경제성장의 영향과 유교의 영향으로 연령별의 학력차이가 심합니다. 나이와 학력과는 상관관계가 매우 높습니다. 그래서 정당지지에서 학력이란 요인을 고려하면( 이 말은 앞에서 이야기한 연령이란 요인을 분석하기 전에 학력을 모형의 통제변수로 먼저 집어 넣는다는 말과 같습니다.) 연령의 추가적, 순수한 영향력은 그리 크지 않습니다.

 

더구나 교육의 내용이나, 또는 한국만이 가지고 있는 특수한 상황, 즉 한국전쟁과 군사정부시절의 이미지조작 등을 고려하면 과연 연령의 효과라는 것이 얼마나 클지 심히 의심스럽다는 것이죠.

 

이게 단순한 기술적, 기계적 인식 차이로 볼 수 없습니다. 한국은 지금 초고령사회로 급속히 진행되고 있습니다. 연령의 효과를 심각하게 과대 포장하면 초고령 사회로 접어드는 상황에서 새누리당은 이젠 초고령 사회로 접어드니까 이젠 마음대로 해도 된다고 생각할 겁니다. 위급하면 얼굴 화장 조금만 바꾸면 되지 이런 생각을 한다는 것이죠. 민주당이나 진보정당의 경우 이젠 정권잡기는 힘들고 내 자리나 챙기자 이런 생각에 빠져 들 수 있다는 것이죠. 각 당이 새로운 변화에 대해 본질적인 변화를 하지 않고 스스로 자만하거나, 자포자기 할 수 있다는 것이죠.

 

한편 연령의 효과는 지역의 효과 때문에 심각하게 왜곡될 수도 있습니다. 경상도에서는 삼각하게 과장되고, 전라도에서는 그 반대로 축소될 수 있죠.

 

질 낮은 교육, 더구나 이것마저도 제대로 받지 못하고, 또 한국전쟁의 경험과 군사정부의 이미지 조작에 젖어 계시는 노인분들은 어쩔수 없이 생물학적 퇴장을 할 수 밖에 없습니다. 초고령 사회를 정략적으로 이용하거나 핑계를 대지 말고 새로운 세대에 맞춰 이젠 세상도 바뀌고 정당도 바뀌고 해야죠.

 

윗글을 정치적 글이나 정파적 글로 읽지 마시고 통계학 이론이 현실에서 어떻게 적용되는지 그 예로 들은 것입니다.

 

 

3. 이제 회귀분석 모형의 확장에 대해서 이야기를 해보죠.

 

크게 세 부분으로 확장됩니다.

 

 

 

1) 종속변수가 정규분포가 아닐 경우입니다.

 

예를 들어 명목형 변수일 경우, 또 이진형 변수, 또는 포아송 분포일 경우입니다. 둘째는 y 값들이 시계열 데이터 일 경우입니다. 셋째는 선형모형이 아닐 경우입니다.

 

명목형 변수의 예는 이런 것입니다. 소비자가 KT, LGU, SK 등 어떤 통신회사를 선택하는지?, 노인들이 복지서비스 중 재가서비스, 단기요양, 장기요양 중 어떤 서비스를 선택하는지, 또 어떤 관광지를 선택하는지, 교통서비스 중 버스, 지하철, 자가용 중 어떤 서비스를 이용하는지 이런 것을 분석합니다.

 

이진형이나 포아송은 일반화 선형모형이라 해서 포괄적인 이론으로 전개되어 있습니다. SPSS에서도 일반선형모형이라고 메뉴에 있습니다. generalized linear model인데 우리말 메뉴에는 어떻게 되어 있는지 모르겠습니다. 이진형은 우리가 많이 사용하는 로직스틱 회귀나 프로핏 회귀입니다. 병이 있는지 없는지, 부도가 나는지 아닌지 이런 두 가지 경우만 있는 경우 여기에 영향을 미치는 요인을 찾는 것이죠.

 

기본적인 아이디어는 간단합니다.

기본 회귀분석는

 

오른쪽의 기대되는 평균 E[Y] 와 왼쪽의 선형모형 b0+b1X1+b2X2+b3X3+..

 

와 일치시키는 것입니다. 즉,

 

E[Y] = b0+b1X1+b2X2+b3X3+..

 

 

이런 모형입니다.

 

그러나 이진형의 경우

 

오른쪽의 E[Y]=p, 즉 병이 있을 기대 확률, 또는 부도가 날 기대 확률의 개념이라서 이건 0에서 1 사이의 값을 가집니다. 그러나 오른쪽에 있는 독립변수들의 선형 결합 b0+b1X1+b2X2+b3X3+..은 X의 값에 따라 -무한대에서 +무한대까지 값을 가질 수가 있거든요. 그래서 왼쪽의 종속변수와 오른쪽의 선형모형과는 심각한 괴리가 생긴다는 것이죠. 그래서 이걸 일치시켜 주기 위해 오른쪽 E[Y]에다가 일종의 함수를 취해 왼쪽의 선형 결합과 일치시켜 준다는 것이죠. 그 함수를 G라고 하면

 

G(E[Y]) = b0+b1X1+b2X2+b3X3+..

 

이렇게 만든다는 것입니다. 이진 변수의 경우 대표적인 것이

 

E[Y]=p라고 하면

 

G(p)=log(p/(1-p))

 

입니다. 즉 오즈(odds)에다 로그를 취한 함수입니다. 이걸 E[Y]=p에 대해 풀면 우리가 아는 로직스틱 함수 모양이 나옵니다.

 

E[Y]=p=exp(Xb)/(1+exp(Xb))

 

인가 이런 모양이 됩니다. 한번 풀어보시고 확인해보시기 바랍니다. 여기서 X는 독립변수의 값이고요 b는 회귀계수입니다.

 

G(p)를 정규분포의 누적확률분포의 역함수를 사용하는 것이 프로핏입니다. 로직스틱의 G(p)와 모양이 거의 비슷하다고 책에 되어 있네요. 앞에서 대선 부정 선거때 추측한 것인데 McCULLAGH와 NELDER의 책에 언급이 되어 있네요.

 

하여간 책에는 여러 분포의 경우에 대해서 일반선형 모형을 설명하고 있는데 제가 생각하기에는 이항분포인 경우(로짓스틱이나 프로핏)나, 포아송 분포 아니면 거의 현실적으로 사용할 것 같지 않네요. 혹시 다른 분포의 응용에 대해 아시는 것이 있으면 알려주시면 좋고요. 이런 현실 응응 가능성에 대해서 알게 되면 책을 읽더라도 좀 더 자세히, 그리고 더 생각해서 읽게 되거든요.

 

여기서 두가지 언급을 하면 위의 G처럼 오른쪽의 기대되는 Y의 평균과 왼쪽의 우리가 세운 모형을 일치시키는 함수를 link 함수라고 합니다. 이 중 가장 많이 사용되는 link를 canonical link라고 하는데 이건 지수계열(exponential family)와 관계가 있습니다. 이항분포의 경우 로직스틱이 caninical link입니다.

 

또 하나는 우리는 G(E[X])처럼 왼쪽에 함수를 취하는 것보다

 

E[Y]=G[b0+b1X1+b2X2+b3X3+..]

 

이렇게 오른쪽에 함수를 취하는 것이 익숙합니다. 예를 들어 이항분포의 경우 오른쪽의 선형함수에다 어떤 G라는 함수를 덮어 0과 1사이로 납작하게 만든다는 것(이런 대표적인 함수가 누적확률분포입니다), 그래서 오른쪽 G(Xb)가 왼쪽 E[Y}를 설명하다는 형태가 우리들 사고방식에 익숙하다는 것이죠. 그래서 처음에는 이 link를 받아 드리기가 좀 힘듭니다. 그러나 오른쪽에 함수를 취하지 않고 왼쪽에 함수를 취하는 이유는 지수계열 이론 때문에 그렇습니다.

 

하여간 포아송 분포의 경우 SPSS에서 일반선형모형을 보시면 되고요, 그리고 이항분포의 경우는 워낙 많이 사용되니까 SPSS에서 Regression에 보면 따로 메뉴로 나와 있습니다.

 

 

 

 

2) 또 하나의 확장은 오른쪽 모형부분이 비선형인 경우입니다.

 

b0+b1*log(X)+b2*sin(X) 이런 것은 선형입니다. 이건 log(X)=W1, sin(X)=W2로 변환하면 원래 선형모형으로 돌아갑니다. 그러나 exp(b0+b1X) 이런 모양은 선형이 아닙니다. 정확하게 이론적으로 이야기하면 여기서 선형이라는 독립변수 X들의 선형결합이 아니라 모수 b들의 선형결합을 이야기합니다. 자세히 알 필요는 없고요. 이 비선형 회귀분석은 저도 석사때 잠시 보고 한번도 본적이 없어서요. 하여간 SPSS에서는 Regression 메뉴에서 curve estimation이 아마 이 비선형 회귀분석인 것으로 추측됩니다. 이건 간단히 넘어가고요.

 

 

 

 

3) 가장 많이 응용되고 하는 것이 Y(i)들이 시계열 데이터 일 경우입니다.

 

일반회귀분석, 특히 설문지 조사의 경우 첨자 (i)는 아무런 의미가 없습니다. 그냥 설문지를 코딩한 순서에 불과합니다. 시간하고 아무런 관계가 없다는 것이죠. 그러나 이게 시간 t를 의미하면 이젠 문제가 생깁니다. Y(t)가 시계열 데이터가 되고 서로 독립이 아니기 때문입니다.

 

이런 독립이 아니라서 생기는 현상의 예를 들어 보면 흔히 주식투자 하는 사람들이 맨날 주가의 흐름이나 거래량의 흐름을 보고 이러쿵 저러쿵하고 떠들지요. 이게 시계열 데이터의 상관성을 이용해서 주식시장에서 떼돈을 벌려고 하는 것이죠. 주식가격이나 거래량이 서로 독립이면 이전 데이터의 움직임을 아무리 연구해봐도 도움이 안됩니다(효율적 시장 인가 하는 가설하고 좀 다르나요?). 하여간 주식시장에서 이런 기법을 기술적 분석이라 합니다. 이런 가격이나 거래량의 흐름을 파악하는 것보다 기업의 재무제표상의 데이터를 이용하여 분석하는 것을 기본적 분석이라 합니다.

 

그래서 시계열 분석을 배울려고 하는데 대부분 처음에 나오는 이론 보고 포기를 합니다. 안정, 정상 시계열이니 AR, MA, ARMA가 어떠니 하면서 나오는데 왜 이걸 배우는지 모르겠다는 것이죠.

 

자 우리는 거꾸로 돌아가 예를 들어 설명을 해보죠

 

에어콘의 판매량 Y(t)에 대해 한번 생각해보죠. 그럼 에어콘 판매량에 영향을 미치는 요인으로 분명히 전반적인 경제성장인 T(t)(trend)가 있겠죠. 그리고 경제가 성장하는 가운데서도 경기 변동이 있으니까 경기변동 요인 C(t)(cyclic)도 있겠죠, 또한 여름에 많이 팔리는 계절적인 요인 S(t)(seasonal)도 있겠죠. 그리고 이 세 요인으로도 설명이 안되는 애매모호한 부분이 있겠죠.

 

그럼

 

Y(t)=T(t)+C(t)+S(t)+애매모호한 부분

 

이런 식으로 생각할 수 있을 겁니다. 여기서 이 애매모호한 부분을 설명하려는 것이 안전(정상)시계열, ARMA 모형입니다. 그래서 우리는 이 애매모호한,  별 중요하지도 않는 것 같은 이것을 떼내고 앞의 중요한 부분을 분석하는 것이 더 중요하겠죠.

 

그래서 앞부분의 중요한 부분을 어떻게 처리하는 지를 아는게 더 시급하다는 것이죠. 이것을 알려면 차분(difference) 작동(operator)을 잘 이해를 해야 합니다. 예를 들어 시계열 Y(t)가 단순한 trend만 있다고 하죠.

 

그럼

 

Y(t) = b0+ b1*t+ 애매모호한 부분

 

이렇게 되겠죠. 그럼 1시점 차분하면

 

Y(t)-Y(t-1) = b1+ 애매모호한 부분

 

이렇게 되고 그럼 이렇게 한 다음 이 애매모호한 부분에 ARIMA 모형을 적용하자는 것이죠.

 

또 에어콘의 계절 요인의 경우 12차 시점 차분을 하자는 것이죠.

 

Y(t)-Y(t-12)을 적용한 다음 나머지 남는 애매모호한 부분에 ARIMA 모형을 적용하자는 것이죠. 왜 이렇게 12개월 시차를 적용할까요?

 

금년 8월의 에어콘 판매량-작년 8월의 에어콘 판매량

 

금년 7월의 에어콘 판매량-작년 7월의 에어콘 판매량

 

금년 6월의 에어콘 판매량-작년 6월의 에어콘 판매량

 

 

이것들을 구해서 비교하면 트렌드나 경기변동을 배제하면 서로 0 비슷하게 값들이 안정적으로 나오겠죠. 그래서 위의 작동을 하면 나머지는 애매모호한 부분만 남고, 위의 작동을 한 다음 이 남은 애매모호한 부분에 ARIMA를 적용한다는 것이죠.

 

 

그래서 현장에서 시계열 분석을 해야 하는 분들이 있으시면 통계 이론책보다 먼저 실제 다양한 자료를 시계열로 분석한 실용적인 책을 먼저 보기를 권합니다. 그래서 감을 잡은 다음 이론책을 권합니다.

 

솔직히 이 애매모호한 부분이 얼마나 중요한 역할을 하는지 저도 좀 의심스럽고요. 이건 시계열 전공하는 사람들이 스스로 독자들에게 보여줘야죠. 예를 들어 이런 애매모호한 부분은 주식시장으로 이야기하면 단타 투기하는 사람들에게는 유용할 수 있습니다. 그러나 이것보다는 앞의 요인들 분석이 훨씬 더 중요하겠죠.

 

물론 군사적 응용인 경우에는 중요할 수 있습니다. 원래 시계열 이론이 나오게 된 설이 있는데, 확실하지는 않고요, 어디서 봤는데 잘 기억이 안나서요. 군함이 잠수함에 쫓길 때 이리 저리, 지그재그로 도망갑니다. 자기딴에는 지그재그로 랜덤하게 도망간다고 하지만 거기에는 어떤 법칙이 있다고 본 것이죠. 그럼 이걸 분석해서 조절해서 쏘면 명중률이 높아지겠죠. 그래서 이런 분석이 중요하다고 볼 수도 있겠죠.

 

하여간 이런 시계열 분석은 경제학에서 많이 사용합니다. 그러나 경제 변수들은 서로간의 영향을 많이 미칩니다. Y1(t), Y2(t), Y3(t), Y4(t) 등 서로 영향을 미치는 여러 변수들이 있잖아요. 예를 들어 경제성장률, 물가, 이자율, 통화, 환율, 서로간의 얽혀서 골치 아프잖아요. 이렇게 하나의 시계열을 Y(t)를 분석하는 것이 아니라 여러개 변수들을 모아 방정식을 분석하는 방법도 있습니다. 연립방정식 분석도 그렇고 또 최근에는 VAR 계열 분석도 많이 합니다. 가끔 의뢰가 들어옵니다. 하여간 이때 VAR(Vector Autoregression Analysis)는 리스크 관리에 나오는 VaR(Value at Risk)랑은 완전히 다른 것입니다. 이런 분석은 아마 일반 통계프로그램에서는 잘 안될겁니다. 계량경제학에 나오는 Eview같은 프로그램을 사용합니다. 더 복잡하게 나가는 것이 있는데 저도 전공도 아니고 분석 의뢰가 들어 온적도 없고해서요. 하여간 이론적이나마 시간이 나면 더 쓰겠습니다.

 

 

 

4) 기타 문제

 

그래서 일반적인 회귀분석의 확장을 한번 봤습니다. 이런 큰 방향은 아니지만 앞에서 이야기한 다중공선성 문제빼고 이분산 문제가 있고, 이상치에 의해 생기는 마스킹 효과도 있습니다.

 

이분산 문제는 분산이 증가하거나 또는 시계열처럼 오차항간에 독립이 유지가 안되는 경우죠. 이런 경우 기본 회귀분석처럼 투사하면 통계적으로 안 좋은 결과를 얻을 수 있습니다. 시계열의 데이터는 일반적으로 이분산의 문제가 생깁니다. 경제변수들이 시간에 따라 커지거나 작아지거나 하는 현상들이 있죠. 경제성장도 그렇고, 정부재정, 통화량, 소득 다 그런 경우이죠. 이런 시계열이 아니라도 횡단면 데이터에서도 이런 경우를이 생겨납니다. 소비와 소득간의 관계를 한번 보잖는 것이죠. 그럼 모형은

 

C=b0+b1*Y+e

 

이렇게 만들 수 있죠. 그럼 한달 100만원 미만 소득자를 보면 이 사람들의 소비의 변동은 기껏해야 10-20만원 정도일겁니다. 기본적인 소비는 해야 되니까요. 그러나 한달 천만원 이상 버는 고소득자들을 보면 이 사람들의 소비의 변동은 몇 백만원이 될 겁니다. 그래서 소비의 변동이 소득에 따라 너무 차이가 많이 난다는 것이죠.

 

이럴 경우 소비의 오차, 즉 에러의 오차를 안정화시키는 변환을 한 다음 투사를 한다는 것이죠. 이럴 경우 GLS(generalized LS)라 하고 앞의 고전적인 투사를 OLS(ordinary LS)라고 합니다. 계량경제학에서 많이 쓰는 용어죠. 가중회귀분석(Weighted Regression)이라고도 하고요.

 

마스킹 효과는 단순해서 그림을 보면 뭔 소리 줄 바로 알 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'회귀분석 > 이론' 카테고리의 다른 글

회귀분석이론3  (0) 2013.03.21
회귀분석 이론 2  (0) 2013.03.20
회귀분석 이론을 좀더1  (0) 2013.03.19