본문 바로가기
수학의 재미

트렌드 직선의 비밀(선형회귀) #3

by hustler78 2022. 5. 12.
728x90
반응형

이 글은

2022.05.11 - [수학의 재미] - 트렌드 직선의 비밀(선형회귀) #2

 

트렌드 직선의 비밀(선형회귀) #2

이 글은 2022.05.10 - [수학의 재미] - 트렌드 직선의 비밀(선형회귀) 에서 이어집니다. $n$개의 데이터 $(x_1,y_1), (x_2,y_2),\cdot, (x_n,y_n)$ 이 있고, 이 데이터를 잘 설명하는 직선의 식을 $y=ax+b$라 할..

sine-qua-none.tistory.com

ㅏ에서 이어집니다. 잠깐 복습을 하면 $n$개의 데이터 $(x_1,y_1),\cdots, (x_n,y_n)$ 의 트렌드를 잘 설명하는 직선을 $y=ax+b$ 라 했을 때,

$$
\begin{align}
\sum_{i=1}^n x_i(y_i-(ax_i+b)) & =0 \tag{1} \\
\sum_{i=1}^n (y_i - (ax_i+b)) & =0 \tag{2}
\end{align}
$$

 

를 만족하는 기울기 $a$와 $y$절편 $b$를 찾으면 된다고 했고, 찾은 값은

$$
\begin{align}
a &= \frac{\rm{COV}(X,Y)}{\mathbb{V}(X)} \tag{3}\\
b & =\mathbb{E}(Y)-a\mathbb{E}(X) \tag{4}
\end{align}
$$

 

이었습니다.

각각의 $i$에 대해, $p_i = ax_i+b$ 라고 씁시다. 관찰된 값은 $y_i$지만, 추세선에 따라 예측되는 값이 $p_i$라는 뜻이고 prediction의 약자인 $p$를 기호로 쓰는 것입니다. 그림으로 표시하면 아래와 같습니다.

 

당연하게도 현실적으로 이 추세선 위에 모든 관측값이 있을 수는 없으므로 $p_i$와 $y_i$에는 차이가 납니다. 우리는 이 차이의 제곱의 합이 최소가 되게끔 직선을 찾았습니다. 즉, 

$$ \sum_{i=1}^n (y_i -p_i)^2 \tag{5}$$

 

은 추세선과 관측값의 거리함수가 최소가 되게 찾은 것으로서, 이 값을 잔차(Residue)의 제곱합이라 부릅니다.

그런데 이 잔차 제곱의 합이 숫자로서 의미가 있을까요?

즉, 어떤 데이터셋에 대해서는 10 이 나오고, 다른 데이터셋에서는 100 이 나왔다고 했을 때, 그럼 무조건 10 나온 데이터셋이 더 설명이 잘 된 걸까요? 예컨대,  다음의 두 데이터

  • 나이 vs 몸무게
  • 나이 vs 연봉

이 두 데이터셋에 각각 추세선을 구해서 잔차를 계산해 본다 칩시다. 몸무게의 잔차를 따지면 기껏해야 두자리 수일거고 연봉의 잔치는 몇백, 몇천만원이 될 수도 있습니다. 그렇다고 해서 기껏해야 두 자리의 잔차를 가지는 나이vs몸무게가 분석이 항상 정확하다 라는 논리는 당연히 성립하지 않겠죠? 즉 어떤 기준을 설정하고 그 기준 대비 이 잔차제곱합이 얼만큼 최소인지 따지는 분석이 필요한 것입니다. 

 

통계를 구하는 변수가 있을 때, 기준 역할을 할 수 있는  대표 통계량 두 가지가 있습니다. 바로 평균분산입니다. 그럼 이제$y_i$와 $p_i$의 평균부터 살펴봅시다.

 


  • 평균 구하기

수식 (4)에 의하면,

$$\mathbb{E}(Y) = a\mathbb{E}(X) + b = \mathbb{E}(aX+b) = \mathbb{E}(P) $$

를 만족합니다(여기서, $P$는 예측값 $p_1,\cdots,p_n$을 대표하는 변수이름입니다.)

신기하네요. 관측값($Y$)와 추세선에 의한 예측값($P$) 의 평균은 똑같습니다. 

 

  • 분산 구하기

