http://egloos.zum.com/frydom/v/3030849


http://frydom.egloos.com/3030849


최소자승법






1. 최소자승법이 필요한 이유?



일반적으로 어떤 실험을 행할 때, 변량 x (독립변수 Independent Variable)를 변경해가며,

그에 따른 실험값 y (종속변수 Dependent Variable)의 쌍 (x,y)을 얻는다.

실험을 N회 반복하여 (x1,y1), (x2,y2), ... (xn,yn)의 데이터를 확보했다고 하자.

이 수많은 데이터들이 일정한 규칙성을 갖지 못한다면, 이 실험은 아무런 의미를 갖지 못한다.

따라서, 데이터들의 유용성을 판단하기 위해서 가장 먼저 해야할 작업은,

두 변수 간에 상관관계가 있는지, 만약 있다면 어떤 상관관계를 갖고 있는지 찾아보는 것이다.

상관관계를 함수로 표현할 수 있다면, "이 실험에서 나온 데이터를 분석했더니 이런 규칙이 있더라."

라고 말할 수 있으며, 여기서 하나의 공식이 탄생하는 것이다.



최소자승법이란, 이 상관관계를 나타내는 함수 y=f(x)를 찾는 하나의 도구라고 할 수 있다.





2. 최소자승법 (Method of Least Squares) 이란?



N회 측정한 측정값 y1,y2,...,yn이 어떤 다른 측정값 x1,x2,...xn 의 함수라고 추정할 수 있을 때,

측정값 yi와 함수값 f(xi)의 차이를 제곱한 것의 합


least002.gif


이 최소가 되도록 하는 함수 f(x)를 구하는 것이 최소자승법의 원리이다.

이렇게 해서 구해진 함수 y=f(x)는 이 측정값들의 관계에 가장 적합한 함수라고 할 수 있다. 이해를 돕기 위해 다음의 그림을 살펴보자.

다음의 그림에서 표시된 각 점들은 측정값 (xi,yi)이고, 직선 (xi,f(xi))은 최소자승법을 사용해 구한, 측정값들의 분포를 가장 잘 나타내는 일차함수이다. 즉, 이 함수는 (측정값-함수값)²의 총합(오차의 총합)이 최소가 되는 직선이라고 할 수 있다.

least001.gif





3. 엑셀 차트를 사용한 최적 함수 구하기



측정된 데이터를 사용하여 그 관계를 나타내는 최적의 함수를 찾는 간단한 방법은,

함수를 찾는 로직을 내장하고 있는 툴을 사용하는 것이다.

일반적으로 널리 사용하고 있는 엑셀 프로그램의 차트 기능을 이용하면 이 함수를 쉽게 구할 수 있다.

일차함수 뿐만 아니라, 2차~5차의 다항식과 거듭제곱, 지수, 로그함수 까지,

내장된 로직을 사용하여 빠르고 쉽게 함수를 표현해준다.

그러나, 함수가 계산되는 과정을 전혀 이해하지 못한 상태에서, 결과만 사용하는 것은 바람직하지 않다.

일단, 차트를 이용한 최적함수 추출 방법에 대한 먼저 간단하게 설명을 하겠지만,

최소자승법을 활용한 유도과정이 어떻게 되는지 뒤에 자세히 설명하였으니 반드시 읽어보도록 하자.

다음은 자유낙하하는 물체를, 특정시간에 속도를 측정하여 기록한 데이터 테이블이다.

이 데이터를 바탕으로 차트를 작성하고, 최적함수를 구해보자.

일단, 실험 데이터를 다음과 같이 Sheet에 입력한 후 해당 데이터 영역을 선택한다.

least003.gif least004.gif

메뉴의 [삽입]->[차트] 또는 툴바의 least005.gif를 사용하여 차트마법사를 시작한다.

[표준 종류] 탭에서 분산형 차트를 선택, 차트 하위 종류는 점으로 비교를 선택 후 [마침]을 클릭한다.

([다음]을 클릭하여 세부적인 사항을 설정할 수도 있으나, 생략하고 추후 직접 수정하는 것이 편하다.)

least006.gif

아래와 같은 차트가 작성될 것이다.

데이터를 표시한 점 위에 마우스 포인터를 가져간 후 오른쪽 버튼을 클릭하여 추세선 추가를 선택한다.

least007.gif

[종류] 탭에서 선형을 선택하고,

