7.2 추세 기법

홀트의 선형 추세 기법

Holt (1957) 에서는 추세가 있는 데이터를 예측할 수 있도록 단순 지수 평활을 확장했습니다. 이 방법은 예측식과 두 개의 평활식(하나는 수준에 관한 것, 다른 하나는 추세에 관한 것)을 포함합니다. \[\begin{align*} \text{Forecast equation}&& \hat{y}_{t+h|t} &= \ell_{t} + hb_{t} \\ \text{Level equation} && \ell_{t} &= \alpha y_{t} + (1 - \alpha)(\ell_{t-1} + b_{t-1})\\ \text{Trend equation} && b_{t} &= \beta^*(\ell_{t} - \ell_{t-1}) + (1 -\beta^*)b_{t-1}, \end{align*}\] 여기에서 \(\ell_t\)는 시간 \(t\)에서 시계열의 수준 추정 값, \(b_t\)는 시간 \(t\)에서의 시계열의 추세(기울기) 추정 값, \(0 \le \alpha \le 1\)은 수준에 대한 매개변수, \(0 \le \beta^* \le 1\)은 추세에 대한 매개변수를 나타냅니다. (7.5 절에서 설명할 이유 때문에 여기에서는 \(\beta\)대신 \(\beta^*\)으로 씁니다.)

단순 지수평활처럼, 수준식은 \(\ell_t\)이 관측\(y_t\)의 가중 평균이라는 것과, 여기에서 \(\ell_{t-1} + b_{t-1}\)로 주어지는 시간 \(t\)에 대한 한 단계 앞 학습 예측(one-step-ahead training forecast)이라는 것을 나타냅니다. 추세식은 \(b_t\)가 추세의 이전 추정 값인 \(\ell_{t} - \ell_{t-1}\)\(b_{t-1}\)에 기초한, 시간 \(t\)에서의 추정된 추세의 이동 평균이라는 것을 나타냅니다.

예측 함수는 더이상 평평하지 않고, 추세를 가집니다. \(h\)단계 앞 예측은 마지막 추정 수준에 마지막 추정 추세값의 \(h\)배 한 것을 더한 값입니다. 따라서 예측값은 \(h\)의 선형 함수입니다.

예제: 항공객

air <- window(ausair, start=1990)
fc <- holt(air, h=5)

7.2는 호주 항공사에 대한 매년 탑승객 수에 홀트(Holt) 기법을 적용한 것을 설명합니다. 평활 매개변수 \(\alpha\)\(\beta^*\) 그리고 초기값 \(\ell_0\)\(b_0\)7.1 절에서처럼 한-단계 학습 오차(one-step training error)에 대한 SSE를 최소화하여 추정합니다.

