Статистическое сходство временных рядов

15

Предположим, у кого-то есть временной ряд, из которого можно выполнить различные измерения, такие как период, максимум, минимум, среднее и т. Д., А затем использовать их для создания модельной синусоидальной волны с такими же атрибутами. Существуют ли какие-либо статистические подходы, которые можно использовать для количественной оценки? насколько точно фактические данные соответствуют предполагаемой модели? Количество точек данных в серии будет варьироваться от 10 до 50 точек.

Первой моей очень упрощенной мыслью было приписать значение направленному движению синусоиды, то есть +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 -1 +1 +1 +1 +1, сделайте то же самое с фактическими данными, а затем каким-то образом определите степень сходства направленного движения.

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

Теперь я думаю о том, чтобы объединить некоторую форму байесовского анализа и евклидовой / LMS метрики. Шаги в этом подходе будут

Создание предполагаемой синусоиды из данных измерений

Подгонка прямой линии LMS к данным

Получите евклидову или LMS метрику для отклонений от исходных данных для каждого из вышеперечисленных

Создайте байесовский априор для каждого на основе этого показателя, т. Е. 60% комбинированных отклонений привязаны к одному, 40% к другому, следовательно, предпочтение составляет 40%

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

повторить весь набор данных (3000+ точек данных) с этим скользящим окном (длина окна 10-50 точек данных). Надежда / намерение состоит в том, чтобы определить преобладающее / предпочтительное допущение в любой точке набора данных и как оно меняется со временем

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

babelproofreader
источник

Ответы:

7

Евклидово расстояние - это общая метрика в машинном обучении. Следующие слайды дают хороший обзор этой области вместе со ссылками:

Также см. Ссылки на странице тестов Keogh для классификации временных рядов:

АРС
источник
5

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

Тем не менее, вы могли бы рассмотреть возможность немного изменить свой вопрос: «Какая модель лучше всего подойдет для моих данных?» В этом случае я бы предложил сделать предположение о нормально распределенном члене ошибки - то, что можно утверждать, сродни предположению о наименьших квадратах. Затем, в зависимости от вашего выбора модели, вы можете сделать предположение о том, как, по вашему мнению, распределены другие параметры модели (присваивая байесовский априор) и использовать что-то вроде пакета MCMC из R для выборки из распределения параметров. Тогда вы могли бы посмотреть на задние средства и отклонения, чтобы понять, какая модель лучше всего подходит.

М. Тиббитс
источник
Если у меня есть две возможные модели, чтобы соответствовать моим данным, синусоида, как описано в моем исходном вопросе, и подгонка прямой линии LMS, я мог бы просто сравнить среднеквадратичное отклонение от истинных значений данных синусоиды с остатками Линия соответствия LMS и затем выберите модель с более низким общим значением на том основании, что эта модель демонстрирует более точное соответствие данным? Если это так, то было бы также уместно разделить данные на две части и сделать то же самое с каждой половиной отдельно, используя одинаковые синусоидальные / LMS-соответствия, чтобы увидеть, как каждая модель может улучшаться / ухудшаться со временем?
babelproofreader
Я не уверен. Мое предложение состояло в том, чтобы использовать метрику наименьших квадратов, но я не говорил запускать линейную регрессию. Вы можете проверить периодическую регрессию .
М. Тиббитс
Что касается вашего второго вопроса, можете ли вы сократить данные пополам, я буду очень осторожен в этом - потому что это удвоит минимальную частоту, которую вы можете рассмотреть. Я думаю, что вам может понадобиться посмотреть на коэффициенты Фурье (взять FFT или DCT и регрессировать на них?!? - Не уверен ). Или, возможно, периодическая регрессия, как указано выше.
М. Тиббитс
3

Ваша «упрощенная первая мысль» о качественном представлении только направленного движения по духу похожа на алгоритм SAX Кеоха для сравнения временных рядов. Я бы порекомендовал вам взглянуть на это: Имон Кеог и Джессика Лин: SAX .

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

Ирландский буфер
источник
0

В то время как я немного опаздываю на вечеринку, если вы думаете о чем-то синусоидальном, вейвлет-преобразования - это хороший инструмент, который также может быть в вашем кармане. Теоретически, вы можете использовать вейвлет-преобразования для разложения последовательности на различные «части» (например, волны разных форм / частот, неволновые компоненты, такие как тренды и т. Д.). Конкретной формой волнового преобразования, которое используется на тонну, является преобразование Фурье, но в этой области много работы. Я бы хотел порекомендовать текущий пакет, но я давно не занимался анализом сигналов. Однако я вспоминаю некоторые пакеты Matlab, поддерживающие функциональность.

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

Namey
источник