Мера схожести смоделированных временных рядов и наблюдаемых временных рядов

Вопрос или проблема

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

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

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

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

На изображении ниже вы увидите один график с моделью и данными наблюдений.
Красный: Моделирование, Синий: Наблюдение
Спасибо за все предложения.

На мой взгляд, вы можете сделать следующее, чтобы сравнить ваши смоделированные данные с фактическими.

Используйте обычные меры, такие как те, которые вы бы использовали для предсказаний по сравнению с фактическими данными:

  • RMSE
  • MAE (Средняя абсолютная ошибка)
  • MSE (Среднеквадратичная ошибка) –> Придает большее значение большим ошибкам/разрывам

Еще один статистический тест, который приходит мне на ум, чтобы проверить качество “предсказания” между разными моделями, это тест Диболда-Мариано. Он полностью реализован в R. Насколько я знаю, пока что ни в одной библиотеке Python.

В качестве статистического теста вы могли бы взглянуть на распределение (но поскольку вы имеете дело с временными рядами, вы можете столкнуться с “памятью”, что означает, что наблюдения t и t+1 испытывают автокорреляцию (в отличие от большинства статистических тестов, так как они предполагают независимые наблюдения). Автокорреляция, похоже, относится к вашей серии данных. Поэтому вам следует обратить внимание на процент изменения ваших выборочных данных (от t до t1) и посмотреть, являются ли обе серии извлеченными из одного и того же распределения – вы можете провести тест Колмогорова-Смирнова.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

Что касается вашего вопроса о сглаживании и интерполяции. Эмпирика (не статистика) больше представляет собой концепцию проб и ошибок. Это действительно зависит от поведения ваших данных.

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

Более конкретно: https://github.com/unpingco/Python-for-Signal-Processing, список литературы по обработке сигналов. Вы узнаете, как моделировать периодические сигналы, удалять шум и сжимать их.

Ответ или решение

Меры сходства между симулированными и наблюдаемыми временными рядами в анализе световых кривых

Введение

Сравнение наблюдаемых и симулированных временных рядов является важной задачей в области анализа данных и моделирования. При работе с кривыми света (Light Curves) важно применять корректные методы, чтобы оценить, насколько хорошо симуляции соответствуют реальным наблюдениям. В данном материале мы рассмотрим различные методы измерения сходства, такие как кросс-корреляция, статистика хи-квадрат, а также альтернативные подходы, такие как RMSE и MAE.

Кросс-корреляция

Использование функции кросс-корреляции (Cross-Correlation) из библиотеки NumPy — это распространённый метод для сопоставления временных рядов. Однако следует учитывать, что наивысший коэффициент кросс-корреляции не всегда указывает на лучшее соответствие визуально; такие случаи могут быть обусловлены различиями в амплитудах или задержках, которые не отражают реальную связь между временными рядами.

Статистика хи-квадрат

Статистика хи-квадрат (Chi-Square) предоставляет возможность оценить, насколько хорошо симулированные данные соответствуют наблюдаемым. Основная идея заключается в сравнении различий между ожидаемыми (сгенерированными) и наблюдаемыми значениями, при этом более высокий хи-квадрат будет означать большее расхождение. Для такого анализа нужно будет разбить временные ряды на интервалы и рассчитать хи-квадрат как сумму квадратов разностей, нормированных на ожидаемые значения:

[
\chi^2 = \sum \frac{(O_i – E_i)^2}{E_i}
]

где (O_i) — наблюдаемые значения, а (E_i) — ожидаемые (симулированные) значения.

Оценка ошибки: RMSE и MAE

Для количественной оценки сходства между временными рядами можно использовать следующие методы:

  1. RMSE (Корень среднеквадратичной ошибки): Этот метод подчеркивает большие ошибки, что делает его чувствительным к значительным расхождениям между данными. Формула для расчета RMSE выглядит следующим образом:

    [
    RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (O_i – S_i)^2}
    ]

  2. MAE (Средняя абсолютная ошибка): Данный метод более устойчив к выбросам. Он рассчитывается как среднее абсолютное значение ошибок:

    [
    MAE = \frac{1}{n} \sum_{i=1}^{n} |O_i – S_i|
    ]

  3. MSE (Среднеквадратичная ошибка): Аналогично RMSE, но проблема в том, что MSE дает больший вес большим ошибкам.

Учет неравномерного бинирования

Неравномерное бинирование данных может повлиять на результаты анализа. При интерполяции данных важно учитывать, как это может изменить ключевые характеристики. Интерполяция может привести к искажению истинных признаков данных, особенно если выбраны неподходящие методы. Использование сглаживания, например, с помощью фильтра Савитцкого-Голея, может быть продуктивным, но необходимо проанализировать, не потеряются ли при этом важные данные.

Оптимизация параметров

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

  • Генетические алгоритмы: Эти методы оптимизации могут помочь найти глобальный минимум, улучшая эффективность поиска.
  • Методы градиентного спуска: Если возможно, попытайтесь определить зависимости между параметрами и применить локальные методы поиска.

Заключение

Таким образом, для оценки сходства между наблюдаемыми и симулированными временными рядами полезно использовать несколько методов анализа, учитывающих особенности ваших данных. Применение статистических методов, таких как хи-квадрат, а также оценка ошибок (RMSE, MAE) позволят более комплексно подойти к поиску лучшей симуляции. Обдуманную интерполяцию и сглаживание стоит применять с осторожностью, чтобы не потерять важные характеристики данных.

Оцените материал
Добавить комментарий

Капча загружается...