# 최소제곱법 분야: CS·데이터사이언스 학교급: 고등 정식 URL: https://pi.devxdev.xyz/wiki/math/%EC%B5%9C%EC%86%8C%EC%A0%9C%EA%B3%B1%EB%B2%95 --- ## 정의 자료 $(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)$에 대하여 직선 $y = ax+b$로 이 자료의 경향을 나타내려 할 때, 각 자료점에서 직선까지의 오차(잔차) $e_i = y_i - (ax_i+b)$의 제곱의 합 $$S(a, b) = \sum_{i=1}^{n} e_i^2 = \sum_{i=1}^{n} \{y_i - (ax_i+b)\}^2$$ 을 최소로 하는 $a$, $b$의 값을 구하는 방법을 **최소제곱법**이라 하고, 이때 얻어지는 직선을 최소제곱법에 의한 **회귀직선**이라 한다. $x$의 평균을 $\bar{x}$, $y$의 평균을 $\bar{y}$라 하면, $S(a,b)$를 $b$에 대한 이차함수로 보고 완전제곱꼴로 정리하여 최솟값을 구하는 과정을 $a$, $b$ 각각에 대해 반복하면(엄밀하게는 $\dfrac{\partial S}{\partial a}=0$, $\dfrac{\partial S}{\partial b}=0$을 만족시켜야 함 — $\dfrac{\partial S}{\partial a}$는 "에스를 에이로 편미분한다"라고 읽으며, $S$를 $b$는 고정한 채 $a$만의 함수로 보고 미분한다는 뜻이다) 다음의 공식을 얻는다. $$a = \frac{\displaystyle\sum_{i=1}^n (x_i-\bar{x})(y_i-\bar{y})}{\displaystyle\sum_{i=1}^n (x_i-\bar{x})^2}, \qquad b = \bar{y} - a\bar{x}$$ ## 직관 산점도에 흩어진 점들 사이로 "가장 적게 벗어나는" 직선 하나를 긋고 싶다고 하자. 오차를 그냥 더하면 직선 위쪽 점의 양의 오차와 아래쪽 점의 음의 오차가 서로 상쇄되어, 전혀 자료를 대표하지 않는 직선도 오차의 합이 0이 될 수 있다. 오차를 제곱하면 부호가 사라져 상쇄가 일어나지 않고, 큰 오차일수록 제곱값이 훨씬 커지므로 자료에서 크게 벗어나는 직선에 더 큰 벌점을 주게 된다. 즉 최소제곱법은 "오차 제곱합"이라는 하나의 이차식을 최소화하는 문제로 바꾸어, 이차함수의 최솟값을 구하는 익숙한 방법으로 최적의 직선을 찾는 것이다. ## 예시 자료 $(1,2), (2,3), (3,5), (4,4), (5,6)$이 주어졌다고 하자. $\bar{x} = \dfrac{1+2+3+4+5}{5} = 3$, $\bar{y} = \dfrac{2+3+5+4+6}{5} = 4$ 편차(각 값에서 평균을 뺀 값): $x_i-\bar{x} = -2,-1,0,1,2$, $y_i-\bar{y} = -2,-1,1,0,2$ $\sum(x_i-\bar{x})(y_i-\bar{y}) = (-2)(-2)+(-1)(-1)+0\cdot1+1\cdot0+2\cdot2 = 4+1+0+0+4=9$ $\sum(x_i-\bar{x})^2 = 4+1+0+1+4=10$ 따라서 $a = \dfrac{9}{10}=0.9$, $b = 4-0.9\times3 = 1.3$이므로 회귀직선은 $y=0.9x+1.3$이다. 그래프: y=0.9*x+1.3 (정의역 -1~6) ## 🌍 실생활 예시 기후 자료 분석에서 지난 수십 년간의 이산화탄소 농도와 평균 기온 자료처럼 해마다 값이 들쭉날쭉한 산점도에 추세선을 그릴 때 최소제곱법이 쓰인다. 각 해의 실제 값과 추세선 사이의 오차 제곱합을 최소로 하는 직선(또는 곡선)을 구하면, 잡음이 섞인 자료에서도 전체적인 증가·감소 경향을 하나의 식으로 요약해 미래 값을 예측하는 데 활용할 수 있다. ## ⚠️ 흔한 실수 - **잘못된 생각**: 최소제곱법은 오차들의 합 $\sum e_i$가 가장 작은(0에 가까운) 직선을 찾는 방법이다. **why**: 오차의 합은 양수와 음수가 서로 상쇄되므로, 자료를 전혀 잘 대표하지 못하는 직선도 오차의 합이 0이 될 수 있다. 최소제곱법은 오차의 **제곱**의 합을 최소화하는 것이지 오차 자체의 합을 최소화하는 것이 아니다. - **잘못된 생각**: $y$를 $x$로 나타낸 회귀직선과 $x$를 $y$로 나타낸 회귀직선은 같은 직선이다. **why**: 두 회귀직선은 각각 $y$ 방향 오차의 제곱합과 $x$ 방향 오차의 제곱합을 최소화하므로 기준이 다르며, 일반적으로 서로 다른 직선이 나온다. - **잘못된 생각**: 기울기 공식에서 그냥 $\sum x_iy_i$와 $\sum x_i^2$을 대입하면 된다. **why**: 공식은 평균에서 벗어난 정도인 편차 $x_i-\bar{x}$, $y_i-\bar{y}$를 사용해야 하며, 평균을 빼는 과정을 빠뜨리면 전혀 다른 값이 나온다. ## 확인 문제 1. 자료 $(0,1), (1,2), (2,2), (3,5)$에 대한 최소제곱법에 의한 회귀직선의 방정식을 구하여라. 2. 자료 $(1,3), (2,1), (3,3), (4,1)$에서 직선 $y=2$를 그으면 각 점의 오차는 $1, -1, 1, -1$로 오차의 합이 $0$이 된다. 이 직선이 최소제곱법이 찾는 최적의 직선인지 오차의 제곱합을 직접 계산해 확인하고, 왜 "오차의 합이 0"이라는 조건만으로는 최적의 직선을 판단할 수 없는지 설명하여라. 3. 최소제곱법으로 구한 회귀직선 $y=ax+b$가 항상 점 $(\bar{x}, \bar{y})$를 지난다는 성질을 $b=\bar{y}-a\bar{x}$로부터 보여라. 정답 보기: 1. $\bar{x}=1.5$, $\bar{y}=2.5$이고 편차의 곱의 합은 $(-1.5)(-1.5)+(-0.5)(-0.5)+(0.5)(-0.5)+(1.5)(2.5)=2.25+0.25-0.25+3.75=6$, 편차 제곱의 합은 $2.25+0.25+0.25+2.25=5$이므로 $a=1.2$, $b=2.5-1.2\times1.5=0.7$. 회귀직선은 $y=1.2x+0.7$. 2. $y=2$일 때 오차 제곱합은 $1^2+(-1)^2+1^2+(-1)^2=4$이다. 다른 직선(예: 수평이 아닌 직선)을 시도하면 오차 제곱합이 이보다 작아질 수 있으므로, 오차의 합이 0이라는 것만으로는 오차 제곱합이 최소라고 보장할 수 없다. 부호가 반대인 오차들이 우연히 상쇄될 뿐, 각 오차의 크기 자체는 줄어들지 않았기 때문이다. 3. $x=\bar{x}$를 $y=ax+b$에 대입하면 $y=a\bar{x}+b=a\bar{x}+(\bar{y}-a\bar{x})=\bar{y}$이므로 점 $(\bar{x},\bar{y})$는 항상 이 직선 위에 있다. ## 관련 개념 - 이차함수: 오차 제곱합을 이차식으로 보고 완전제곱꼴로 최솟값을 구하는 데 쓰인다. - 평균: 회귀직선의 기울기와 절편 공식은 $x$, $y$ 각각의 평균과 편차로 표현된다. - 일차함수: 최소제곱법으로 구하는 회귀직선 자체가 일차함수의 그래프이다. - 미분법, 도함수: 오차 제곱합을 최소화하는 조건 $\dfrac{\partial S}{\partial a}=0$, $\dfrac{\partial S}{\partial b}=0$을 유도하는 데 쓰인다. --- 관련 개념: - 이차함수 (/wiki/math/%EC%9D%B4%EC%B0%A8%ED%95%A8%EC%88%98) - 평균 (/wiki/math/%ED%8F%89%EA%B7%A0) - 일차함수 (/wiki/math/%EC%9D%BC%EC%B0%A8%ED%95%A8%EC%88%98) - 미분법 (/wiki/math/%EB%AF%B8%EB%B6%84%EB%B2%95) - 도함수 (/wiki/math/%EB%8F%84%ED%95%A8%EC%88%98)