Poisson BSTS с выходными - Ловушка прерывания: 6

Я пытаюсь смоделировать временной ряд с BSTS, имеющим переменную отклика Пуассона. Однако я просто получаю сообщение об ошибке. Вот воспроизводимый пример:

library(bsts)

holiday.list <- list(NamedHoliday("MemorialDay"),
                     NamedHoliday("IndependenceDay"),
                     NamedHoliday("LaborDay"),
                     NamedHoliday("Thanksgiving"),
                     NamedHoliday("Christmas"),
                     NamedHoliday("NewYearsDay"))

data <- ts(as.integer(EuStockMarkets))
ss <- AddLocalLinearTrend(list(), data)

ss <- AddRegressionHoliday(ss, data, holiday.list=holiday.list, time0=as.Date("1991-01-01"))

ss <- AddSeasonal(ss, data, nseasons=7) # weekly seasonal

bsts.poisson <- bsts(data, state.specification=ss, niter=500, family="poisson")

Это завершается с кодом 134 и печатает следующее сообщение:

Abort trap: 6

Он работает без ошибок, когда я удаляю аргумент family="poisson", но мне нужен ответ Пуассона, а не Гаусса. Что я делаю не так?

Редактировать: я знаю, что данные фондового рынка не должны быть процессом Пуассона. Это не то, что я моделирую в своей настоящей работе. Это просто удобная замена для воспроизводимого примера.

Изменить: некоторая информация о версии - R version 3.6.0 (2019-04-26), Platform: x86_64-apple-darwin13.4.0 (64-bit), Running under: macOS Mojave 10.14.6

other attached packages:
[1] bsts_0.9.1          xts_0.11-2          zoo_1.8-6
[4] BoomSpikeSlab_1.1.1 Boom_0.9.1          MASS_7.3-51.4

person Andy Carlson    schedule 12.09.2019    source источник
comment
Похоже, вы моделируете данные временных рядов цен на акции. Что заставляет вас думать, что это процесс Пуассона?   -  person Maurits Evers    schedule 13.09.2019
comment
Это не то, что я на самом деле моделирую. Это просто воспроизводимый пример. Я не могу распространять свои настоящие данные, а EuStockMarkets было удобно включено в R в глобальную область видимости.   -  person Andy Carlson    schedule 13.09.2019
comment
Ваш пример на самом деле не воспроизводим. Я получаю сообщение об ошибке: Ошибка в bsts (данные, state.specification = ss, niter = 500, family = poisson): Обнаружено исключение со следующим сообщением об ошибке: Не удается извлечь параметр остаточного отклонения.   -  person ClancyStats    schedule 19.09.2019
comment
@AndyCarlson Удаление time0 решило проблему? Сталкивались ли вы с другими проблемами после удаления?   -  person David    schedule 23.09.2019


Ответы (2)


Проблема не в family="poisson". Проблема вызвана тем, что ввод в AddRegressionHoliday переменной time0 вызывает проблему.

Выполнение следующего без time0:

library(bsts)

holiday.list <- list(NamedHoliday(holiday.name = "MemorialDay"),
                     NamedHoliday(holiday.name = "IndependenceDay"),
                     NamedHoliday(holiday.name = "LaborDay"),
                     NamedHoliday(holiday.name = "Thanksgiving"),
                     NamedHoliday(holiday.name = "Christmas"),
                     NamedHoliday(holiday.name = "NewYearsDay"))

data <- ts(as.integer(EuStockMarkets))
ss <- AddLocalLinearTrend(list(), data)
#ss <- AddRegressionHoliday(ss, data, holiday.list=holiday.list, time0=as.Date("1991-01-01"))
ss <- AddRegressionHoliday(ss, data, holiday.list=holiday.list)
ss <- AddSeasonal(ss, data, nseasons=7) # weekly seasonal

bsts.poisson <- bsts(data, ss, niter=500, family = "poisson")

привел к следующему результату:

=-=-=-=-= Iteration 0 Sun Sep 22 22:35:51 2019 =-=-=-=-=
=-=-=-=-= Iteration 50 Sun Sep 22 22:35:57 2019 =-=-=-=-=
=-=-=-=-= Iteration 100 Sun Sep 22 22:36:03 2019 =-=-=-=-=
=-=-=-=-= Iteration 150 Sun Sep 22 22:36:10 2019 =-=-=-=-=
=-=-=-=-= Iteration 200 Sun Sep 22 22:36:16 2019 =-=-=-=-=
=-=-=-=-= Iteration 250 Sun Sep 22 22:36:23 2019 =-=-=-=-=
=-=-=-=-= Iteration 300 Sun Sep 22 22:36:29 2019 =-=-=-=-=
=-=-=-=-= Iteration 350 Sun Sep 22 22:36:36 2019 =-=-=-=-=
=-=-=-=-= Iteration 400 Sun Sep 22 22:36:42 2019 =-=-=-=-=
=-=-=-=-= Iteration 450 Sun Sep 22 22:36:49 2019 =-=-=-=-=

Но в этом случае он примет data[1] как time0, это может иметь эффект и может не зависеть от данных.

person David    schedule 22.09.2019
comment
Проблема в том, что, опуская аргумент time0, модель игнорирует праздники (я предполагаю, что она не знает реальных дат ни для одного из моментов времени). Когда я проверяю обученную модель и рисую компоненты, она вообще не использует праздники. - person Andy Carlson; 25.09.2019
comment
@AndyCarlson Я понимаю, я безуспешно пытался манипулировать им, используя объекты zoo или xts; возможно, стоит поднять вопрос в разработчике GitHub - person David; 25.09.2019

Я получил ответ по электронной почте от Стивена Скотта, автора bsts:

«Да, некоторые праздничные модели допускают гауссовы ошибки, потому что есть общий параметр остаточной дисперсии. Это можно было бы переработать, но это низко в моем списке приоритетов».

Итак, похоже, что использование праздников с ответом Пуассона в настоящее время не поддерживается.

person Andy Carlson    schedule 27.09.2019