$Y$의 분산식은 다음과 같습니다. $Y$의 평균을 $m$이라 표기하면,

$$ \mathbb{V}(Y) = \frac1n\sum_{i=1}^n(y_i-m)^2 $$

인데 계산의 편의상, $\frac1n$은 생략하고 합계만 생각해보도록 합시다.

$$
\begin{align}
\sum_{i=1}^n(y_i-m)^2 & = \sum (y_i-p_i+p_i-m)^2 \\
& = \sum(y_i-p_i)^2 + 2\sum(y_i-p_i)(p_i-m) + \sum(p_i-m)^2 \tag{6}
\end{align}
$$

수식 (6)의 중간항을 볼까요? 중간항을 더 정리해보면 아래와 같습니다.

$$
\begin{align}
\sum(y_i-p_i)(p_i-m) &= \sum(y_i-p_i)p_i - m\sum(y_i-p_i) \\
                           & = \sum(y_i-p_i)p_i (\because (3)) \\
                           & = \sum(y_i-p_i)(ax_i+b) \\
                           & = a\sum ax_i(y_i-p_i) + b\sum(y_i-p_i)\\
                           & = 0 (\because (1),(2))
\end{align}
$$

따라서 식 (6)은 다음과 같이 간결하게 정리됩니다.

 

$$\sum_{i=1}^n(y_i-m)^2 = \sum_{i=}^n(y_i-p_i)^2  + \sum_{i=1}^n(p_i-m)^2 \tag{7}$$

 


이제 준비가 다 되었습니다. 만일 추세선($P$)이 기존의 데이터 $Y$를 아주 잘 설명한다, 다시 말해 기존 데이터 점들에서 추세선 근처에서 모두 모여 있으면 수학적으로 어떻게 될까요? $P$와 $Y$의 분산이 거의 차이가 없을 것입니다. 혹은 다른 말로 잔차 제곱의 합이 아주 작아지겠죠.  지루하더라도 수학적으로 정리해봅시다.

$$
\begin{align}
\mbox{SST: } & = \sum_{i=1}^n (y_i -m)^2 \\
\mbox{SSE: } & = \sum_{i=1}^n (p_i-m)^2 \\
\mbox{SSR: } & = \sum_{i=1}^n (y_i -p_i)^2
\end{align}
$$

라 쓰면 식(7)번은 

$$ \mbox{SST} = \mbox{SSE} + \mbox{SSR} \tag{8}$$

로 쓸수 있습니다. 세 값은 모두 양수이고 SSE가 SST가 작은 값이죠. 그런데 앞에서 살펴봤듯이 $Y$와 $P$의 분산이 거의 같으면 아주 설명력 있는 추세선이 찾아진 것입니다. 따라서 우리는

$$ \frac{\mbox{SSE}}{\mbox{SST}} $$

라는 값을 계산해 보고, 이것이 1 가까운 수이면 추세선의 설명력이 높고, 1에서 멀어져서 0으로 떨어지면 추세선은 그리나 마나 한 것이다라고 얘기해 볼 수 있습니다.

바로 이값이 $R^2$ 이고, R-SQUARE라 부릅니다. 식(8)에 의해

$$R^2 = \frac{\mbox{SSE}}{\mbox{SST}} = 1-\frac{\mbox{SSR}}{\mbox{SST}} $$

라 쓸 수도 있습니다.

 

이렇게 해석을 하시면 됩니다. 

SST는 관찰한 데이터의 퍼져 있는 정도인데, SSE만큼은 추세선(또는 회귀분석)으로 설명이 가능하고 이 차이인 SSR은 설명이 불가하니 에러(또는 잔차)로 볼 수 있다. 만일 SST와 SSE가 많은 차이가 안난다면, R-SQUARE는 1에 가까울 것이고, 우리가 찾은 추세선이 관찰된 데이터를 아주 잘 설명하고 있다는 뜻이다.  

참고로 

  • SST : Total Sum of Square
  • SSE : Explained Sum of Square
  • SSR : Residual Sum of Square

를 뜻합니다.

 

다음 글에서 엑셀에서 직접 추세선을 찾는 몇가지 예를 다뤄볼 생각입니다.

728x90
반응형

댓글