Table 7.2: \(\alpha=0.8321\)\(\beta^*=0.0001\)인 홀트의 선형 기법을 호주 항공객 데이터에 적용한 것(단위: 백만 명).
연도 시간 관측값 수준 기울기 예측값
\(t\) \(y_t\) \(\ell_t\) \(b_t\) \(\hat{y}_{t&#124;t-1}\)
1989 0 15.57 2.102
1990 1 17.55 17.57 2.102 17.67
1991 2 21.86 21.49 2.102 19.68
1992 3 23.89 23.84 2.102 23.59
1993 4 26.93 26.76 2.102 25.94
1994 5 26.89 27.22 2.102 28.86
1995 6 28.83 28.92 2.102 29.33
1996 7 30.08 30.24 2.102 31.02
1997 8 30.95 31.19 2.102 32.34
1998 9 30.19 30.71 2.101 33.29
1999 10 31.58 31.79 2.101 32.81
2000 11 32.58 32.80 2.101 33.89
2001 12 33.48 33.72 2.101 34.90
2002 13 39.02 38.48 2.101 35.82
2003 14 41.39 41.25 2.101 40.58
2004 15 41.60 41.89 2.101 43.35
2005 16 44.66 44.54 2.101 44.00
2006 17 46.95 46.90 2.101 46.65
2007 18 48.73 48.78 2.101 49.00
2008 19 51.49 51.38 2.101 50.88
2009 20 50.03 50.61 2.101 53.49
2010 21 60.64 59.30 2.102 52.72
2011 22 63.36 63.03 2.102 61.40
2012 23 66.36 66.15 2.102 65.13
2013 24 68.20 68.21 2.102 68.25
2014 25 68.12 68.49 2.102 70.31
2015 26 69.78 69.92 2.102 70.60
2016 27 72.60 72.50 2.102 72.02
\(h\) \(\hat{y}_{t+h&#124;t}\)
1 74.60
2 76.70
3 78.80
4 80.91
5 83.01

아주 작은 \(\beta^*\)값은 시간에 따라 기울기가 변하기 어렵다는 것을 의미합니다.

감쇠 추세 기법

홀트(Holt)의 선형 기법으로 얻은 예측값은 미래에도 계속 일정한 (증가 또는 감소) 추세를 나타냅니다. 이러한 기법은 과도하게 예측하는 경향이 있다는 것이 경험적으로 알려져 있습니다. 특별히, 예측 범위(forecast horizon)이 늘어날 수록 더더욱 그렇습니다. 이러한 사실에 착안하여, Gardner & McKenzie (1985) 는 미래 어느 시점에 추세를 평평하게 감쇠시키는 한 가지 매개변수를 도입하였습니다. 감쇠하는 추세(damped trend)를 포함하는 기법은 매우 성공적이라는 것이 증명되었으며, 자동으로 예측하는 일이 필요한 많은 시계열에 대해 거의 틀림없이 가장 인기있는 기법이라고 할 수 있습니다.

(홀트 기법처럼 0과 1 사이의 값인) 평활 매개변수 \(\alpha\)\(\beta^*\) 외에도, 이 기법에는 감쇠 매개변수 \(0<\phi<1\)도 있습니다: \[\begin{align*} \hat{y}_{t+h|t} &= \ell_{t} + (\phi+\phi^2 + \dots + \phi^{h})b_{t} \\ \ell_{t} &= \alpha y_{t} + (1 - \alpha)(\ell_{t-1} + \phi b_{t-1})\\ b_{t} &= \beta^*(\ell_{t} - \ell_{t-1}) + (1 -\beta^*)\phi b_{t-1}. \end{align*}\] 만약에 \(\phi=1\)이면, 이 기법은 홀트(Holt)의 선형 기법과 완전히 같습니다. 0과 1 사이의 값에 대해 \(\phi\)는 추세를 감쇠시켜 미래 어떤 시점에 추세가 상수가 되도록 합니다. 사실 어떠한 \(0<\phi<1\)에 대해, \(h\rightarrow\infty\)일 수록 예측치가 \(\ell_T+\phi b_T/(1-\phi)\)로 수렴합니다. 이러한 효과에 의해 단기 예측값은 추세를 나타내고 장기 예측치는 상수가 됩니다.

\(\phi\)가 작을 수록 감쇠 효과가 매우 강하게 들어가기 때문에 실제 상황에서 \(\phi\)가 0.8보다 작은 경우는 드뭅니다. \(\phi\) 값이 1에 가깝다는 것은 비-감쇠 모델과 다르지 않다는 것을 의미합니다. 이러한 이유에서 보통 \(\phi\)의 최소값을 0.8로 잡고 최대값을 0.98로 제한합니다.

예제: 항공객 (계속)

그림 7.3은 홀트(Holt)의 선형 추세 기법과 감쇠 추세 기법으로 2017년부터 2031년의 예측값을 생성한 것을 나타냅니다.

fc <- holt(air, h=15)
fc2 <- holt(air, damped=TRUE, phi = 0.9, h=15)
autoplot(air) +
  autolayer(fc, series="홀트 기법", PI=FALSE) +
  autolayer(fc2, series="감쇠 홀트 기법", PI=FALSE) +
  ggtitle("홀트 기법으로 얻은 예측값") + xlab("연도") +
  ylab("호주 항공객 (백만 명)") +
  guides(colour=guide_legend(title="예측값"))
호주에서 등록된 항공사의 연간 전체 항공객 예측 (단위: 백만 명, 1990--2016). 감쇠 추세 기법에 대해, $\phi=0.90$.

Figure 7.3: 호주에서 등록된 항공사의 연간 전체 항공객 예측 (단위: 백만 명, 1990–2016). 감쇠 추세 기법에 대해, \(\phi=0.90\).

비교 목적에서 감쇠 효과를 강조하기 위해 상대적으로 낮은 \((\phi=0.90)\) 값을 감쇠 매개변수로 사용했습니다. 보통은, \(\phi\)를 다른 매개변수와 함께 추정합니다. 감쇠 추세와 선형 추세 사이의 차이를 강조하기 위해 꽤 큰 예측 범위 (\(h=15\))도 사용했습니다. 보통 실제 상황에서는, 27년의 데이터를 가지고 이런 식으로 길게 예측하지는 않을 것입니다.

예제: 아시아의 양 목축

이 예제에서는 아시아 양 개체수 예측을 통해 지금까지 살펴본 모든 비-계절성 기법의 예측력을 비교합니다. 그림 7.4에 나타난 것과 같이 데이터의 전체 기간은 1961년부터 2007년까지입니다.

autoplot(livestock) +
  xlab("연도") + ylab("아시아의 양 목축 (단위: 백만)")
아시아의 연간 양 목축 개채수 (단위: 백만 마리)

Figure 7.4: 아시아의 연간 양 목축 개채수 (단위: 백만 마리)

이러한 3개의 기법의 한 단계 예측 정확도(one-step forecast accuracy)를 비교하기 위해 시계열 교차검증(cross-validation)을 사용하겠습니다.

e1 <- tsCV(livestock, ses, h=1)
e2 <- tsCV(livestock, holt, h=1)
e3 <- tsCV(livestock, holt, damped=TRUE, h=1)
# Compare MSE:
mean(e1^2, na.rm=TRUE)
#> [1] 178.3
mean(e2^2, na.rm=TRUE)
#> [1] 173.4
mean(e3^2, na.rm=TRUE)
#> [1] 162.6
# Compare MAE:
mean(abs(e1), na.rm=TRUE)
#> [1] 8.532
mean(abs(e2), na.rm=TRUE)
#> [1] 8.803
mean(abs(e3), na.rm=TRUE)
#> [1] 8.024

MAE나 MSE 값들을 비교하더라도 감쇠 홀트(damped Holt) 기법이 가장 좋습니다. 그래서 감쇠 홀트(damped Holt) 기법을 사용하여 진행하고, 이 기법을 전체 데이터에 적용하여 미래 연도에 대한 예측값을 얻어보겠습니다.

fc <- holt(livestock, damped=TRUE)
# Estimated parameters:
fc[["model"]]
#> Damped Holt's method 
#> 
#> Call:
#>  holt(y = livestock, damped = TRUE) 
#> 
#>   Smoothing parameters:
#>     alpha = 0.9999 
#>     beta  = 3e-04 
#>     phi   = 0.9798 
#> 
#>   Initial states:
#>     l = 223.35 
#>     b = 6.9046 
#> 
#>   sigma:  12.84
#> 
#>   AIC  AICc   BIC 
#> 427.6 429.7 438.7

기울기에 대한 평활 매개변수가 본질적으로 0이라고 추정되었다는 이야기는 추세가 시간에 따라 변하지 않는다는 것을 의미합니다. \(\alpha\) 값이 1에 매우 가깝다면, 수준이 각각의 새로운 관측에 매우 민감하게 반응한다는 것을 나타냅니다.

autoplot(fc) +
  xlab("연도") + ylab("아시아의 양 목축 (단위: 백만)") +
  ggtitle("감쇠 홀트 기법으로 얻은 예측값")
아시아의 양 목축 예측: 비-계절성 기법의 예측 성능 비교.

Figure 7.5: 아시아의 양 목축 예측: 비-계절성 기법의 예측 성능 비교.

결과 예측값이 증가 추세에 민감한 것처럼 보이고, 과거 데이터의 변동을 반영하여 비교적 넓은 예측 구간을 갖습니다. 7.7 절에서 다룬 기법을 사용하여 예측 구간을 계산하였습니다.

이 예제에서는, MSE와 MAE 값이 감쇠 홀트(damped Holt) 기법을 제안했기 때문에 기법을 고르는 과정이 비교적 쉬웠습니다. 하지만, 종종 서로 다른 정확도 측정값이 다른 예측 기법을 제안할 것입니다. 그리고 이런 경우에는 어떤 기법을 사용할 것인지 결정해야 합니다. 예측 범위(forecast horizon) 길이, 테스트 데이터 크기, 예측 오차 측정 방식, 데이터의 빈도 등 여러 변수에 의해 예측 작업이 변할 수 있기 때문에, 한 가지 기법이 모든 예측 시나리오에 대해 다른 모든 기법보다 좋을 것이라고 보장하기 어렵습니다. 어떤 한 가지 예측 기법에서 필요한 것은 일관적인 예측값입니다. 이렇게 얻은 예측값은 수작업으로 진행한 것과 자주 비교해야 합니다.

참고 문헌

Gardner, E. S., & McKenzie, E. (1985). Forecasting trends in time series. Management Science, 31(10), 1237–1246. https://doi.org/10.1287/mnsc.31.10.1237

Holt, C. E. (1957). Forecasting seasonals and trends by exponentially weighted averages (O.N.R. Memorandum No. 52). Carnegie Institute of Technology, Pittsburgh USA. https://doi.org/10.1016/j.ijforecast.2003.09.015