[옵션] 탭에서 수식을 차트에 표시 및 R-제곱 값을 차트에 표시를 체크한 후 확인을 누른다.

least008.gif

least009.gif

실험 데이터를 사용한 최적 함수가 구해졌다.

그래프의 기울기는 9.8343으로 중력가속도와 거의 일치한다.

y절편이 -38.16이 나온 이유는 실험 시 초기 낙하 속도가 일정하지 않기 때문이다.

R²값은 표시한 함수가 실험 데이터를 얼마나 적합하게 표현하는가 나타내는 상관계수이며,

1 에 가까울수록 최적화된 함수임을 의미한다. R²값은 뒷부분에서 다시 설명할 것이다.

least010.gif

차트를 적절히 가공하여 알아보기 쉽도록 수정한다. (엑셀기초강좌. 차트 참고)

least011.gif





4. 최소자승법의 수학적 이해



1) 최적 함수 y=a+bx 유도



본격적으로 최소자승법을 사용하여 최적의 함수를 유도해보자.

여기서는 가장 간단한 일차함수의 예를 들어 최소자승법의 수학적 개념을 설명하고자 한다.

그리고, 이 개념 및 수식을 활용하여, 엑셀을 사용한 다량의 데이터 처리방법을 익혀보자.

least012.gif

위의 그림에서 각 데이터 좌표에서 최적 함수까지의 거리를 고려해보자.

이 직선이 최적의 함수라면, 이 차이가 가능한 한 최소의 값을 가질 것이다.

최소자승법은 이 편차의 제곱을 최소화하기 위한 방법이다.

(이 편차를 그대로 더하면 양의 값과 음의 값의 합이 되기 때문에 적합한 결과를 얻지 못한다.

또한 절대값을 사용할 경우, 추후 미분계수 계산 시 문제가 발생할 수 있다.)

편차 제곱의 총합 χ²를 오차(Residual)라고 하며, 다음과 같이 표현할 수 있다.


least013.gif




만약 데이터가 선형적인 관계라면, ytrue는 보통 ytrue=a+bx 로 표현할 수 있고, 오차는 다음과 같다.


least014.gif




여기서, ytrue=a+bx 는 직선 방정식의 일반적인 형태일 뿐, a와 b는 아직 정의되지 않음에 주의한다.

데이터에 적합한 직선을 찾기 위해서는 이 오차를 최대한 줄여야 한다.

즉, a와 b는 χ²를 최소화하는 값이 되어야 한다.

오차의 제곱(自乘,square)의 총합을 최소화(least)하는 방법(method)이라의 의미에서

최소자승법(Method of least squares)의 명칭이 나온 것이다.

간단히 a,b를 구해보도록 하자. (대부분의 통계학 서적에 자세히 설명하고 있으니 참고하도록 한다)

오차를 최소화하기 위한 a,b를 구하기 위해서는, a,b 대해 각각 편미분한 값이 0 이 되면 된다. 즉,



least015.gif




을 만족하는 a,b를 계산하면 최종 결과는 다음과 같다.



least016.gif




2) 변수 x,y,a,b 의 표준편차



독립변수 x 의 평균값을 이용한 표준편차 σx의 공식은 다음과 같다.



least017.gif




종속변수 y 에 대한 표준편차 σy는 σx와는 다소 다르게 계산한다.

종속변수가 독립변수에 따라 선형적으로 변하면, 종속변수의 표준편차는 다음의 식을 따른다.



least018.gif




합계항 앞의 인자 1/(N-1)과 1/(N-2)의 차이에 대한 설명은 통계학 서적을 참고한다.

a,b의 표준편차는 종속변수 σy의 표준편차로부터 유도되며, 다음과 같다.



least019.gif




참고) 여기서 말하는 표준편차는 실험 레포트 작성 시 사용하는 표준오차 및 확률오차와 다소 차이가 있으니 주의하도록 한다.



3) r²계산



두 데이터 집합 간의 상관 관계를 조사할 때, 그 관계를 표현하는 함수 뿐만이 아니라, 그 함수가 얼마나 상관관계를 잘 표현하고 있는지 나타내는 기준이 필요하다.

대부분의 선형 회귀 프로그램에서는 기울기 b 와 y-절편 a 의 적합성을, 단순히 좋고 나쁨이 아닌 r 이라고 하는 상관계수를 사용하여 수치적인 의미로 표현해 준다.

상관계수 r 은 0 과 1 사이의 값을 가진다. 모든 데이터가 직선과 정확히 일치할 경우 r=1 이 된다.

