Как бороться с временными рядами, которые изменяют сезонность или другие закономерности?

22

Задний план

Я работаю над набором данных временных рядов показаний счетчиков энергии. Длина ряда варьируется в зависимости от метра - у некоторых у меня есть несколько лет, у других - всего несколько месяцев и т. Д. Многие демонстрируют значительную сезонность, а часто и несколько слоев - в течение дня, недели или года.

Одна из вещей, над которыми я работал, - это кластеризация этих временных рядов. На данный момент моя работа носит академический характер, и, хотя я занимаюсь и другим анализом данных, у меня есть конкретная цель провести некоторую кластеризацию.

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

Вопрос

Приведет ли сезонность к изменению конкретной серии к неправильной кластеризации? И если да, то как мне с этим бороться?

Меня беспокоит то, что расстояния, полученные DTW, могут вводить в заблуждение в тех случаях, когда картина во временных рядах изменилась. Это может привести к неправильной кластеризации.

В случае, если вышеизложенное неясно, рассмотрите эти примеры:

Пример 1

Измеритель имеет низкие показания с полуночи до 8:00, затем значения резко возрастают в течение следующего часа и остаются высокими с 9:00 до 17:00, затем резко уменьшаются в течение следующего часа и затем остаются низкими с 6:00 до полуночи. Измеритель продолжает эту схему последовательно каждый день в течение нескольких месяцев, но затем меняется на схему, где показания просто остаются на постоянном уровне в течение дня.

Пример 2

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

Возможные направления

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

Дальнейшие заметки

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

  • Я работаю в Python, но у меня есть rpy для тех мест, где R больше подходит. Я не обязательно ищу ответ на языке Python - если у кого-то есть практический ответ о том, что должно быть сделано, я с удовольствием выясню детали реализации самостоятельно.
  • У меня много работающего "черновика" кода - я выполнил несколько прогонов DTW, я сделал несколько разных типов кластеризации и т. Д. Я думаю, что я в основном понимаю направление, в котором я иду, и что я ' На самом деле поиск связан с тем, как я обрабатываю свои данные перед нахождением расстояний, запуском кластеров и т. д. При этом я подозреваю, что ответ будет одинаковым независимо от того, рассчитываются ли расстояния между рядами с помощью DTW или более простого евклидова расстояния (ED).
  • Я нашел эти документы особенно информативными по временным рядам и DTW, и они могут быть полезны, если требуется некоторая предыстория для тематической области: http://www.cs.ucr.edu/~eamonn/selected_publications.htm
Джо Дуглас
источник
+1 Очень хороший вопрос, и приятно видеть столько энтузиазма! Я думаю, что вы могли бы немного придавить свой вопрос, так что это более привлекательно для других, чтобы прочитать, а затем дать вам ответ.
Рубенс
@Rubens Спасибо! Я переделаю это, когда я буду дома этим вечером, я могу видеть, где было бы полезно включить немного больше информации о том, как я достиг этого пункта и почему. Я беспокоился о том, что это станет слишком длинным, но я выделю фон и задам немного больше вопросов, чтобы избежать его нечитаемости.
Джо Дуглас
Возможно, это не вопрос «чистой статистики», но для него нужен ответ по чистой статистике. Вы будете бороться, пока не сможете думать об этом с точки зрения чистой статистики.
Spacedman
@Spacedman - Я приветствую ответы в любой форме, которую люди считают лучшим способом ответить на них, с оговоркой, что у меня могут возникнуть дополнительные вопросы, если ответ будет тяжелым по формулам или ссылкам на статистические понятия, которые я еще не понимаю.
Джо Дуглас
Джо, ты нашел правильный ответ на свой вопрос? Я в такой же ситуации и мне нужна помощь. Спасибо
LSola

Ответы:

14

Прочитав ваш вопрос, я заинтересовался темой кластеризации временных рядов и динамической деформации времени (DTW) . Итак, я выполнил ограниченный поиск и пришел к базовому пониманию (для меня) и следующему набору релевантных ИМХО ссылок (для вас). Я надеюсь, что вы найдете это полезным, но имейте в виду, что я намеренно пропустил исследовательские работы, так как меня больше интересовали практические аспекты этой темы.

Ресурсы:

Александр Блех
источник
1
Некоторые из них - ресурсы, на которые я смотрел - например, я реализовал модифицированную версию работы в пунктах 2 и 4 - поэтому мы, вероятно, сейчас на той же странице. И подавляющее большинство того, что я знаю, основано на бумагах Имонна Кеога или статьях на их основе. Но есть некоторые из них, которые я здесь не читал, и один из них о кластеризации временных рядов на велосипедных ресурсах интересен - спасибо! Я не вижу ничего, что конкретно отвечает на мой вопрос, но обязательно укажите, пропустил ли я что-то во время чтения.
Джо Дуглас
1
Кроме того, если вы все еще находите это интересным, документы Кео действительно стоит прочитать. Они на удивление легко читаются и довольно практичны, поскольку фокусируются на использовании множества наборов данных и предоставляют достаточно информации, чтобы кто-то мог воссоздать все эксперименты. Самый последний из них интересен, и это то, через что я прорабатывал свой путь, когда я оказался в стороне от своего вопроса. cs.ucr.edu/~eamonn/selected_publications.htm
Джо Дуглас,
1
@JoDouglass: Пожалуйста! Я не собирался отвечать на ваш вопрос напрямую (из-за моего ограниченного знания этой темы), но надеялся, что это будет полезно, что, как представляется, имеет место. Спасибо за хорошие комментарии и ссылки - я буду просматривать статьи и постараюсь получить лучшее представление. Есть так много, чтобы узнать, это немного ошеломляет.
Александр Блех
1
Подавляющее право это, я пинал себя для выбора этой темы некоторое время! Хотя я чувствую, что добираюсь туда - и было действительно интересно узнать об этом. У меня есть несколько вещей, работающих как некие грубые версии того, что мне нужно сделать, и я думаю, что это больше о том, как выяснить, как обрабатывать мои данные, прежде чем запускать их через мои модели, сейчас. Эта ссылка на мотоцикл интересна для меня, так как она впервые обсуждает усреднение временных рядов с тех пор, как я прочитал недавнюю статью о Кео, о которой упоминал.
Джо Дуглас
1
@JoDouglass: Когда я сказал «подавляющий», я имел в виду всю область науки о данных (включая AI / ML и статистику, в частности). Я еще найти ресурс , который представляет собой высокоуровневое обсуждение различных подходов и / или методов , как темы , интегрированные в комплексную , но экономную , рамку .
Александр Блех
4

Если вы хотите использовать только сезонные модели, изучите автокорреляцию . Если вы ищете модель, которая может изучать сезонные модели и делать прогнозы на ее основе, то Holt-Winters - хорошее начало, и ARIMA была бы хорошей идеей для продолжения. Здесь [pdf] учебник, который заставил меня сойти с ума.

TheGrimmScientist
источник
Работа (на данный момент) академическая, а не чисто практическая. Я могу сделать некоторые прогнозы очень поздно или в будущем, но сейчас я больше заинтересован в изучении прошлых данных. Кластеризация - это сама по себе цель, а также некоторые идеи, которые я хочу изучить после этого.
Джо Дуглас
Извините, нажмите Enter преждевременно. Я в какой-то степени изучил автокорреляцию и запустил ее на подмножестве моих данных, но мне было не совсем понятно, что я мог из нее извлечь. Данные довольно шумные. Шаблоны сезонности иногда довольно очевидны в визуализации, но неточны в их сроках - так что я могу искать похожие шаблоны, но не по хорошему, ровному графику. Мне сказали, что автокорреляция, вероятно, будет проблематичной для таких данных, но я с удовольствием посмотрю, если в этом есть ценность. Я не хочу просто найти сезонность, но понять это - цель.
Джо Дуглас
Проработайте этот учебник по крайней мере до 2.5 включительно. Он использует R, что особенно хорошо для вашей академической среды. Он научит вас автокорреляции, которая звучит точно так, как вы ищете (не могу сказать, не подходит ли она, потому что вы не знали, на что смотрите, или данные на самом деле слишком шумные). Если шум является проблемой, экспоненциальное сглаживание является одним из способов помочь с этим, который будет преподаваться как часть модели Холт-Уинтерса. Даже если все это не даст вам ответа, это, безусловно, сделает ваш следующий шаг более понятным.
TheGrimmScientist
Я прочитал учебник, но он в основном касается вещей, которые я уже знаю. Я на самом деле работаю в Python, и я слишком далеко от того, чтобы переключиться на R, хотя я намеревался в какой-то момент взять rpy на случай, если есть какие-то вещи, которые я не смог найти ни в одной библиотеке Python. Я переписал свой вопрос на тот случай, если он поможет кому-либо - как я уже сказал, кластеризация - это самоцель, я не ищу совершенно другого направления, которое нужно было бы использовать. Боюсь, учебник не поможет. Я действительно не отвечаю на мой вопрос.
Джо Дуглас