선형 최소제곱법 피팅

최적화, 정규방정식, 수학적 유도 및 대화형 계산기

선형 최소제곱법 피팅이란 무엇인가요?

\( (x_1, y_1), (x_2, y_2), \dots, (x_N, y_N) \)이 아래의 산점도에 표시된 실험 데이터 포인트라고 하고, 다음과 같은 형태의 선형 모델을 사용하여 독립 변수 \( x \)의 다양한 값에 대한 종속 변수 \( y \)를 예측하려고 한다고 가정해 봅시다:

\[ y = ax + b \]
데이터 포인트의 산점도
그림 1. 실험 데이터의 산점도

수학에서 널리 사용되는 절차는 아래 그래프에 표시된 바와 같이 수학적 모델 \( y = f(x) \)와 실험 데이터 포인트 사이의 수직 거리 \( d_1, d_2, \dots \)의 제곱합 \( D \)를 최소화하는 것입니다.

데이터에 모델을 맞추는 최소제곱법 피팅
그림 2. 데이터에 모델을 맞추는 최소제곱법 피팅

수학적 유도

사용할 선형 모델을 \( f(x) = ax + b \)라고 합시다. 따라서 수직 거리 \( d_1, d_2, \dots \)는 다음과 같이 주어집니다:

\[ d_1 = |y_1 - (ax_1 + b)|, \quad d_2 = |y_2 - (ax_2 + b)|, \quad \dots \]

수직 거리 제곱의 합 \( D \)는 다음과 같이 쓸 수 있습니다:

\[ D = \sum_{i=1}^{N} (y_i - (ax_i + b))^2 \]

\( D \)를 최소화하는 \( a \)와 \( b \)의 값은 \( D \)에 대한 \( a \)와 \( b \)의 편도함수를 동시에 0으로 만드는 값입니다. 따라서 편도함수를 계산합니다:

\[ \dfrac{\partial D}{\partial a} = \sum_{i=1}^{N} -2x_i(y_i - ax_i - b) \] \[ \dfrac{\partial D}{\partial b} = \sum_{i=1}^{N} -2(y_i - ax_i - b) \]

두 도함수를 모두 0으로 설정하고 \( -2 \)로 나누면 정규방정식 시스템이 얻어집니다:

\[ \begin{cases} \sum_{i=1}^{N} x_i(y_i - ax_i - b) = 0 \\ \sum_{i=1}^{N} (y_i - ax_i - b) = 0 \end{cases} \]

합을 전개합니다:

\[ \begin{cases} \sum_{i=1}^{N} x_iy_i - a \sum_{i=1}^{N} x_i^2 - b \sum_{i=1}^{N} x_i = 0 \\ \sum_{i=1}^{N} y_i - a \sum_{i=1}^{N} x_i - Nb = 0 \end{cases} \]

\( a \)와 \( b \)가 포함된 항을 좌변으로 재배열합니다:

\[ \begin{cases} a \sum_{i=1}^{N} x_i^2 + b \sum_{i=1}^{N} x_i = \sum_{i=1}^{N} x_iy_i \\ a \sum_{i=1}^{N} x_i + Nb = \sum_{i=1}^{N} y_i \end{cases} \]

행렬 형태로 표현하면:

\[ \begin{bmatrix} \sum_{i=1}^{N} x_i^2 & \sum_{i=1}^{N} x_i \\ \sum_{i=1}^{N} x_i & N \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^{N} x_iy_i \\ \sum_{i=1}^{N} y_i \end{bmatrix} \]

\( 2 \times 2 \) 행렬에 대한 역행렬 공식을 사용하여 \( a \)와 \( b \)를 구합니다:

\[ a = \dfrac{N \sum_{i=1}^{N} x_iy_i - (\sum_{i=1}^{N} x_i)(\sum_{i=1}^{N} y_i)}{N \sum_{i=1}^{N} x_i^2 - (\sum_{i=1}^{N} x_i)^2} \] \[ b = \dfrac{-(\sum_{i=1}^{N} x_i)(\sum_{i=1}^{N} x_iy_i) + (\sum_{i=1}^{N} x_i^2)(\sum_{i=1}^{N} y_i)}{N \sum_{i=1}^{N} x_i^2 - (\sum_{i=1}^{N} x_i)^2} \]

선형 최소제곱법 피팅 응용 예제

다음 실험 데이터 포인트에 대한 선형 최소제곱법 피팅 \( y = ax + b \)를 찾으세요:

\[ \{(1, 2), (3, 4), (2, 6), (4, 8), (5, 12), (6, 13), (7, 15)\} \]
예제 풀이 보기

필요한 양들을 포함하는 표를 작성합니다:

\( x_i \) \( y_i \) \( x_i y_i \) \( x_i^2 \)
1 2 2 1
3 4 12 9
2 6 12 4
4 8 32 16
5 12 60 25
6 13 78 36
7 15 105 49

전체 포인트 수는 \( N = 7 \)입니다.

\( \sum_{i=1}^{7} x_i = 1 + 3 + 2 + 4 + 5 + 6 + 7 = 28 \)

\( \sum_{i=1}^{7} y_i = 2 + 4 + 6 + 8 + 12 + 13 + 15 = 60 \)

\( \sum_{i=1}^{7} x_iy_i = 2 + 12 + 12 + 32 + 60 + 78 + 105 = 301 \)

\( \sum_{i=1}^{7} x_i^2 = 1 + 9 + 4 + 16 + 25 + 36 + 49 = 140 \)

공식에 대입합니다:

\[ a = \dfrac{7 \times 301 - 28 \times 60}{7 \times 140 - 28^2} = \dfrac{2107 - 1680}{980 - 784} = \dfrac{427}{196} \approx 2.1786 \] \[ b = \dfrac{-28 \times 301 + 140 \times 60}{7 \times 140 - 28^2} = \dfrac{-8428 + 8400}{196} = \dfrac{-28}{196} \approx -0.1429 \]

선형 최소제곱법 피팅 계산기

실험 포인트가 주어지면, 이 계산기는 계수 \( a \)와 \( b \), 직선 방정식 \( y = ax + b \), 그리고 상관계수를 계산합니다. 또한 실험 포인트와 최적합 직선을 나란히 플롯합니다.

포인트를 쉼표로 구분하여 \((x_1, y_1), (x_2, y_2), \dots\) 형태로 입력하거나 기본 데이터를 사용하세요.

그래프를 PNG 형식으로 다운로드하려면 플롯의 우측 상단 모서리에 마우스를 올리세요.

더 많은 참고 자료 및 링크