본문 바로가기
회귀분석과 회귀예측은 뭐가 다름? 다중공선성은 이제 잊어요.

이번에는 이제까지 실컷 분석을 했으니까, 조금은 쉬어가는 짧은 이야기.

이제까지는 회귀를 LS(Least Square)를 통해서 모형의 계수들을 찾아냈는데, 이게 우물쭈물 이런저런 문제가 있더란 말이죠? 뭐 이렇게까지 문제의 원인들을 어렵게 알아보나 싶은데, 이게 바로 통계"분석"이기 때문에 Feature의 기여분-영향력을 나타내는 계수에 목을 매는 것입니다. 분석한 후에 그에 대한 해석을 해야 하니까요. 모형을 완성하는 것 목적 자체가 독립변수의 영향력을 잘 설명하기 위한 것이라니까요. 그런데, 이게 분석이 목적이 아니라 예측만을 위한 것이라면 어떨까요? 이때는 계수의 크기, 계수의 유의성, 상관관계, VIF 뭐 이런 것들이 그렇게 크게 중요하지 않을 수 있습니다. 계수의 분산이 크더라도, 그리고 다른 누군가 기여분을 가져갔다고 치더라도 어쨌든 각각의 독립변수들의 기여량을 합하면 종속변수를 예측할 수 있게 됩니다. 헛, 그런 것이었나요. 그렇긴 하지만 이런 경우에는 모형의 예측성능이 아무리 좋다고 해도 왜 이렇게 나오는지 설명하는 것에 우물쭈물하게 되는 그런 회귀모형이 되는 것입니다. 

 

 

사실 VIF니 뭐니 예측을 목적으로 한다면 별로 신경쓰지 않아도 된다고는 했지만, 실제로 설명가능한 회귀 예측 모형을 만든다고 한다면 당연히 관심 주요 Feature의 계수가 유의하도록 모형을 만들어야 예측도 가능하면서 설명 가능한 회귀 예측 모형을 만들 수도 있겠습니다. 이런 목적을 이해할 수만 있다면 이제까지 고생하면서 알아본 회귀를 왜 하는지 이해했다고 봐도 과언이 아니지 않을까 뿅 생각합니다. 

회귀모형이 설명과 관련없이 예측만을 목적으로 한다면 어떻게 모형성능을 평가하느냐 하는 질문이 생길 텐데 모형이 예측한 값과 실제값의 차이를 Root Mean Square Error(RMSE)를 측정합니다. 결국 모형이 실제값과 얼마나 틀리고 있냐만 관심이 있는 거죠. 

그래서 회귀분석을 할 때는 관심 Feature의 계수를 유의하게 만드는 것이 목적이니까 이제까지 보았던 골치아픈 여러 가지를 고려해서 모형을 완성하지만, 예측을 할 때는 Feature 중에 RMSE를 안 좋게 하는 Feature만을 제거하기도 합니다. 예측에 도움이 안 되니까요. 도움이 안 되는 녀석을 찾아낼 때야 말로 단순하게 RMSE를 안 좋게 하는 것을 넣었다 뺐다가 해서 찾아내는 방법도 있고, 여러 가지 회귀분석을 통한 인사이트를 통해서 종속변수와의 선형성에 도움이 되지 않는 녀석을 제거하는 방법도 동원할 수 있고 뭐 그렇습니다. 예측모형을 만드는 것도 정답이 없습니다. 순전히 모형을 만드는 사람의 생각과 판단에 따라 다릅니다. 왜 이렇게 모형을 만들었습니까? 하면 그냥 그런 느낌이 들었습니다. 그래도 잘 동작하는 것 같습니다. 정도로 무책임하게 답할 수도 있겠습니다. 짜잔.

처음 회귀분석을 만났을 때, 예측을 위해서는 뭐 그다지 고려할 것이 없었는데 뭘 이렇게 많이 알아야 하고, 고려하는건가? 싶었고, 머신러닝이나 예측모형을 만들 때 통계를 잘 알아야 한다고 다른 사람들이 이야기하는 것을 아니 왜? 라고  생각한 적도 있었다고 고백합니다. 그렇지만, 이제는  회귀모형을 데이터에 대한 분석으로 이용할 것이냐, 설명 가능한 예측 모형을 만드려고 하는 것이냐, 설명가능하지 않아도 예측만 잘하면 되는 모형을 만드느냐에 따라 접근법이 다르다는 것을 알게 되었습니다. 점점 예측에 관련된 이야기로 점점 옮겨 갈 테지만 분석을 할 수 있다면 모형을 통해서 뭔가를 설명하거나 개선할 때 당연히 도움이 되지 않을까 생각합니다. 

일부의 데이터를 가지고 전체를 추론하는 것이 통계학이 추구하는 가장 중요한 목표 아니겠습니까? 이 예측이라는 것이 일부의 표본을 가지고 전체 데이터를 추론하는 것입니다.  분석은 설명을 위해서, 그 설명한 것을 가지고 모집단을 추론하여 예측하는 것이니까 통계적으로 보면 서로를 떼 놓기에는 조금 그렇죠? 

참고로 회귀 예측모형에서 학습(Training) 데이터와 시험(Test) 데이터의 공분산구조가 비슷한 것이 중요합니다. 왜냐하면 학습데이터로부터 학습한 계수는 공분산행렬과 밀접하게 관련이 있는데, 막상 시험데이터에서 그게 많이 다르다면 예측이 엉망이 될 가능성이 큽니다. 그래서 학습데이터와 시험데이터를 잘 섞어서 예측 모형을 만드는 것이 매우 중요합니다. 여기에서 학습데이터는 모형을 만들 때 사용하고, 시험데이터는 모형이 경험하지 못했던 미지의 데이터로써 예측을 잘 하는지 확인코자 할 때 사용한다는 점을 노파심에 코멘트 한마디. 

친절한 데이터 사이언스 강좌 글 전체 목차 (링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (링크) -