Я использую пакет forecast Хиндмана, чтобы получить несколько точный прогноз tbats на недельном уровне, но у меня есть значительные ошибки в праздничные дни. Как я могу включить отпуск в модель? Кроме того, показалось, что Арима плохо вписывается в мои недельные данные. Таким образом, праздники должны быть добавлены не арима.

Я видел два решения. В одном https://robjhyndman.com/hyndsight/dailydata/ показано, как добавлять праздники в качестве фиктивных переменных с помощью условия Фурье. Проблема в том, что фиктивные переменные принимают форму 1 или 0. Я знаю, что разные праздники имеют разные эффекты, которые 1 или 0 не могли бы зафиксировать. Черная пятница, например, сильно отличается от китайского Нового года.

Другое решение, которое мы уже видели, находится здесь https://robjhyndman.com/hyndsight/forecast7-part-2 / где ковариатное nnetr изменение используется как альтернатива auto.arima с сезонными фиктивными переменными. Проблема в том, что я не вижу, как написать код R для ввода моего отпуска. Пример был бы полезен.

9
Alex 22 Окт 2017 в 15:09

3 ответа

Лучший ответ

Следующие сделали все, что мне нужно было сделать.

k=23
#forecast holidays
#bool list of future holidays
holidayf <- c(0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0)
h <- length(holidayf)

#given holidays
holiday <- df[,2] 
y <- ts(df[,1],start = 2011,frequency = 52)
z <- fourier(y, K=k)
zf <- fourier(y, K=k, h=h)
fit <- auto.arima(y, xreg=cbind(z,holiday), seasonal=FALSE)
fc <- forecast(fit, xreg=cbind(zf,holidayf), h=h)
fc %>% autoplot()
summary(fit)

Чтобы решить проблему разных праздников, имеющих разный эффект, я просто добавил дополнительные фиктивные переменные праздников. Например, вы можете сделать вектор хороших праздников и вектор плохих праздников и cbind их затем поместить в xreg. Я не показал это в приведенном выше коде, но это прямо вперед.

4
Alex 31 Окт 2017 в 12:05

Тест для моделирования временных рядов для использования официальными статистическими агентствами - это x13-arima-seat Бюро переписей США. Он имеет дело с сезонными эффектами, а также с «параметрическими» праздниками, включая, скажем, китайский Новый год и Пасху.

Функциональность доступна в R через сезонный пакет, который устанавливает и использует базовый двоичный файл x13-arima-seat.

Также имеется полнофункциональный интерактивный веб-сайт, предоставляющий доступ к большинству, если не всем, функций.

7
Dirk Eddelbuettel 24 Окт 2017 в 12:28

Вы читали о prophet пакете Facebook?

Не использовал его, но, прочитав документацию, кажется, что это быстрая реализация, которая также учитывает праздники:

https://cran.r-project.org/web/packages/prophet/prophet.pdf

Реализует процедуру прогнозирования данных временных рядов на основе аддитивной модели, в которой нелинейные тренды соответствуют годовой и еженедельной сезонности плюс праздничные дни [...]

https://cran.r-project.org/web/packages/prophet/vignettes/quick_start.html

6
BigTimeStats 25 Окт 2017 в 14:59