R - Как правильно учитывать структурные разрывы в иерархической байесовской VAR (BVAR)? - PullRequest
1 голос
/ 25 мая 2020

Меня интересует использование нового пакета bvar в R для прогнозирования набора эндогенных временных рядов. Однако из-за пандемии COVID c мой временной ряд претерпел структурный сдвиг. Как лучше всего учесть это в модели? Некоторые гипотезы:

  1. Добавить экзогенную фиктивную переменную (похоже, в пакете нет этой функции)
  2. Добавить эндогенную фиктивную переменную с сильными априорными значениями, которые обнуляют коэффициенты влияния других переменных над ней (т.е. «искусственная» экзогенная переменная)
  3. Создайте две отдельные модели (до и после структурного разрыва)

Я пробовал сочетание 2 + 3. Я протестировал (i) модель только с недавними данными (после структурного разрыва) и без фиктивных данных против (ii) другую модель с полной историей с дополнительной эндогенной (фиктивной) переменной, но без сильной фиктивной предыдущей (я не мог понять, как для правильной настройки). Модель (ii) показала лучшие результаты в тестовом наборе.

1 Ответ

1 голос
/ 25 мая 2020

Я написал электронное письмо владельцу пакета Николасу Кушнигу (не смог найти своего пользователя в SO), на что он ответил:

Структурные разрывы всегда причиняют боль. модель. В целом, вероятно, предпочтительнее оценивать две отдельные модели, но с учетом короткого промежутка времени и получения полезных результатов ваша идея с добавлением фиктивной переменной также должна работать. Вы можете настроить априорные значения из других переменных, вручную установив psi в bv_mn() (см. Документацию и виньетку для объяснения). В зависимости от переменных вы также можете быть в порядке, не делая ничего из этого, поскольку COVID можно рассматривать просто как еще один шок (что почти всегда довольно сложно, учитывая его масштабы).

Обратите внимание, что если есть это фактический структурный разрыв, манекенов будет недостаточно, поскольку коэффициенты будут меняться (отсюда я предпочитаю ваш вариант 3). В определенной степени вы могли бы смоделировать это с помощью VAR с марковским переключением, но, к сожалению, я не знаю доступной реализации для R.

Спасибо, Николас

...