Вопрос или проблема
Контекст
Я занимаюсь задачей кластеризации 1500 временных рядов из 500 наблюдений в несколько кластеров. Временные ряды обладают одинаковыми наблюдаемыми свойствами в разных пространственных положениях, но реагируют на одни и те же экзогенные переменные. Однако для каждого временного ряда величина реакции очень различна. Для эталонного временного ряда $X$ я бы хотел, чтобы в одну группу объединялись ряды, аналогичные $X^a$ для всех $a > 0$.
Попытки
До сих пор мое понимание проблемы заключается в том, что я хочу кластеризовать временные ряды, обладающие сильной монотонной взаимосвязью. Мои первые попытки использовали иерархическую агломеративную кластеризацию с определением коэффициента ранжирования Кендалла на основе расстояния, так как он измеряет силу монотонной взаимосвязи. По визуальной интерпретации, лучшие результаты были получены с использованием метода связи Уорда. Однако этот подход кажется неортодоксальным, ненадежным или сомнительным по нескольким причинам.
Во-первых, документация Scipy упоминает здесь, что метод Уорда является корректным только при использовании евклидова расстояния. Во-вторых, я не смог найти практического применения кластеризации временных рядов, основанного либо на коэффициенте Спирмена, либо на коэффициенте Кендалла. Более того, меня очень удивило, что я не смог найти ни одной статьи или ссылки, нацеленной на кластеризацию, основанную на монотонном критерии.
Я готов рассмотреть другие подходы, хотя не могу оценить их преимущества. Например, пересчет всех временных рядов в стандартное гауссовое распределение (например, с помощью преобразования Бокса-Кокса), а затем использование евклидова расстояния. Еще одна возможность — превращение первой разности временных рядов в булев вектор (1, если $\Delta X >0$, $0$ в противном случае), а затем использование евклидова расстояния или другой метрики расстояния.
Вопросы
Так как я новичок в кластеризации временных рядов, мне сложно самостоятельно представить, какой подход будет наилучшим (или наихудшим) для этой конкретной цели. Поэтому у меня есть два связанных вопроса:
- Конкретно, является ли использование иерархической кластеризации на основе коэффициента Кендалла и метода связи Уорда неверным подходом и почему?
- В общем, какой лучший способ кластеризовать временные ряды на основе монотонной ассоциации?
Некоторые ссылки на эту тему также приветствуются.
Способ вычисления связи Уорда действительно имеет смысл только с использованием квадратичных евклидовых мер. Только тогда может применяться теорема Кёнига-Хюйгенса.
Почему бы вам не рассмотреть среднюю связь? Почему Уорд?
Ответ или решение
Кластеризация временных рядов на основе монотонного сходства
Контекст
Вы находитесь на этапе анализа временных рядов, где необходимо сгруппировать 1500 временных рядов, каждый из которых содержит 500 наблюдений. Все временные ряды отражают реакции на идентичные экзогенные переменные, но отличаются по величине реакции. Основная цель заключается в том, чтобы отобразить временные ряды, которые подобны друг другу в рамках монотонного преобразования, в одни и те же кластеры.
Пробные методы
Ваш первоначальный подход заключался в использовании иерархической агломеративной кластеризации с применением коэффициента ранговой корреляции Кендалла для измерения силы монотонной зависимости. Использование метода Уорда привело к лучшим визуальным результатам, но возникли сомнения в корректности этого метода в данном контексте.
Ответ на вопросы
-
Является ли неправильным использование иерархической кластеризации на основе коэффициента Кендалла и метода Уорда, и почему?
Метод Уорда действительно изначально предназначен для работы с евклидовым расстоянием, так как его использование основано на определённых теоремах, связанных с данной метрикой. Несмотря на то, что ваш интуитивный подход может работать, существуют ограничения при использовании коэффициента Кендалла с методом Уорда, так как они могут не обеспечивать адекватную оценку монотонного сходства.
-
Какой лучший способ кластеризации временных рядов на основе монотонной ассоциации?
Лучший подход для кластеризации временных рядов на основе монотонности должен учитывать специфику взаимосвязей между рядами. Рассмотрим несколько более подходящих методов:
-
Использование копул: Можно изучить использование копуль для моделирования и оценки монотонных зависимостей между рядами. Копуль помогают исследовать зависимости в многомерных данных и могут быть полезны для вашего случая.
-
Нормализация временных рядов: Преобразование рядов, например, с помощью преобразования Бокса-Кокса, может помочь унифицировать масштаб данных. После нормализации использование методов кластеризации на основе евклидова расстояния может дать желаемые результаты.
-
Булевы вектора: Преобразование первых разностей рядов в булевы вектора, как вы уже предложили, также может оказаться целесообразным. Это позволит оценивать только направление изменений, абстрагируясь от их масштаба.
-
Заключение
Выбор метода кластеризации временных рядов сильно зависит от целей анализа и свойств данных. Если основной акцент на монотонное сходство без учёта масштаба, копулы и нормализация данных могут оказаться более гибкими и точными подходами, чем традиционные методы кластеризации. Определённые эксперименты и подбор алгоритмов на вашем наборе данных помогут подтвердить их эффективность.
Если у вас возникнут дополнительные вопросы или потребуются ссылки на конкретные исследования, я буду рад помочь вам с дополнительными ресурсами.