-
[데이터 분석] 최소제곱법(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) 공식 유도를 참고해주세요.
반응형'Data Science > 데이터 분석, ML' 카테고리의 다른 글
[ML] 릿지Ridge, 라쏘LASSO를 배울 때 나오는 그래프는 뭘까 (0) 2022.05.02 [ML] 뉴턴-랩슨법(Newton's Method)을 쓰는 이유 (4) 2020.10.23 [데이터 분석] 회귀분석을 할 때 로그 변환을 하는 이유 (1) 2020.10.08 [데이터 분석] 로그변환을 "변화율, 성장률"로 해석하는 이유 (0) 2020.09.18 [데이터 분석] 통계적 가설검정을 어렵게 느끼는 이유 (0) 2020.09.12