일치하지는 않으나 직선에 근접할 경우 r 은 1 에 가까운 값을 갖는다.

마지막으로 그래프 상의 모든 데이터 좌표가 골고루 분포하여 직선에 근접하지 않으면 r=0 이 된다.

이것은 두 데이터 집합 간에 선형적인 관계가 전혀 없음을 뜻한다.

상관계수 r 값을 구하기 위해, 먼저 모든 y 값의 평균을 계산하자.

그래프 상에서 y 의 평균을 나타내는 직선은 모든 y 값의 중간 정도 높이를 수평으로 지난다.

y 의 평균을 계산하는 이유는, 평균직선이 해당 데이터를 표현할 수 있는 직선 중 최악의 모델이며,

이를 기준으로 다른 직선을 비교평가 하기 위함이다.

least0199.gif

실제값과 평균값의 차이를 구한 후 모두 더하면, 평균의 정의에 의해 값이 0 이 된다.

따라서, 이를 해결하기 위해 모든 값을 제곱하여 양수로 만들고 그것을 더한다.




least020.gif ...(4-3-1)





이 값은, 위에서 구한 최적함수가 얼마나 적합한지 비교하는 수단으로 사용할 것이다.

이 값이 작으면 작을수록 모든 데이터가 평균에 근접하는 것을 의미하고,

클 경우 데이터가 넓게 산포되어 있음을 뜻한다.

다음으로, 데이터에 최적의 직선 방정식을 사용하여, 각 x 값에 대응하는 ycal 값을 계산하자




least021.gif ...(4-3-2)



동일한 방법으로 측정값과 직선값의 차이 제곱의 총합을 계산한다.



least022.gif.........(4-3-3)




(4-3-1)과 (4-3-3) 두 식의 단순한 차이가,

그 직선이 데이터들을 표현하기에 얼마나 적합한지 검토하는 방법으로 사용될 수 있다.

두 식을 빼면 다음과 같은 식을 구할 수 있다.



least023.gif .........(4-3-4)




직선 least021.gif가 평균직선(최악의 모델)만큼 부적합하다면, (4-3-4) 식은 0 이 될 것이다.



least024.gif.........(4-3-5)




직선 least021.gif가 최적의 직선이라고 하면, 모든 ycal은 yi와 동일하여 (4-3-4) 식은 다음과 같다.



least025.gif.........(4-3-6)




(4-3-4)식을 (4-3-1)식으로 나눈 식이 바로 상관계수 r²이다. (이 과정을 Normalize 한다고 한다.)




least026.gif ..........(4-3-7)




이 값은 당연히 0 에서 1 사이의 범위를 갖는다.

0 에 가까워질수록, 직선이 데이터 분포를 제대로 표현하지 못한다는 것을 뜻하며,

1 에 가까워지면 모든 데이터가 직선에 접근함(데이터를 대표하는 최적의 직선임)을 뜻한다.

시각적인 이해를 위해서 아래의 그림을 참고하면,

(A)는 r=1 이며, (B)는 r 값이 1에 가깝고, (C)는 r 값이 0 에 가까우며, (D)는 r=0 이다.

least027.gif





5. 엑셀을 이용한 최소자승법 (Method of Least Squares) 활용



엑셀을 사용해서 최소자승법을 구할 때 가장 중요한 것은, 아주 잘 정리된 Sheet 이다.

아래의 그림은, 자유낙하하는 물체를 특정시간에 속도를 측정하여 기록한 데이터 테이블을 이용하여,

최소자승법을 사용해서 중력가속도를 계산하는 워크시트이다.

녹색 셀은 측정 데이터를 직접 입력하는 부분이며, 흰색 셀에는 수식이 입력되어 있다.

수식은 위에서 설명한 공식을 엑셀에 적합한 공식으로 변환하여 정리하였으니 표를 참고하도록 한다.

녹색 셀에 측정 데이터를 입력하면, 자동적으로 a (y-절편)과, b (기울기)가 계산되고,

상관계수 r²이 표시될 것이다.

차트를 이용하여 최적함수를 구한 것과 동일한 결과가 나옴을 알 수 있다.



1) 엑셀 워크시트 입력 예

least031.gif



2) 엑셀 수식 정리 - 수식, 함수, 참조, 자동채우기 등의 기능은 엑셀기초강좌를 참고한다.

least032.gif

least033.gif

least034.gif