-
[부록] 최소제곱법 공식 유도① 다중회귀모형Data Science/부록 2020. 9. 10. 20:33반응형
0. 들어가며
사실, 나는 계량경제학에 대한 블로그를 쓰고 싶었다.
그동안 엑셀과 퀀트에 대해 블로그를 시작하게 된 계기도 사실은 계량경제학에 대한 공부를 놓고 싶지 않기 때문이 크다. 데이터 분석을 놓고 싶지 않고 회사 업무를 하다보니 엑셀 보고서와 퀀트에 대해 쓰게 되었다. 하지만 대학원을 졸업한 이후에도 가장 관심이 가고 애정이 느껴지는 분야라면 당연히 계량경제학과 데이터분석이다.
그래서 오늘은 머리에 단단히 박아두기 위해 애썼던 내용을 잊지 않기 위해서 그리고 감가상각을 최소한으로 하기 위해 계량경제학에서 배울 내용 중 가장 기초가 되는 내용부터 찬찬히 메모해두려고 한다.
1. 최소제곱법에 대한 짧은(?) 소개
부록은 자고로 짧게 쓰는 게 최고지만, 그래도 간단히 최소제곱법에 대한 소개는 써봐야겠다.
나중에 Essay에 최소제곱법에 대한 이야기를 쓰게 되면, 이 내용은 통째로 옮겨갈 듯 하니 아주 무의미하지는 않을 것 같다.
최소제곱법은 최소잔차법이라고도 부르고 영어로 Oridinary Least Square, 줄여서 OLS라고 한다. 선형대수학에서도 배우게 되지만 주로 계량경제학 모형에서 계수를 추정할 때 많이 쓰이는데 Ordianary라는 의미에서 이미 '별 거 없는' , '아주 평범한' 잔차제곱법이다. 다시 말해 OLS 말고도 잔차를 제곱하는 식으로 추정하는 방법이 있긴 있는데, 이 방식은 아주 특별할 건 없는 기초적인 의미라는 뜻이다.
물론 기초라고 해서 아주 쉬운 건 아니고, 사실 경제학과 학부생때 계량경제학을 기피하게 되는 이유 중에 하나다.
많은 사회과학 분야에서 쓰이는데 다른 여러 가지 추정보다는 꽤나 직관적인 편이고 생각보다 쉽게 계산할 수 있기 때문이라고 생각된다. 이것만 가지고도 많은 이야기를 할 수 있겠지만, 그건 나중으로 미루고 우선은 공식을 보자. 공식은 아래처럼 생겼다.
$$ \hat{\beta} = (X'X)^{-1}X'Y $$
여기서 $X$는 $(n \times k)$행렬이고 $Y$는 $(n \times 1)$의 벡터이다. 그리고 $X'$는 $X$의 전치행렬을 말하고, $(X'X)^{-1}$은 $X'X$의 역행렬을 말한다. 즉 $Y$, $X$, $X'$은 대충 이렇게 생겼다.
$$ Y = \begin{bmatrix} y_{1,1} \\ y_{1,2} \\ \vdots \\ y_{1,n} \end{bmatrix}, \qquad X = \begin{bmatrix} x_{1,1} & x_{1,2} & \cdots & x_{1,k} \\ x_{2,1} & x_{2,2} & \cdots & x_{2,k} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n,1} & x_{n,2} & \cdots & x_{n,k} \\ \end{bmatrix}, \qquad X' = \begin{bmatrix} x_{1,1} & x_{2,1} & \cdots & x_{n,1} \\ x_{1,2} & x_{2,2} & \cdots & x_{n,2} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n,1} & x_{n,2} & \cdots & x_{n,k} \\ \end{bmatrix}$$
2. 공식을 도출하기 전에 짚고 넘어갈 점
우선 행렬 표기 방식을 써서 조금 낯설 수는 있겠지만, 보통 학부에서 배우는 시그마($\Sigma$)를 써서 쓰기에는... 사실 손이 너무 많이 간다(...). 아무튼 표기만 저렇게 될 뿐이지, 일반적으로 단순회귀모형이나 다중회귀모형에서 배운 추정방식으로 얻은 계수와 다르지 않다.
그리고 위와 같은 공식이 나온 가장 큰 이유는 일반적인 선형식을 전제했기 때문이다. 즉 전제한 식이 $Y = X\beta + u$이기 때문($u$는 오차항)에 위와 같은 공식이 나온다. 바꿔 말하면 식이 다르면 공식도 다르다.
마지막으로 도출하는 과정에서 미분을 사용하게 되는데 행렬 표기를 했으니 행렬 미분을 써야한다. 기본적으로 행렬 미분이 일반적인 다항식의 미분과 크게 다르지는 않다. 다만 표기가 다르다보니 조금 헷갈릴 뿐이다. 그리고 어차피 미적분학을 연구하는 사람도 아니고, 여기서는 도구로만 쓸 생각이니 아래 표를 외우시라(...). 도출과정에서는 얼마 사용하지 않는다. 아래 표의 출처는 darkpgmr.tistory.com/141이다. 여기서 $A$는 행렬, $x$는 벡터를 말하고 앞선 표기와 동일하게 $x'$는 $x$를 전치한 행렬(벡터)이다.
식 $x$로 미분한 결과 $Ax$ $A$ $x'A$ $A'$ $x'Ax$ $x'(A+A')$ 3. 이제 도출해보자.
앞서 말한대로 우리가 가정한 식은 $Y = X\beta + u$이다. 이제 최소제곱법의 정의대로 $u$를 제곱하고, 이를 가장 작게 만들어주는 $\beta$를 찾으면 된다. 즉 $\frac{\partial}{\partial \beta}u'u = 0$을 만족하는 $\beta$를 찾으면 된다. $ u'u = (Y-X\beta)'(Y-X\beta) $이니까 우선은 우변을 전개해보자.
$$ (Y-X\beta)'(Y-X\beta) = (Y' - \beta'X')(Y-X\beta) $$
$$ = Y'Y - Y'X\beta -\beta'X'Y + \beta'X'X\beta $$
이 식을 $\beta$에 대해 미분한 뒤 0으로 만들어 주는 값을 $\hat{\beta}$라고 하자.
우변의 4개의 행렬들을 찬찬히 보자. 우선 첫번째 행렬인 $Y'Y$는 $\beta$에 관련없는 상수벡터이니 0이다. 두번째 행렬인 $Y'X\beta$는 $Y'X$만 남는다. 세번째 행렬인 $\beta'X'Y$는 $(X'Y)' = Y'X$가 되고, 마지막 행렬인 $\beta'X'X\beta$는 $\beta'((X'X) + (X'X)')$가 된다. 정리하면 다음 식과 같다.
$$\frac{\partial}{\partial \beta} (Y - X\beta)'(Y-X\beta) = 0 - Y'X - Y'X + \beta'(X'X + (X'X)')$$
이 식을 0으로 만들어 주는 $\beta$를 $\hat{\beta}$로 하자고 했으니, $\hat{\beta}$를 대입하면 0이 된다. 우변에 $Y'X$를 이항하면 다음과 같은 결과를 얻는다.
$$ 2\hat{\beta}'X'X = 2Y'X $$
$$ \Longleftrightarrow \hat{\beta}'X'X = Y'X $$
양변에 전치행렬을 취하면 다음과 같다.
$$ X'X\hat{\beta} = X'Y $$
이제 $X'X$의 역행렬이 존재한다고 가정하고 양변에 $X'X^{-1}$을 곱하면 원하던 결과를 얻는다.
$$ \therefore \quad \hat{\beta} = (X'X)^{-1}X'Y $$
재수없게 들리겠지만, OLS의 정의와 행렬미분공식만 알고 있다면 생각보다 쉽게 도출할 수 있다. 물론 그 전에 이 행렬 표기에 익숙하지 않으면 잘 와닿지 않기는 하지만, 뭐든 익숙해지면 쉽게 해낼 수 있다고 생각한다. 나도 이해한 것이니 모두가 이해하기는 수월할 것이라 생각한다.
반응형'Data Science > 부록' 카테고리의 다른 글
[부록] 뉴턴랩슨법 구현 (2) 2020.10.23 [부록] 최소제곱법 공식 유도② 단순회귀모형 (0) 2020.10.17