본문 바로가기
수학의 재미

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

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

데이터 분석을 할 때, 우리는 두 가지 종류의 데이터가 어떤 관계를 가지는지, 어떤 트렌드를 따라가는지를 알고 싶은 경우가 많습니다. 예를 들어,

  1. 초등학생의 키와 몸무게 간의 관계
  2. 몸무게와 100m 달리기 실력의 관계
  3. 집에서 음식점까지의 거리와 배달에 걸리는 시간과의 관계
  4. KOSPI의 수익률과 우리나라 대표주자 삼성전자 수익률간의 관계
  5. KOSPI의 수익률과 KOSPI인버스 ETF 수익률간와 관계

등, 직관적으로 봤을 때 같은 경향성을 가진 예제도 있고(1,3,4번)  반대의 경향성을 가진 예제(2,5번)도 있습니다. 두 데이터 사이의 어떤 관계가 있는지 간단하게 체크할 수 있는 수학적 방법이 있습니다. 바로 트렌드 직선을 이용한 방법인데요, 다른 용어로는 선형회귀법이라고도 합니다.

 

요즘 배달 문화가 핫하니, 배달에 관련된 예제 하나를 준비했습니다.

 

위의 표는 어는 한 배달업체가 자체적으로 모은 배달거리와 배달시간 데이터입니다. 이를 도식화하여 $x$축에 배달 거리, $y$축에 배달시간을 분산차트로 그려보면 아래와 같습니다.

 

 배달 거리가 멀수록 배달 시간이 오래 걸리는 모양을 볼 수 있습니다. 정확하게는 과연 어떤 경향성이 있을까요? 엑셀에서 제공해 주는 추세선을 추가해 보도록 하겠습니다.

엑셀에서 제공하는 추세선을 그려보니 위와 같았습니다. 데이터들을 정확하게 지나가는 선은 아니지만, 얼추 그 경향성을 보여주고 있는 것 같지요. 왼쪽 상단에는 이 직선의 식과 $R^2$라는 값도 제공해 줍니다. 

 

이 직선은 어떻게 구할까요? 위의 예제는 데이터가 다소 많으니 가상의 데이터 셋을 준비하여 설명하겠습니다.

 

위 그림처럼 $x=x_1, x_2, \cdots, x_5$, $ y=y_1,y_2,\cdots, y_5$ 데이터가 있다고 합시다. $x$는 배달거리, $y$는 배달시간이고 5개의 샘플이 있다고 생각하면 쉽습니다.  여기에 선을 하나 그려볼텐데요.

위의 직선은 점 $(x_i,y_i)$들의 위치를 최대한 잘 설명해야 합니다. 아무렇게나 그리면 안되게죠. 따라서 생각해 낸 것이

  • 점들과 이 직선의 거리함수를 정의하고
  • 이 거리함수가 최소가 되도록 직선을 찾는 것입니다.

우선 직선과 각 점들의 $y$축 방향으로의 거리는 다음의 빨간 화살표들의 길이들입니다.

각각의 길이들을 수학적으로 살펴볼까요? 파란 점선의 식을 

$$y=ax+b$$

라 합시다. 여기서 $a$는 기울기(slope),  $b$는 $y$절편(y-intercept) 입니다.

이 때, $x_i$에서 이 점선위 의 $y$값은

$$ ax_i + b$$

가 됩니다. 그런데 원래 관찰된 데이터는 $y_i$ 입니다. 따라서 빨간 화살표들의 길이는

$$|y_i-(ax_i+b)|$$

가 됩니다.

따라서 이 길이의 합은 

$$\sum_{i=1}^{5} |y_i - (ax_i+b)| $$

입니다.

 

$a,b$를 잘 찾아  위 값을 최소로 만들고 싶은 것이 우리의 목적입니다. 그런데 우리가 알고 있는 최대/최소 찾는 가장 powerful한 방법은 바로 미분하여 0이 되는 점, 즉, 극점을 찾는 것인데, 절대값이 포함된 함수는 미분이 원활하지 않다는 큰 단점이 있습니다. 따라서 우리는 새로운 길이함수를 정의합니다. 다음과 같이 말이죠.

 

$$\sqrt{\sum_{i=1}^5 (y_i-(ax_i + b))^2}$$

 

이를 수학적으로는 $L^2$ 거리 함수라 부릅니다. 이제, 위 식 자체는 미분이 가능해졌습니다. 그런데 루트 떄문에 미분이 성가시죠? 게다가 우리는 어차피 최솟값만 구하면 되기 때문에 루트를 생략하여 거리를 정의해도 됩니다.  결과적으로

$$f(a,b)=\sum_{i=1}^5(y-(ax_i+b))^2$$

라 정의하고 이 함수는 점들(데이터)과 선 사이의 거리를 의미하는 함수가 됩니다.

 

지금까지는 데이터가 5개인 경우였습니다. 이제 이를 $n$개의 데이터로 확장을 하여보면 거리함수는

$$ f(a,b) = \sum_{i=1}^n (y-(ax_i+b))^2 $$

라 할 수 있습니다.

 

이 식을 최소로 만드는 $a$와 $b$를 찾는 문제는 다음 글에서 알아보도록 하겠습니다.

 

 

728x90
반응형

댓글