}

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터 분석] 최소제곱법(Ordinary Least Square)을 쓰는 이유
    Data Science/데이터 분석, ML 2020. 9. 18. 14:52
    반응형


     

    0. 들어가는 글

    미리 밑밥부터 깔겠습니다.

    이 포스트에서는 엄밀한 의미에서 최소제곱법을 다루지 않을 겁니다.

    사실 엄밀하고 진중하게, 그리고 정확하게 다루는 포스트는 굉장히 많아요.

    거기에 굳이 한 포스트 더 거들 필요는 없을 것 같습니다.

    여기서는 최소제곱법(OLS라고 부르겠습니다)에 대해 최대한 직관적으로 이해하는 걸 목표로 해볼게요.

     

     


    1. OLS란 무엇일까

    OLS는 오차를 최소로 만드는 추정량을 말합니다.

    말이 어렵기는 한데, 아래처럼 생긴 식을 우리는 OLS추정량이라고 부릅니다.

    $$\hat{\beta} = (X'X)^{-1} (X'Y)$$

    설명을 조금 더 덧붙이자면, 선형식을 추정하는 방법이라고 이해하면 됩니다.

    여기서 중요한 키워드는 ①선형식 그리고 ②추정, 이 2가지 입니다.

    쉽게 이해하기에 어려운 건 사실이에요.

    하지만 그 밑바탕이 되는 아이디어는 충분히 이해가능하고, 합리적입니다.

    지금부터 차근차근 들어가보겠습니다.

     


     

    2. 두 변수가 관계가 있다는 걸 수학적으로 표현해보자

    우리가 OLS에까지 관심을 갖게 되었다면,

    아마 흥미로운 어떤 현상을 발견하셨을 겁니다.

    일단 그 흥미로운 현상에 대해서 서술을 해보면 이런 모습일 겁니다.

     

    내가 주식을 샀더니 급등하던 종목이 고꾸라지더라(!)
    물가가 오르더니 전세대출 이자도 오르더라. 그런데 내 월급은 안 오르더라.(!)
    미국 연준이 금리를 올리니, 국내 주식시장이 얼어붙더라(!)

     

    이렇게 "어떤 일이 있고나서, 다른 일이 발생하더라" 하는 현상을 종종 발견할 수 있을 겁니다.

    이 때 어떤 일에 해당하는 부분은 $X$라고 하고, 다른 일에 해당하는 부분을 $Y$라고 부르겠습니다.

    명칭은 무어라 해도 상관은 없습니다.

    어쨌든 우리는 흥미로운 현상을 $X$와 $Y$의 관계로 서술할 수 있습니다.

    이 때, 이 둘의 관계가 될 수 있는 가능성은 크게 보면 세 가지 정도로 볼 수 있어요.

     

     

    [1] $X$와 $Y$는 선후관계에 있다. 

     $X$와 $Y$는 시간의 순서상으로 $X$가 일어나고, $Y$는 나중에 일어났을 수 있습니다.

    $X$가 구체적으로 $Y$에 영향을 주거나, 반대로 $Y$가 $X$에 영향을 주는 일은 없을 수 있습니다.

     

    [2] $X$와 $Y$는 상관관계에 있다.

     $X$와 $Y$가 서로 영향을 주고 받는 관계에 있기는 합니다.

    하지만 영향을 주는 방향이 일방향은 아닐 수 있어요.

    서로 영향을 주고 받을 수도 있는 거죠. 말그대로  '서로 관계되어 있음'까지만 확실한 상태인 셈입니다.

     

    [3] $X$와 $Y$는 인과관계에 있다.

    이 경우는 $X$가 $Y$에게 또는 $Y$가 $X$에게 영향을 주면, 다른 쪽은 일방적으로 영향을 받는 관계를 말합니다.

    이 때 영향을 주는 일을 보통 '원인'이라고 부르고, 영향을 받는 일은 '결과'라고 부릅니다.

     

     

    우선 위와 같은 세 가지 가능성을 한 마디로 하면 '$X$와 $Y$가 관계가 있다.'고 할 수 있겠습니다.

    이 말을 깔끔하게 수학으로 표현하는 방법이 있습니다.

    우리가 이미 중고등학교 때 배운 '함수'입니다.

    함수로 표현하면 다음과 같이 표현할 수 있습니다.

    $$ Y = f(X) $$

    흥미로운 현상에 대해서 우리는 $X$와 $Y$가 관계가 있다는 점까지는 서술을 마쳤습니다.

    그 다음에 할 수 있는 질문은 이런 겁니다.

      "구체적으로 $X$와 $Y$는 어떤 관계가 있는데?"

     

    사실 이 질문에 대한 정답은 없어요.

    그냥 하는 말이 아니라, 정말로 없습니다.

    왜냐면, 우리는 신이 아니니까요.

    우리는 이 세상이 작동하는 방식을 만들어 낸 주체도 아닙니다.

    그리고 그런 방식이 정말 존재하는지도 불분명하고, 존재한다 하더라도 알아낼 수 있는지도 알 수 없어요.

    이렇게 더 이상 논리를 진전시킬 수 없을 때 하는 방법이 있습니다.

    바로 적당한 포기, 즉 '가정(Assumption)'입니다.

     


     

    3. 적당한 선에서 가정을 합시다.

    완벽한 매커니즘까지는 우리가 알 수 없으니, 우선 적당한 선에서 포기를 합니다.

    '대략적인/근사적인' 수준이면 충분하다고 생각해봅시다.

    예를 들어 $X$가 증가하면 $Y$도 증가한다거나, $X$가 감소하면 $Y$가 증가한다더라 정도로 만족하면 됩니다.

     

    그렇다면 아마, $X$와 $Y$의 관계는 아래와 같은 일차식으로 써볼 수 있을 겁니다. 

    $$ Y = \alpha + \beta X$$

    만약 $\beta$가 양수라면, $X$가 증가할 때 $Y$도 증가할 겁니다.

    반대로 $\beta$가 음수라면 $X$가 증가할 때 $Y$는 감소할겁니다.

     

    하지만, 이 식은 말 그대로 '대략적'으로만 표현했습니다. 

    원래 매커니즘과는 당연히 차이가 있겠죠. 

    이러한 차이를 인정하는 부분을 식에 함께 넣어주면, 조금 더 합리적일 것 같습니다.

    이 차이를 우리는 오차항($Error\, term$)이라고 부릅니다.

    일반적으로 오차항은 $error$에서 따와서 $e$라고 쓰기도 하지만,

    '관찰할 수 없는 부분($Unobservable$)'이라는 의미도 있어서 $u$라고 쓰기도 합니다. 

    여기서는 $u$라고 표기하겠습니다.

    그러면 이제 $X$와 $Y$의 관계는 아래 식과 같습니다. 

    $$ Y = \alpha + \beta X + u $$

    이 식을 우리는 선형식이라고 부릅니다. $X$와 $Y$의 관계가 선형적인 관계라는 의미에서요.

    그리고 이 식이 실제 $X$와 $Y$의 관계라고 가정합니다.

     

     


     

    4. 실제와 다르지만, 기왕이면 최대한 잘 맞춰보자!

    우리는 식에서 이미 실제와는 다를 수도 있는 부분, 즉 오차항의 존재를 인정했습니다.

    그럼에도 최대한 설득력을 갖기 위해서는 어떻게 해야 할까요?

    당연히 틀릴 수 있는 부분이 최대한 작아지면 됩니다.

    틀릴 수 있는 부분을 최대한 작아지게 만들기 전에, 2가지 사실에 대해서 짚고 넘어 가겠습니다.

     

    ① 오차항은 음수일 수도, 양수일 수도 있다.

    오차항의 정확한 부호는 모릅니다.

    하지만 반드시 양수이거나, 반드시 음수일 이유는 없을 거에요.

    그러니 오차항의 부호는 한 방향으로 정해져 있지는 않을 겁니다.

     

    ② 오차항은 여러번 나타난다.

    정확히는 오차항은 표본크기(N)만큼 출현합니다.

    앞선 사례 중 하나를 다시 가져와보겠습니다.

    내가 주식을 샀더니 급등하던 종목이 고꾸라지더라(!)

     

    여기서 $X$는 내가 주식을 산 행위이고, $Y$는 급등하던 주식이 고꾸라진 일입니다.

    내가 주식을 1번만 사면, $X$와 $Y$를 규정하는 매커니즘 상에서 오차항이 1번 출현할 겁니다.

    내가 주식을 2번만 사면, $X$와 $Y$를 규정하는 매커니즘 상에서 오차항이 2번 출현할 겁니다.

    그렇다면 내가 N번 주식을 사게 되면, $X$와 $Y$를 규정하는 매커니즘 상에서 오차항이 N번 출현하게 될 겁니다.

    이 때 출현하게 될 N개의 오차항을 모두 함께 고려해야 할 필요가 있습니다. 

    요컨대 어느 한 오차항만 0으로 만들어주는(오차가 없는) 경우는 좋은 해결책이 아닙니다.

     

     


     

    5. 이제, OLS를 해봅시다. 

    우선 N번 출현하는 오차항을 함께 고려해줄 필요가 있다고 말했습니다.

    우리가 오차항의 크기를 알 수 있을 때, '전반적인 오차의 크기가 작다'라고 주장을 할 수 있어야 하는 상황인 셈입니다.

    그렇다면 전반적인 오차를 어떻게 표현하면 좋을까요?

    다양한 아이디어가 있을 텐데요, 

    OLS에서 사용하는 방법은 '오차의 합'을 '전반적인 오차'라고 봅니다.

     

    그렇다면 N번 출현하게 되는 오차를 모두 더해주고,

    이 오차의 합을 가장 작게, 즉 0에 가깝게 만들어주면 될 겁니다.

     

    여기서 앞서 말한 사실 중 첫번째 사실이 걸립니다.

    우리는 오차항의 부호를 알 수가 없어요.

    사실은 오차가 굉장히 큰데, 단지 부호가 반대라는 이유로 오차를 모두 더할 때 서로 상쇄시킬 수도 있습니다.

    이런 문제를 방지하기 위해서, 오차의 크기를 통일시킬 필요가 있습니다.

     

    오차의 크기를 통일하는 대표적인 방법은 오차항에 절대값을 씌우거나, 제곱을 하면 됩니다.

    절대값이 계산하기에 수월할 것 같지만, 사실 제곱을 하는 게 훨씬 좋습니다.

    왜냐면 우리는 ①오차항의 부호를 통일시켜준 다음에 ②오차의 합을 작아지게 하는 게 목적이거든요.

    이 때 오차의 합을 작아지게 하기 위한 방법으로 '미분'을 할겁니다.

    절대값을 씌운 경우는 미분이 안되는 구간이 있거나 미분이 어렵지만,

    제곱한 경우는 굉장히 간단한 편이거든요.

     

    정리하면, 우리는 아래의 단계를 거칠 겁니다. 

    ① 오차항의 부호를 통일시켜주기 위해 오차항을 제곱합니다.

    ② '전반적인 오차'를 오차의 합이라고 보고,

    ③ 이 오차의 합을 미분함으로써 오차의 합을 가장 작게 만들어 둡니다. 

     

    눈치채셨겠지만, 여기서 ①단계에서 '제곱'을, 그리고 ③단계에서 '최소'를 따와서 최소제곱법이라고 부릅니다.

    이 과정을 거치면, $\alpha$와 $\beta$를 추정할 수 있게 되고, 

    결과적으로 $X$와 $Y$를 근사적으로 구한 관계를 구할 수 있게 됩니다.

     

    식을 유도하는 방법은 [부록] 최소제곱법(Ordinary Least Square;OLS) 공식 유도를 참고해주세요.

     

     

    반응형

    댓글

Designed by Tistory.