데이터 분석을 할 때, 우리는 두 가지 종류의 데이터가 어떤 관계를 가지는지, 어떤 트렌드를 따라가는지를 알고 싶은 경우가 많습니다. 예를 들어,
- 초등학생의 키와 몸무게 간의 관계
- 몸무게와 100m 달리기 실력의 관계
- 집에서 음식점까지의 거리와 배달에 걸리는 시간과의 관계
- KOSPI의 수익률과 우리나라 대표주자 삼성전자 수익률간의 관계
- KOSPI의 수익률과 KOSPI인버스 ETF 수익률간와 관계
등, 직관적으로 봤을 때 같은 경향성을 가진 예제도 있고(1,3,4번) 반대의 경향성을 가진 예제(2,5번)도 있습니다. 두 데이터 사이의 어떤 관계가 있는지 간단하게 체크할 수 있는 수학적 방법이 있습니다. 바로 트렌드 직선을 이용한 방법인데요, 다른 용어로는 선형회귀법이라고도 합니다.
요즘 배달 문화가 핫하니, 배달에 관련된 예제 하나를 준비했습니다.

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

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

엑셀에서 제공하는 추세선을 그려보니 위와 같았습니다. 데이터들을 정확하게 지나가는 선은 아니지만, 얼추 그 경향성을 보여주고 있는 것 같지요. 왼쪽 상단에는 이 직선의 식과 R2라는 값도 제공해 줍니다.
이 직선은 어떻게 구할까요? 위의 예제는 데이터가 다소 많으니 가상의 데이터 셋을 준비하여 설명하겠습니다.

위 그림처럼 x=x1,x2,⋯,x5, y=y1,y2,⋯,y5 데이터가 있다고 합시다. x는 배달거리, y는 배달시간이고 5개의 샘플이 있다고 생각하면 쉽습니다. 여기에 선을 하나 그려볼텐데요.

위의 직선은 점 (xi,yi)들의 위치를 최대한 잘 설명해야 합니다. 아무렇게나 그리면 안되게죠. 따라서 생각해 낸 것이
- 점들과 이 직선의 거리함수를 정의하고
- 이 거리함수가 최소가 되도록 직선을 찾는 것입니다.
우선 직선과 각 점들의 y축 방향으로의 거리는 다음의 빨간 화살표들의 길이들입니다.

각각의 길이들을 수학적으로 살펴볼까요? 파란 점선의 식을
y=ax+b
라 합시다. 여기서 a는 기울기(slope), b는 y절편(y-intercept) 입니다.
이 때, xi에서 이 점선위 의 y값은
axi+b
가 됩니다. 그런데 원래 관찰된 데이터는 yi 입니다. 따라서 빨간 화살표들의 길이는
|yi−(axi+b)|
가 됩니다.
따라서 이 길이의 합은
5∑i=1|yi−(axi+b)|
입니다.
a,b를 잘 찾아 위 값을 최소로 만들고 싶은 것이 우리의 목적입니다. 그런데 우리가 알고 있는 최대/최소 찾는 가장 powerful한 방법은 바로 미분하여 0이 되는 점, 즉, 극점을 찾는 것인데, 절대값이 포함된 함수는 미분이 원활하지 않다는 큰 단점이 있습니다. 따라서 우리는 새로운 길이함수를 정의합니다. 다음과 같이 말이죠.
√5∑i=1(yi−(axi+b))2
이를 수학적으로는 L2 거리 함수라 부릅니다. 이제, 위 식 자체는 미분이 가능해졌습니다. 그런데 루트 떄문에 미분이 성가시죠? 게다가 우리는 어차피 최솟값만 구하면 되기 때문에 루트를 생략하여 거리를 정의해도 됩니다. 결과적으로
f(a,b)=5∑i=1(y−(axi+b))2
라 정의하고 이 함수는 점들(데이터)과 선 사이의 거리를 의미하는 함수가 됩니다.
지금까지는 데이터가 5개인 경우였습니다. 이제 이를 n개의 데이터로 확장을 하여보면 거리함수는
f(a,b)=n∑i=1(y−(axi+b))2
라 할 수 있습니다.
이 식을 최소로 만드는 a와 b를 찾는 문제는 다음 글에서 알아보도록 하겠습니다.
'수학의 재미' 카테고리의 다른 글
선형회귀의 트렌드 직선과 PCA의 주성분은 서로 같을까? (1) | 2024.04.09 |
---|---|
트렌드 직선의 비밀(선형회귀) #3 (0) | 2022.05.12 |
트렌드 직선의 비밀(선형회귀) #2 (0) | 2022.05.11 |
댓글