У меня есть опыт новичка во временных рядах (некоторые оценки / прогнозы ARIMA), и я столкнулся с проблемой, которую я не до конца понимаю. Любая помощь будет принята с благодарностью.
Я анализирую несколько временных рядов, все в одном и том же временном интервале и на одной и той же частоте, и все они описывают один и тот же тип данных. Каждая серия - это только одна переменная, других соответствующих предикторов, на которые я смотрю, нет.
Меня попросили оценить одну модель, которая описывает ВСЕ ряды - например, представьте, что я мог бы найти одну ARIMA (p, d, q) с теми же порядками, коэффициентами и т. Д., Которые могли бы соответствовать всем рядам. Мой руководитель не хочет, чтобы я отдельно оценивал каждую серию, и при этом он не хочет, чтобы я делал какую-то модель VAR с зависимостями между сериями.
Мой вопрос: как бы я назвал такую модель, и как я мог бы оценить / прогнозировать ее? Если вам проще использовать примеры кода, я говорю на SAS и R.
источник
Одним из способов сделать это является создание длинных временных рядов со всеми вашими данными и последовательностями пропущенных значений между рядами для их разделения. Например, в R, если у вас есть три серии (
x
,y
иz
) каждый длиной 100 и частотой 12, вы можете присоединиться к ним следующим образомОбратите внимание, что количество пропущенных значений выбрано для обеспечения сохранения сезонного периода. Я добавил в последний год 8 пропущенных значений, а затем добавил четыре пропущенных года (48 значений) перед следующей серией. Этого должно быть достаточно, чтобы гарантировать, что любые последовательные корреляции размываются между сериями.
Тогда вы можете использовать,
auto.arima()
чтобы найти лучшую модель:Наконец, вы можете применить комбинированную модель к каждой серии отдельно для получения прогнозов:
источник
Оценка единой модели для нескольких временных рядов является областью эконометрики панельных данных . Однако в вашем случае без объяснительной переменной @Rob Hyndman ответ, вероятно, лучше всего подходит. Однако, если выясняется, что средства временных рядов различны (проверьте это, поскольку в этом случае метод @Rob Hyndman должен потерпеть неудачу!), Но структура ARMA такая же, тогда вам придется использовать Arellano-Bond (извините, википедия имеет нет страницы на нем, так что искать его в Google) тип оценки. Модель в этом случае будет:
источник
Альтернативой подходу Роба Хиндмана, заключающемуся в создании единого ряда данных, является объединение данных. Это может быть целесообразно, если несколько временных рядов представляют зашумленные показания с набора машин, записывающих одно и то же событие. (Если каждый временной ряд имеет разный масштаб, сначала необходимо нормализовать данные.)
ПРИМЕЧАНИЕ: вы все равно получите только 28 показаний, просто меньше шума, так что это может не подходить для вашей ситуации.
источник
Я бы посмотрел на скрытые марковские модели и динамические байесовские сети. Они моделируют данные временных рядов. Также они обучаются с использованием нескольких экземпляров временного ряда, например, нескольких временных рядов артериального давления от разных людей. Вы должны найти пакеты в Python и R для их сборки. Возможно, вам придется определить структуру для этих моделей.
источник
Я пытаюсь сделать то же самое. По-видимому, существует нечто, называемое «многовариантной авторегрессионной» моделью. Я нашел ссылку на это, но не как его использовать. Основываясь на связанном документе, я предполагаю, что он был реализован в R.
http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Holmes~et~al.pdf
источник