Прогноз данных временных рядов с внешними переменными

10

В настоящее время я работаю над проектом по прогнозированию данных временных рядов (ежемесячных данных). Я использую R для прогнозирования. У меня есть 1 зависимая переменная (у) и 3 независимых переменных (х1, х2, х3). Переменная y имеет 73 наблюдения, также как и остальные 3 переменные (alos 73). С января 2009 года по январь 2015 года. Я проверил корреляции и p-значение, и все это очень важно, чтобы поместить его в модель. Мой вопрос: как я могу сделать хороший прогноз, используя все независимые переменные? У меня нет будущих значений для этих переменных. Допустим, я бы хотел предсказать, какая у меня переменная через 2 года (в 2017 году). Как я могу это сделать?

Я попробовал следующий код:

    model = arima(y, order(0,2,0), xreg = externaldata) 

Можно ли с помощью этого кода сделать прогноз значения y на 2 года?

Я также попробовал код регрессии:

    reg = lm(y ~ x1 + x2 + x3) 

Но как мне занять время в этом коде? Как я могу предсказать, какое будет мое значение y, скажем, через 2 года? Я новичок в статистике и прогнозировании. Я провел некоторое чтение и просмотр значения задержки, но как я могу использовать значение задержки в модели для прогнозирования?

На самом деле мой общий вопрос: как я могу прогнозировать данные временного ряда с внешними переменными без будущего значения?

SB
источник
Никогда не используйте регрессию с данными временных рядов. Используйте подход модели передаточной функции.
Том Рейли
2
Привет, сэр, вы можете рассказать мне больше о модели передаточной функции? И почему я никогда не должен использовать регрессию с данными временных рядов? Большинство исследований предлагают использовать регрессию с временными рядами.
SB
Модель передаточной функции объясняется в учебнике Бокса-Дженкинса в главе 10. Цель состоит в том, чтобы построить модель для каждого причинно-следственной связи (предварительное отбеливание), а затем использовать невязки, чтобы найти корреляции с Y (взаимная корреляция). Это поможет вам определить, какие переменные важны и есть ли какие-либо опережающие или запаздывающие отношения. В этом уравнении может быть необходимость в ARIMA или знаменателе для переменных X. Вы также можете иметь выбросы, изменения в тренде, уровне, сезонности, параметрах и дисперсии.
Том Рейли
Там также может быть регрессия предполагает, что время не имеет значения. Гальтон использовал регрессию для изучения гороха пота ... не проблема временных рядов. Передаточная функция использует части процесса для оценки проблемы.
Том Рейли

Ответы:

11

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

Есть, конечно, разные способы прогнозирования ваших объясняющих переменных. Вы можете использовать последнее наблюдаемое значение (прогноз «наивное случайное блуждание») или общее среднее значение. Вы можете просто установить их на ноль, если это полезно для них (например, особые события, которые произошли в прошлом, например, землетрясение, которое вы не ожидаете повторить). Или вы можете подгонять и прогнозировать модель временных рядов к самим этим объясняющим переменным, например, используя auto.arima.

YxregY

Я рекомендую этот бесплатный учебник по онлайн-прогнозированию , особенно этот раздел о множественной регрессии (к сожалению, там нет ничего про ARIMAX), а также сообщение в блоге Роба Хиндмана "Путаница с моделью ARIMAX" .

Стефан Коласса
источник
1

Как сказал Йоги Берра: «Трудно делать прогнозы, особенно в отношении будущего».

Многие программные модули статистики будут генерировать прогнозы на основе одномерного потока временных рядов при отсутствии какой-либо будущей информации, например, Proc Forecast в SAS или любом количестве доступных модулей ARIMA. Эти прогнозы являются прогнозами, основанными на историческом поведении ваших данных.

Вы говорите нам, что ваши данные ежемесячны, но не сообщаете нам, сколько периодов у вас есть в наличии. Другой подход состоит в том, чтобы установить ваши три IV назад на 24 месяца относительно DV, чтобы прогнозируемый период был t + 24. Это предполагает, что у вас есть достаточное количество данных как для инициализации модели, так и для калибровки любой соответствующей сезонности, в зависимости от ситуации.

Майк Хантер
источник
Я отредактировал свой текст. Можете ли вы ответить на мои вопросы сейчас?
SB
Учитывая, что у вас достаточно информации, есть много способов интегрировать время в вашу модель. Вы можете создать фиктивные переменные для лет (например, 2009, 2010 и т. Д.), Для кварталов, для каждого месяца во временном ряду или, в качестве подхода к учету сезонности, для каждого месяца года. Другой подход заключается в том, чтобы рассматривать время как числовую функцию тренда, например, линейную (как при подсчете периодов, начинающихся с января 2009 года = 1, февраля = 2 и т. Д.) Или любое количество полиномиальных трендов, основанных на линейном тренде, например, квадратичный (линейный тренд в квадрате) и выше. Что еще вы хотите знать?
Майк Хантер
Но время не может быть независимой переменной, верно? Так, как я могу предсказать мою переменную y, используя 3 внешних переменных? Мне трудно выбрать модель, которая будет делать прогноз?
SB
Как указано в предыдущем комментарии, время будет независимой переменной. Я думаю, вам нужно прочитать регрессию, эконометрику и литературу по временным рядам. На этом сайте есть множество веток, посвященных этим вопросам и предлагающих статьи, книги и т. Д. Просмотрите правую часть этой веб-страницы, чтобы найти больше тем, связанных с вашими проблемами.
Майк Хантер
Я много читал и не смог найти решение. Вот почему я задал этот вопрос здесь. Можете ли вы назвать некоторые темы литературы, которые я могу использовать? Или правильная веб-страница?
SB
1

На мой взгляд, у вас есть три варианта:

  1. Используйте опубликованный прогноз для ваших независимых переменных или найдите модель для их прогнозирования. Например, перепись будет иметь прогнозируемые данные о населении.
  2. Используя имеющийся у вас набор данных, регрессируйте каждую из ваших независимых переменных в зависимости от времени, а затем используйте эти результаты в своей прогнозной модели для независимых переменных.
  3. Отбросьте независимые переменные и просто смоделируйте зависимую переменную как функцию времени и отстающих значений y.

Каждый подход имеет свои сильные и слабые стороны, поэтому лучшее зависит от конкретного контекста.

Эзра Бойд
источник