7.1 단순 지수 평활
지수적으로 평활하는 기법 중에서 가장 단순한 방법을 "단순 지수 평활"(simple exponential smoothing, SES)이라고 부른다. (어떤 교과서에서는 "단일 지수 평활 single exponential smoothing"이라고 하기도 한다.) 이 방법은 추세나 계절적인 패턴이 없는 데이터를 예측할 때 쓰기 좋다. 예를 들면, 그림 7.1에 있는 데이터를 보면 평균값이 시간에 따라 느리게 변하는 것 같긴 하지만, 분명한 추세나 계절성이 보이지 않는다. 이러한 데이터를 예측하기 위한 방법으로, 단순 기법과 평균 기법을 앞서 다루었다(2.3 절).
그림 7.1 1996년부터 2007년까지 사우디 아라비아의 원유 생산량.
oildata <- window(oil,start=1996,end=2007)
plot(oildata, ylab="Oil (millions of tonnes)",xlab="Year")
단순 기법은 모든 미래 예측값을 시계열의 마지막 관측값과 모두 같게 두는 것이다. 즉, 에 대해
와 같다. 단순 기법에서는 가장 최근 관측만 가장 중요하고 이전의 모든 관측값은 미래를 예측할 때 아무 정보도 주지 않는다고 가정한다. 이 방법을 모든 가중치를 마지막 관측에만 할당하는 가중 평균으로 볼 수도 있다.
평균 기법에서는 모든 미래 예측치는 모든 관측값의 단순 평균과 같다. 즉, 에 대해
와 같다. 평균 기법에서는 모든 관측값이 똑같이 중요하고 예측치를 생성할 때 같은 가중치만큼 기여한다.
우리는 종종 방금 살펴본 양극단 사이의 무언가가 필요할 때가 있다. 예를 들면, 오래된 관측값보다 더 최근 관측값에 더 큰 가중치를 주는 경우 말이다. 이것이 바로 단순 지수 평활 기법의 기본 개념이다. 더 오래될 수록 가중치가 지수적으로 감소하는(가장 오래된 관측값에 가장 작은 가중치가 붙는) 방식으로 예측치를 계산한다:
여기에서 은 평활 매개변수이다. 시간에 대한 한 단계 앞 예측치는 시계열 에서 모든 관측값을 가중 평균하여 얻은 값이다. 가중치가 감소하는 비율은 매개변수 로 조절한다.
표 7.1는 단순 지수 평활로 예측할 때, 4개의 서로 다른 로 관측값에 가중치를 할당한 것을 보여준다. 작은 값이더라도 가중치의 합은 어떠한 적절한 표본 크기에 대해서도 근사적으로 1이 된다.
Observation | ||||
---|---|---|---|---|
0과 1 사이의 어떤 에 대해, 관측값에 붙는 가중치가 과거로 갈 수록 지수적으로 감소한다. 그래서 "지수 평활"이라는 이름이 붙은 것이다. 만약에 가 작다면(예를 들면, 0에 가깝다면), 더 먼 과거 관측값에 붙는 가중치가 늘어난다. 가 크면(예를 들면, 1에 가까운 경우), 더 최근 관측값에 붙는 가중치가 늘어난다. 인 극단적인 경우에는 예측치가 단순 기법의 경우와 같게 된다.
예측식 7.1을 얻을 수 있는 3가지 동일한 형태의 단순 지수 평활을 살펴보자.
가중 평균 형태
시간에서 예측은 가장 최근 관측값 와 가장 최근 예측치 의 가중 평균과 같다. 에 대해, 여기에서 은 평활 매개변수이다. 진행 과정을 어디에선가 시작해야만 하므로, 첫 예측치 을 으로 두자. 그러면,
각 식을 다음과 같이 대입하면 다음과 같은 결과를 얻을 수 있다.
가중 평균 형태로 같은 예측식을 얻었다.
성분 형태
성분 형태로도 표현할 수 있다. 단순 지수 평활에서 포함된 유일한 성분은 수준값 이다. (이 장의 뒤에서 다루는 다른 기법에는 추세 와 계절적인 성분 도 있을 수 있다. ) 지수 평활 기법의 성분 형태 표현은 이 기법의 각 성분에 대한 예측 식과 평활식으로 구성되어있다. 단순 지수 평활의 성분 형태는 다음과 같이 주어진다:
여기에서 는 시간 에서 시계열의 수준값(또는 평활화된 값)이다. 예측 식은 시간에서의 예측값이 시간 에서의 추정된 수준이라는 것을 보여준다. 수준에 대한 평활 식은(보통 수준 식이라고 부르는) 각 시점 에서 시계열의 추정된 수준을 나타낸다. 시간 에 대해 예측 식을 적용한 것은 추정된 수준의 가장 최근 값을 나타낸다. 만약에 평활 식에서 를 로 을 로 바꾸면, 단순 지수 평활의 가중 평균 형태를 얻을 수 있다.
오차 보정 형태
오차 보정 형태라고 부르는 것을 얻기 위해, 성분 형태에서 수준 식을 재배치하여 단순 지수 평활의 세 번째 형태를 얻을 수 있다,
여기에서 에 대해 이다. 즉, 는 시간 에서 표본 내의 한 단계 예측 오차이다. 에 대한 평활 과정을 통해, 표본 내 예측 오차에서 추정된 수준의 수정/보정이 생긴다. 예로, 만약 시간 에서 오차가 음수라면, 이고 에서의 수준은 과대추정된다. 그러면 새로운 수준 는 이전 수준 에 하향 적응된다. 가 1에 가까울 수록 덜 정확한 수준 추정이 된다(큰 보정이 들어가므로). 가 작을 수록 수준값은 더 "평활화"된다(작은 보정이 들어가므로).
다채 수평선 예측
지금까지 단 한 단계 앞만 예측하는 식을 다루었다. 단순 지수 평활은 "평평"한 예측 함수를 갖고, 더 긴 예측 수평선에 대해서는,
위와 같이 주어진다. 이러한 예측은 시계열에 추세나 계절적인 성분이 없을 때 사용할 수 있다는 사실을 기억하자.
초기화
모든 지수 평활 기법을 사용하려면 평활 과정을 초기화하는 작업이 필요하다. 단순 지수 평활에 대해, 식 7.2의 마지막 항에 들어가는 수준값 에 대한 초기값을 정하는 작업이 필요하다. 그래서 은 평활 과정에 의해 생성되는 모든 예측에서 중요한 역할을 한다. 일반적으로 에 붙는 가중치는 작다. 하지만, 가 작고/작거나 시계열이 상대적으로 작은 경우에, 가중치는 예측 결과에 영향을 주기에 충분히 클 수 있다. 따라서, 초기값을 적절하게 선택하는 것은 꽤 중요할 수 있다. 흔히 로 둔다().
추세와 계절적인 성분도 있는 다른 지수 평활 기법도 이러한 성분에 대한 초기값이 필요하다. 표 7.9에 초기값을 선택하는 일반적인 전략을 정리하였다.
값을 추정하기 위해 어떤 값으로 정하는 대신 최적화하는 것도 또 하나의 방법이다(아래를 보라). 최적화하더라도, 적절하게 초기값을 선택하면 빠르게 최적화하거나 최적화 결과의 정확도에 도움이 될 수 있다.
최적화
모든 지수 평활법에 대해, 평활 매개변수에 대한 값을 선택하는 것도 필요하다. 단순 지수 평활의 경우에는 단 하나의 평호라 매개변수()만 있지만, 다음에 소개하는 기법에는 보통 하나 이상의 평활 매개변수가 있다.
평활 매개변수를 주관적으로 선택하는 경우에, 예측하는 사람이 이전의 경험에 근거하여 평활 매개변수 값을 정한다. 하지만, 관측 데이터에서 추정하는 것이 어떠한 지수 평활 기법도 포함하여 알려지지 않은 매개변수 값을 얻을 때 더 안전하고 객관적이다.
4.2절에서 제곱오차합(SSE)을 최소화하여 회귀 모델의 계수를 추정하였다. 비슷하게, SSE를 최소화하여 어떤 지수 평활 기법에 대해 알려지지 않은 매개변수들과 초기값을 구할 수 있다. 에 대해 오차를 다음과 같이 쓸 수 있다. (한 단계 앞 표본 내 예측 오차). 따라서 SSE를 최소화하는 알려지지 않은 매개변수와 초기값을 찾는다. 여기에서 SSE는 다음과 같이 주어진다.
회귀 모델 경우(SSE를 최소화하는 회귀 계수값을 돌려 받는 공식이 있는)와는 다르게, 이 경우는 비선형 최소화 문제이고 최소화하기 위해 최적화 도구를 사용해야 한다.
예제 7.1 원유 생산량
그림 7.2: 사우디 아라비아의 원유 생산량에 단순 지수 평활을 적용한 것(1996-2007).
fit1 <- ses(oildata, alpha=0.2, initial="simple", h=3)
fit2 <- ses(oildata, alpha=0.6, initial="simple", h=3)
fit3 <- ses(oildata, h=3)
plot(fit1, plot.conf=FALSE, ylab="Oil (millions of tonnes)",
xlab="Year", main="", fcol="white", type="o")
lines(fitted(fit1), col="blue", type="o")
lines(fitted(fit2), col="red", type="o")
lines(fitted(fit3), col="green", type="o")
lines(fit1$mean, col="blue", type="o")
lines(fit2$mean, col="red", type="o")
lines(fit3$mean, col="green", type="o")
legend("topleft",lty=1, col=c(1,"blue","red","green"),
c("data", expression(alpha == 0.2), expression(alpha == 0.6),
expression(alpha == 0.89)),pch=1)
이 예제에서, 사우디 아라비아의 원유 생산량을 예측하기 위해 단순 지수 평활을 적용하였다. 그림 7.2의 검은 선은 1996년부터 2007년까지 데이터를 나타낸 것이다. 시간에 따라 변화는 있지만 분명한 추세는 없다.
표 7.2는 단순 지수 평활을 적용한 결과이다. 마지막 3개의 열은 부터 까지 추정된 수준과 3개의 서로 다른 에 대해 에 대한 예측을 나타낸다. 첫 두 열은 평활 매개변수 를 각각 0.2와 0.6로 정하고 두 경우 모두 초기 수준 을 로 정한 것이다. 세 번째 열에서 평활 매개변수와 초기 수준을 추정하였다. 최적화 도구를 사용하여, 조건에서 SSE를 최소화하는 와 값을 찾는다. 표의 마지막 행에 나타낸 추청된 와 에 대한 SSE 값은 다른 와 에 대한 다른 값보다 작다는 것에 주목하자.
연도 | 시기 | 관측값 | 수준 | 수준 | 수준 |
---|---|---|---|---|---|
-- | 0 | -- | 446.7 | 446.7 | 447.5 |
1996 | 1 | 446.7 | 446.7 | 446.7 | 446.7 |
1997 | 2 | 454.5 | 448.2 | 451.3 | 453.6 |
1998 | 3 | 455.7 | 449.7 | 453.9 | 455.4 |
1999 | 4 | 423.6 | 444.5 | 435.8 | 427.1 |
2000 | 5 | 456.3 | 446.8 | 448.1 | 453.1 |
2001 | 6 | 440.6 | 445.6 | 443.6 | 441.9 |
2002 | 7 | 425.3 | 441.5 | 432.6 | 427.1 |
2003 | 8 | 485.1 | 450.3 | 464.1 | 478.9 |
2004 | 9 | 506.0 | 461.4 | 489.3 | 503.1 |
2005 | 10 | 526.8 | 474.5 | 511.8 | 524.2 |
2006 | 11 | 514.3 | 482.5 | 513.3 | 515.3 |
2007 | 12 | 494.2 | 484.8 | 501.8 | 496.5 |
예측치 | |||||
2008 | 1 | -- | 484.8 | 501.8 | 496.5 |
2009 | 2 | -- | 484.8 | 501.8 | 496.5 |
2010 | 3 | -- | 484.8 | 501.8 | 496.5 |
MAE | 24.7 | 20.2 | 20.1 | ||
RMSE | 32.1 | 26.0 | 25.1 | ||
MAPE | 5.1 | 4.2 | 4.3 | ||
SSE | 12391.7 | 8098.6 | 7573.4 |
표 7.2: 세 개의 서로 다른 평활 매개변수 에 대해 단순 지수 평활을 사용하여 사우디 아라비아 전체 원유 생산량 백만 톤 단위 예측한 결과.
*와 는 에 대해 SSE를 최소화하여 얻은 값이다.
2008년부터 2010년까지의 기간에 대해 세 가지 서로 다른 예측을 그림 7.2에 나타내었다. 1996년부터 1997년 기간에 대해 한 단계 앞 표본 내 예측도 데이터 옆에 나타내었다. 평활 과정에서 의 영향이 분명하게 보인다. 가 클 수록 이전 데이터 방향으로 더 큰 조정이 일어난다. 가 작을 수록 조정량이 작고 한 단계 표본 내 예측의 시계열이 더 매끄럽다.