본문 바로가기
Math concept

선형 보간법과 적용 / Linear Interpolation and Application

by jangpiano 2021. 5. 19.
반응형

<보간법 - Method of Interpolation> 

 

보간법이란, 하나의 추정 방법으로, 실험과 조사로부터 관측된 데이터(x) 사이(중간)의 x값에 대해 함수값을 예측하는 방법입니다.

주어진 관측값들을 바탕으로 근사시킨 함수(f(x))를 이용하여, 직접 조사되지 않은 데이터(주어진 관측값들의 범위 안에 존재해야함) 에 대한 함수값을 예측하는 방법 인 것이죠. 

 

예를 들어 설명해봅시다. 아버지의 일주일 총 운전거리와 기름의 비용, 그리고 한달 총 운전거리와 그에따른 기름의 양을 관측했다고 가정합시다. 

일주일 총 운전거리가 350km이고 이에 따른 경유의 비용은 6만원이 관측, 한달 총 운전거리가 1400km 일때 이에 따른 경유의 비용은 24민원이 기록되었다고 가정합시다. 

그렇다면 X1 의 값 350에 대응하는 Y1 함수값은 6만원이고, X2의 값 1400에 대응하는 Y2 함수값은 24만원 입니다. 

즉, (350, 60000), (1400, 240000) 두 점을 생각하면 되겠죠?

위 두 점에 대한 정보를 가지고, 우리는 운전거리가 700km일때의 경유의 비용을 예측 할 수 있을까요? 

이 질문에 대해, 위의 두 관측값들을 사용해 X3이 700일때의 Y3값을 예측하는데 사용하는 방법을 보간법(Method of Interpolation)이라고 합니다. 

 

보간법 중에는, 우리에게 알려진 관측값들을 이용하여 다항함수를 이용해 곡선을 만들어 예측하는 다항식 보간법(Population interpolation), 관측값들의 끝점을 연결하는 직선을 만들어, 그 사이에 존재하는 값을 예측하는 선형 보간법(Linear interpolation) 이 있습니다. 오늘 포스팅에서 설명할 부분은 바로, 선형 보간법 입니다. 

 

<보간법 vs 회귀분석> 

보간법과 회귀법 모두 관측된 관측값들을 바탕으로, 관측되지 않은 x값에 대한 f(x) 함수값을 유추한다는 공통점이 있는데요, 

실제로 보간과 회귀중 어떤 방법을 채택할지 정할때, 고려해야할 요소들이 있습니다. 

우선, 회귀에서는, '최소 제곱법(Method of Least Squares)' 을 바탕으로 관측된 점들의 오차를 가장 적게 만드는 선을 그어, 관측되지 않은 새로운 x 값에 대한 f(x) 값을 예측하는것입니다. '오차'를 가장 적게만드는데에 집중하는 만큼, 회귀분석은 오차의 존재를 순응하는 추정법이라고 할 수 있습니다. 관측한 관측값들이, 정확한 값이 아닐 수 있다는 전제하에서 출발하죠. 따라서, 다른 여러 요소들에 의해 영향을 많이 받을 수 있는 x와 y의 관계에 있어서는, 보간법보다 회귀분석을 사용하는것이 적절합니다. 또한, 관측된 x값의 범위 밖에 존재하는 x에 대해서도 회귀선을 통해 f(x)를 유추 할 수 있습니다. 

 

이와는 조금 다르게, 보간에서는, 관측점들을 사실이라고 가정하고, 관측된 점들을 직접 직선 또는 곡선으로 잇는 방법입니다. 두 점이 주어졌다고 하면, 직선이 만들어지고, 세점 이상이 주어졌다면, 직선 혹은 곡선을 그어지게 되겠죠. 이렇게 만들어진 직선 혹은 곡선에, 관측하지 않은 x 값을 대입시켜 f(x)값을 예측하는 방법이 바로 보간 입니다. 또한, 보간법은 관측된 x값의 범위 밖에서는 성립되지 않고, 관측된 x값의 범위 내에서만 성립된다는 특징을 가집니다. 

 

<선형 보간법 - Linear Interpolation> 

위의 예시로, 선형 보간법을 다시 이어 설명해봅시다. 

우리가 관측한 두 데이터 (x, y) 는 (350, 60000), (1400, 240000) 였습니다. 

예측하고자 하는 값이 x값 700에 대응하는 함수값(f(x))를 찾기 위해서는,  (350, 60000), (1400, 240000) 을 지나는 직선을 찾고 x = 700을 대입하면, 이에 대한 함수값이 나옵니다. 

 

보간법은, 알려진 관측값들을 '사실'로 간주한 방법입니다. 즉, (350, 60000), (1400, 240000) 은 관측된 '사실'이기 때문에 두 점으로 고정시키는 것이죠. 

이후, x = 700이라는 점에 대한 함수값은 어떻게 나타날지를, 위의 점들을 이어 생성된 직선으로 추론하는 방법이, 선형 보간법입니다. 

x <- c(350, 1400)
y <- c(60000, 240000)
interp <- approx(x,y, xout = 700)
interp 

plot(x,y)
lines(approx(x,y))
points(interp, col = "red")

<공식 추론> 

f(x0) = y0
f(x1) = y1 
x0<x<x1
f(x) = ?
f(x0) = y0
f(x1) = y1 
y0<y<y1
f-1(y) = ?

반응형