Сходство тенденций в анализе временных рядов

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

При этом я сталкиваюсь с тремя проблемами:

Q1 - Как я могу извлечь шаблон?

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

Q3 - Когда я могу сказать, что две тенденции похожи или не похожи?


person A.Amidi    schedule 12.12.2012    source источник
comment
Это должно пройти перекрестную проверку, поскольку речь идет о статистических подходах, а не о программировании.   -  person Peter Ellis    schedule 14.09.2015


Ответы (1)


Q1 – Как извлечь шаблон?

Вы должны начать с анализа временных рядов на обоих ваших наборах данных. Вам понадобится статистическая библиотека для проведения тестов и сравнений.

Если вы можете использовать Python, pandas — хороший вариант.

В R отлично подходит пакет forecast. Начните с запуска ets для обоих наборов данных.

Вопрос 2. Как я могу количественно определить тенденцию, поскольку я буду сравнивать тенденции, относящиеся к двум разным местам?

Идея количественной оценки тренда состоит в том, чтобы начать с поиска (линейной) линии тренда. В этом могут помочь все пакеты статистики. Например, если вы предполагаете линейный тренд, то линия, которая минимизирует квадрат отклонения от ваших точек данных.

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

Вопрос 3. Когда я могу сказать, что две тенденции похожи или не похожи?

  1. Запустите ARIMA для обоих наборов данных. (Основная идея здесь состоит в том, чтобы посмотреть, может ли один и тот же набор параметров (из которых состоит модель ARIMA) описать оба ваших временных ряда. Если вы запустите auto.arima() в forecast (R), то будут выбраны параметры p, d, д для ваших данных, большое удобство.

  2. Другая идея состоит в том, чтобы выполнить t-тест с двумя выборками для обеих ваших серий и проверить значимость p-значения. (Предостережение: я не статистик, поэтому я не уверен, есть ли какая-либо теория, запрещающая делать это для временных рядов.)

  3. Во время исследования я наткнулся на Тест Грейнджера, основная идея которого состоит в том, чтобы увидеть, может ли один временной ряд помощь в прогнозировании другого. Кажется, очень применимо к вашему случаю.

Так что это всего лишь несколько вещей, чтобы вы начали. Надеюсь, это поможет.

person Ram Narasimhan    schedule 12.12.2012
comment
не могли бы вы прокомментировать реализацию (1) в Pandas/Python, а именно, эквивалент auto.arima() в python. Комментарии ниже предполагают, что эта автоматизация находится в стадии разработки: > stackoverflow.com/questions/22770352/ - person Quetzalcoatl; 06.06.2015
comment
@Ram См. продолжение вашего ответа, stats.stackexchange.com/questions/172226/ . - person Moe; 13.09.2015
comment
Несколько замечаний: 1. зачем ограничиваться линейной линией тренда. Лучшим началом, вероятно, было бы указать OP на стандартный инструмент декомпозиции, который разбивает его на сезонные, трендовые и случайные компоненты и использует лёсс или что-то подобное для тренда. 2. Запуск ARIMA для двух наборов данных не поможет вам оценить сходство тенденций (попробуйте и убедитесь — см. мой ответ на stats.stackexchange.com/questions/172226/. - person Peter Ellis; 14.09.2015