Я пытаюсь прогнозировать временные ряды с четкой сезонностью. Я полагаю, что существует еженедельная и ежедневная сезонность, и временные ряды выбираются с интервалом в 1 минуту в течение года. Для начала я подгоняю динамическую регрессионную модель c harmoni c с ошибками ARMA, выполняя:
library("forecast")
fourier_components <- fourier( x = data, K=c(k_value,k_value) )
arima_model_fit <- auto.arima( data, seasonal=FALSE, lambda=0, xreg=fourier_components )
И это, как первая попытка (я могу настроить K и так далее), работает достаточно хорошо Если я прогнозирую наперед, я получаю:
forecast_fourier <- fourier( x = data, K=c(k_value, k_value), h = 1440*7*4 )
seasonal_test_forecast <- forecast( object = arima_model_fit, xreg = forecast_fourier )
autoplot(seasonal_test_forecast, include = 1440*7*4*2, ylab="data")
Однако из-за физических ограничений я знаю, что временной ряд не может go ниже 0 или выше некоторого порога T. Я могу остановить интервалы прогнозирования, идущие ниже 0, с помощью вызова lambda = 0 в auto.arima, поскольку это обеспечивает log-transform. Но есть ли способ объяснить верхний предел в типичном поведении? Без этого я явно получаю физически необоснованные интервалы предсказания на более длинных горизонтах.
РЕДАКТИРОВАТЬ: Как указано в комментариях, способ объяснения этого подробно описан в otexts.com/fpp2/limits.html с использованием корректировки log-transform.