Ряд данных (IM_T_M) содержит месячные показатели импорта товаров.
IM <- sophisthse("IM_T_M")
IM <- IM[, 'IM_T_M']
dygraph(IM, main = "Импорт товаров",
xlab = "Год",
ylab = "млрд. долл.") %>%
dyLegend(show = "follow") %>%
dyRangeSelector()
Дать точные выводы сложно.
Во-первых, по графику можно отследить мультипликативную сезонность. Во-вторых, наблюдается тренд с несколькими резкими падениями. Первый из них скорее всего вызван кризисом в стране (приходится на конец 2008 - начало 2009). Второй, вероятно, связан с санкциями (конец 2014 - начало 2015).
Сейчас главная задача - спрогнозировать показатели импорта товаров на ближайшие 5 лет, для чего нужно выбрать подходящую модель.
Наиболее корректно ограничить обучающий период 2017 годом. Для начала оценим, какая модель подбирается автоматический: мультипликативная ошибка, аддитивный тренд и мультипликативная сезонность.
IM_ob <- window(IM, end = c(2017, 6))
IM_test <- window(IM, start = c(2017, 7))
autoplot(forecast(ets(IM_ob), h = 15), PI = F) + autolayer(IM_test)
Вывод: модель не совпадает с тестовым периоде на половине временного интервала. Более того, сезонность на последнем этапе склоняется к аддитивному, нежели мультипликативному. Попробуем скорректировать:
IM_1 <- forecast(ets(IM_ob, model = 'ZAA', damped = F ), h = 15)
IM_2 <- forecast(ets(IM_ob, model = 'ZAA', damped = T ), h = 15)
IM_3 <- forecast(ets(IM_ob, model = 'ZMZ', damped = F ), h = 15)
IM_4 <- forecast(ets(IM_ob, model = 'ZMZ', damped = T ), h = 15)
autoplot(IM_1, PI = F, series = "ZAA") +
autolayer(IM_2, PI = F, series = "ZAdA") +
autolayer(IM_3, PI = F, series = "ZMZ") +
autolayer(IM_4, PI = F, series = "ZMdZ") +
autolayer(IM_test, series = "test")
Визуально результаты модели различаются, но ни одна не повторяет тестовый период в точности. Проанализируем ошибки моделей.
rbind(accuracy(IM_1),
accuracy(IM_2),
accuracy(IM_3),
accuracy(IM_4)) %>%
as_tibble() %>%
round(4) %>%
mutate(`Метод` = c('ZAA',
'ZAdA',
'ZMZ',
'ZMdZ')) %>%
select(`Метод`, ME, MAPE, MPE)
## # A tibble: 4 x 4
## Метод ME MAPE MPE
## <chr> <dbl> <dbl> <dbl>
## 1 ZAA -0.063 8.12 -1.73
## 2 ZAdA 0.0919 9.03 -0.0042
## 3 ZMZ -0.0546 5.89 -0.659
## 4 ZMdZ 0.0245 5.84 -0.118
Наиболее привлекательно выглядит модель с мультипликативным затухающим трендом, так как показатели ошибок по части покозателей минимальны: ME и MAPE.
autoplot(IM_4, PI = F, series = "ZMdZ") +
autolayer(IM_test, series = "test") +
labs(title = "Модель с мультипликативным трендом")
Таким образом, мы используем модель: c мультипликативной ошибкой, мультипликативным затухающим трендом и мультипликативной сезонностью.
info <- ets(IM_ob, model = 'ZMZ', damped = T)
summary(info)
## ETS(M,Md,M)
##
## Call:
## ets(y = IM_ob, model = "ZMZ", damped = T)
##
## Smoothing parameters:
## alpha = 0.8389
## beta = 0.0119
## gamma = 0.1587
## phi = 0.9685
##
## Initial states:
## l = 3.9024
## b = 1.0193
## s = 1.1077 0.9938 0.9909 0.9945 1.0247 1.0829
## 1.074 0.9909 0.9886 1.0202 0.9227 0.8092
##
## sigma: 0.0772
##
## AIC AICc BIC
## 1471.137 1473.738 1536.691
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.02453962 1.088085 0.7105914 -0.1180449 5.835485 0.2432915
## ACF1
## Training set -0.06695391
IM_F <- forecast(ets(IM, model = 'ZMZ', damped = T ), h = 60)
autoplot(IM_F) +
labs(title = "Прогноз импорта на 5 лет")
Можно заметить, что доверительный интервал широк, что дает большой разброс возможных значений. Это делает прогноз неточным.