사용법
HoltWinters(x, alpha = NULL, beta = NULL, gamma = NULL,seasonal = c("additive", "multiplicative"))
1. x: 시계열 자료
2. alpha: 추세와 계절적인 변동이 존재하지 않는 단순지수평활법의 평활계수
3. beta: 선형 추세는 가지나 계절적 변동은 존재하지 않는 비계절적 Holt-Winters의 평활계수
4. gamma: 선형추세와 계절적 변동이 동시에 존재하는 Holt-Winters 지수평활법의 평활계수
5. seasonal: 가법 계절변동(additive, 기본값)와 승법 계절변동(multiplicative)를 결정
예제
# 계수를 지정하지 않으면, 가장 작은 SSE를 가지는 모형으로 적합해준다.
(m <- HoltWinters(AirPassengers))
plot(m)
names(m)
# 단순지수평활법(Simple Exponential Smoothing with 1 parameter)
# 1개의 평활계수(alpha)를 가진다.
# 평활계수를 지정할 수 있다.
(m_simple1 <- HoltWinters(AirPassengers, alpha=0.2, beta=FALSE, gamma=FALSE))
plot(m_simple1, main="Simple Exponential Smoothing(alpha=0.1 vs 0.99)")
# 평활계수를 지정하지 않으면, 가장 작은 SSE를 가지는 모형으로 적합해준다.
(m_simple2 <- HoltWinters(AirPassengers, beta=FALSE, gamma=FALSE))
lines(fitted(m_simple2)[,1], col = 3)
legend(1949, 600, legend=c("Obs","alpha=0.2, SSE=327021.8","alpha=0.99, SSE=162510.6"), lty=c(1,1,1), col = 1:3, cex = 0.8)
# 두 모형의 SSE를 비교하여 SSE가 작은 모형을 잘 적합한 방법으로 판단할 수 있다.
m_simple1$SSE
m_simple2$SSE
# 비계절적 Holt-Winters(with 2 parameter)
# 2개의 평활계수(alpha, beta)를 가진다.
(m_trend <- HoltWinters(AirPassengers, gamma=FALSE))
plot(m_trend, main="No Seasonal Holt-Winters")
m_trend$SSE
# Holt-Winters 가법(additive) 지수평활법
# 3개의 평활계수(alpha, beta, gamma)를 가진다.
(m_add <- HoltWinters(AirPassengers))
# Holt-Winters 승법(multiplicative) 지수평활법
# 3개의 평활계수(alpha, beta, gamma)를 가진다.
(m_multi <- HoltWinters(AirPassengers, seasonal = "mult"))
# 관측값과 적합값 그리기
plot(m_add, main="Holt-Winters(Additive VS Multiplicative)")
lines(fitted(m_multi)[,1], col=3)
legend(1949.8, 600, legend=c("Obs","Add, SSE=21860.18","Multi, SSE=16570.78"), lty=c(1,1,1), col = 1:3, cex = 0.8)
# 두 모형의 SSE를 비교하여 최적의 모형 판단하기
m_add$SSE
m_multi$SSE
# 모형 예측 및 도표 그리기
m_pred <- predict(m, 50, prediction.interval = TRUE)
plot(m,m_pred, main="Predicted Plot", ylab="")
참고홈페이지: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/HoltWinters.html
참고문헌: 시계열 애널리스트를 위한 Eviews솔루션(정동빈 지으)
'시계열 분석' 카테고리의 다른 글
15. [R] 시계열분석 모형 식별, 검진 및 예측 예제 (4) | 2017.09.19 |
---|---|
14. [R] 시계열분석 정상성 확인 예제 : 비정상적 분산, Box-Cox 변환 (2) | 2017.09.14 |
13. [R] 시계열분석 정상성 확인 예제 : 비정상적 분산, 로그변환 (0) | 2017.09.13 |
12. [R] 시계열분석 정상성 확인 예제 : 비정상적 평균 (13) | 2017.09.11 |
11. 개입모형 (0) | 2017.09.09 |