7.2 Holt의 선형 추세 기법

Holt의 1957년 논문에서 추세가 있는 데이터를 예측할 수 있도록 단순 지수 평활을 확장한다. 이 방법은 예측식과 두 개의 평활식(하나는 수준에 관한 것, 다른 하나는 추세에 관한 것)을 포함한다.

여기에서 는 시간 에서 시계열의 수준 추정값, 는 시간 에서 시계열의 추세 추정값, 는 수준에 대한 평활 매개변수, 는 추세에 대한 평활 매개변수이다. (7.7절에서 설명할 이유 때문에 여기에서 대신 을 사용한다.)

단순 지수 평활과 마찬가지로, 수준식에서 가 관측값 의 가중 평균이라는 것과 여기에서 로 주어지는 시간 에 대한 표본 내 한 단계 앞 예측이라는 것을 알 수 있다. 추세식에서 가 추세에 대한 이전 추정 에 근거하여 시간 에서 추정된 추세의 가중평균이라는 것을 알 수 있다.

예측 함수는 더이상 평평하지 않고 추세를 나타낸다. 단계 앞 예측은 마지막 추정 수준에 마지막 추정 추세값의 배 한 것을 더한 값이다. 따라서 예측값은 의 선형 함수이다.

수준과 추세식의 오차 보정식은 표본 내 한 단계 예측 오차에 대한 조정이 들어가 있다.

여기에서 이다.

예제 7.2 항공객

표 7.3에서 Holt의 선형 기법을 호주 항공의 모든 승객에 대한 항공 수송 데이터에 적용한 결과를 나타내었다. 기법을 초기화하기 위해 표 7.9에서 제안한 것처럼 그리고 로 두었다. 선형 추세로 처음 몇 관측값을 맞출 수 있을 것이고 절편과 기울기 추정값을 수준과 추세의 초기값으로 각각 사용할 수 있을 것이다.

시연 목적에서 평활 매개변수를 로 두었다. 이렇게 하지 않으면, 7.1절처럼 표본 내 한 단계 예측 오차에 대한 SSE를 최소화하여 평활 매개변수도 초기값과 함께 추정할 수 있을 것이다.

연도
1989 0 17.55 4.31 17.55 1.25
1990 1 17.55 18.41 3.62 21.86 18.41 1.21 21.86
1991 2 21.86 21.89 3.59 22.03 21.93 1.20 22.21
1992 3 23.89 24.21 3.33 25.48 24.39 1.18 26.38
1993 4 26.93 27.05 3.24 27.54 27.32 1.17 28.89
1994 5 26.89 27.57 2.69 30.29 27.91 1.14 32.02
1995 6 28.83 29.12 2.46 30.26 29.44 1.12 31.88
1996 7 30.08 30.38 2.22 31.58 30.68 1.11 33.10
1997 8 30.95 31.28 1.96 32.60 31.56 1.09 33.99
1998 9 30.19 30.80 1.47 33.24 31.04 1.07 34.47
1999 10 31.58 31.72 1.36 32.27 31.91 1.06 33.23
2000 11 32.58 32.68 1.28 33.08 32.84 1.06 33.89
2001 12 33.48 33.57 1.20 33.96 33.71 1.05 34.66
2002 13 39.02 38.17 1.88 34.78 38.29 1.07 35.39
2003 14 41.39 41.12 2.10 40.06 41.28 1.07 40.86
2004 15 41.60 41.92 1.84 43.22 42.10 1.06 44.13
2005 1 43.76 44.60
2006 2 45.59 47.24
2007 3 47.43 50.04
2008 4 49.27 53.01
2009 5 51.10 56.15
air <- window(ausair, start=1990, end=2004)
fit1 <- holt(air, alpha=0.8, beta=0.2, initial="simple", h=5)
fit2 <- holt(air, alpha=0.8, beta=0.2, initial="simple", exponential=TRUE, h=5)

fit1.model.state # 첫번째 모델에 대한 결과
fitted(fit1)
fit1.mean

그림 7.3: 호주 항공객 예측. 모든 기법에 대해 , 이고 덧셈 감쇠 추세 기법에서 이다.

fit3 <- holt(air, alpha=0.8, beta=0.2, damped=TRUE, initial="simple", h=5)
plot(fit2, type="o", ylab="Air passengers in Australia (millions)", xlab="Year",
     fcol="white", plot.conf=FALSE)
lines(fitted(fit1), col="blue")
lines(fitted(fit2), col="red")
lines(fitted(fit3), col="green")
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("black","blue","red","green"),
   c("Data","Holt's linear trend","Exponential trend","Additive damped trend"))

results matching ""

    No results matching ""