Моделирование неравномерно распределенных временных рядов

12

У меня есть непрерывная переменная, отобранная в течение года с нерегулярными интервалами. Некоторые дни имеют более одного наблюдения в час, в то время как другие периоды не имеют ничего в течение нескольких дней. Это делает особенно сложным обнаружение закономерностей во временных рядах, поскольку некоторые месяцы (например, октябрь) имеют высокую выборку, а другие - нет.

введите описание изображения здесь

Мой вопрос: каков наилучший подход к моделированию этого временного ряда?

  • Я считаю, что большинство методов анализа временных рядов (например, ARMA) нуждаются в фиксированной частоте. Я мог бы агрегировать данные, чтобы иметь постоянную выборку или выбрать подмножество данных, которые очень подробны. С обоими вариантами я бы упустил некоторую информацию из исходного набора данных, которая могла бы представить различные шаблоны.
  • Вместо того, чтобы разбивать ряды на циклы, я мог бы снабдить модель всем набором данных и ожидать, что он подберет шаблоны. Например, я преобразовал час, день недели и месяц в категориальных переменных и попробовал множественной регрессии с хорошими результатами (R2 = 0,71)

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

doublebyte
источник

Ответы:

4

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

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

Будьте очень осторожны интерпретации . В-образец прилегание заведомо вводит в заблуждение как меру вне образца точности прогноза ( см здесь ). Я бы сказал, что это несоответствие между подбором в выборке и точностью прогноза вне выборки также означает, что нет никакой связи между подборкой в ​​выборке и тем, насколько хорошо модель «понимает» данные, даже если ваш интерес заключается не в прогнозировании , но только в моделировании как таковом. Моя философия заключается в том , что если вы не можете прогнозировать временные ряды хорошо, вы не поняли , это в любом значимом смысле.р2

И, наконец, не переусердствуйте моделирования. Просто из Eyeballing данных, то очевидно , что что - то произошло в июне на один день в августе и в сентябре / октябре. Я предлагаю вам сначала выяснить , что это что - то было , и включить это в вашей модели, например, в качестве объясняющих переменных (которые вы можете включить в ARIMAX , если вы хотите). Что там произошло, очевидно , не сезонность.

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

Поскольку ваш вопрос и хороший ответ от @Stephan Kolassa обсудить ARIMA и нейронные сети , в частности, я хотел бы отметить , что вы можете дать forecastпакет в Rидти - он имеет nnetarфункцию , которая поезд простой упреждающий нейронную сеть со скрытым слоем 1 и отставали входы.

Может быть, вы могли бы попробовать что-то вроде:

  • извлечь множество функций для каждого из ваших наблюдений, как день недели, день месяца, день недели / выходного и т.д. (только дата и время упоминаются в качестве потенциальной зависимости в вашем вопросе, так вот почему я включил это - но вы можете включать все возможные вещи, которые вы поверьте, может повлиять на вашу переменную интереса).
  • В качестве входных данных будут использоваться запаздывающие значения вашей интересующей переменной, а также информация о дате и времени (например, день недели и т. д.). xregНапример, вы можете включить переменные даты и времени в качестве внешних регрессоров ( ).

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

НТН.

davidski
источник