Обнаружьте время, когда происходит отклонение в временных рядах данных.

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

Я работаю с многомерными временными рядами. У меня есть данные с датчиков, которые генерируются машиной каждый раз, когда она работает. Набор данных состоит из machine_ID (машины одной модели), часов работы, измерений с различных датчиков. Машина начинает ухудшаться после определенных часов работы. Я хотел бы найти момент, после которого происходит резкое изменение, после которого производительность начинает ухудшаться.

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

Вот как выглядит график значений 'сенсор 2' от run-to-failure

Снимок данных

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

Я буду признателен за любые ссылки или предложения по этому вопросу.

Заранее спасибо.

AnomalyDetection — это пакет R с открытым исходным кодом для выявления аномалий, который является надежным с статистической точки зрения, с учетом сезонности и внутренней тенденции.

Блог-пост, который представляет пакет, можно найти здесь, а более формальное описание — здесь.

Вы можете смоделировать процесс как распределение Вейбулла, которое является распространенным для анализа выживаемости и инженерии надежности. С его использованием проводились исследования по мониторингу “здоровья” систем, примеры — здесь и здесь.

Я попробовал бы использовать пакет Google’s CausalImpact. Ваш случай использования не является точно причинно-следственным выводом, но CausalImpact основывается на байесовских структурных моделях временных рядов (с использованием пакета bsts) и имеет некоторые хорошие значения по умолчанию, которые избавляют вас от необходимости сразу углубляться в bsts.

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

Вот туториал, с которого можно начать, и вот вводное видео.

.

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

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

Теория (Theory)

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

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

Пример (Example)

Рассмотрим использование алгоритмов детектирования аномалий, таких как пакеты AnomalyDetection в R, или более инновационных подходов, таких как использование распределений Вейбулла и причинно-следственного анализа с Google CausalImpact. Algotы AnomalyDetection особенно полезны для временных рядов с сезонностью и трендами, делая их устойчивыми к изменениям в данных.

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

Применение (Application)

  1. AnomalyDetection: Используйте этот пакет для анализа временных рядов, в которых вы подозреваете наличие сезонных паттернов или трендов. Он автоматически подбирает параметры моделей и обнаруживает отклонения.

  2. Распределение Вейбулла: Моделируйте время работы оборудования до момента отклонения как случайную величину, следуя распределению Вейбулла. Это поможет предсказать возможное время до следующих инцидентов, базируясь на исторических данных.

  3. Google CausalImpact: Разделите ваши данные на две части: до точки предполагаемого вмешательства и после. Подгоните модель к первой части данных, затем спрогнозируйте вторую. Сравните фактические данные с прогнозируемыми для обнаружения отклонений.

Практическая реализация

  1. Подготовка данных: Очистите данные от выбросов и неконсистентной информации. Убедитесь, что временные интервалы последовательны, а данные с разных датчиков синхронизированы по времени.

  2. Выбор и обучение модели: Начните с простых моделей, таких как алгоритмы детекции аномалий. Переходите к более сложным моделям, например, структурным байесовским временным рядам для детекции воздействия.

  3. Визуализация и интерпретация: Отобразите результаты модели на графиках. Это позволит выявить моменты сильных отклонений и интерпретировать их с точки зрения физической деградации оборудования.

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

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

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

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