Лучший алгоритм для классификации данных двигателя временных рядов

9

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

Ток двигателя - хорошая работа Ток двигателя - заклинивание в конце работы

Фред Бассет
источник
Вероятно, больше подходит для сайта статистики SE, поскольку это включает обнаружение аномалий и статистическое моделирование временного ряда. Анализ выживания может сыграть свою роль, хотя это не ясно из вопроса.
Итератор
Не могли бы вы опубликовать изображение "проблемы"? Одной из идей было бы рассчитать расстояние между «идеальной операцией» (например, красной линией) и «фактической операцией» (синей линией). Если какая-либо точка находится слишком далеко от «идеальной операции», пометьте ее как проблему.
Зак
1
+1 Это ключевая идея: использовать специфические знания приложения для характеристики поведения. Он будет гораздо более уместным и мощным, чем любой чисто статистический метод. Затем статистика может предложить способы сравнения данных с «базовым» или идеальным рядом.
whuber
Эту идею использования теоретического или идеального можно легко включить в качестве вспомогательного ряда предиктор / причина / правая сторона в модель передаточной функции, которая затем даст информацию об обнаружении точки изменения, которую я описал в своем ответе.
IrishStat
@ Ирландский, я думаю, это не так просто. У потребления тока есть характерная форма: начальный быстрый скачок, более медленное (экспоненциальное?) Снижение, длинная область (надеюсь) стабильного тока, за которой следует окончательное падение (которое принимает характерную форму) в конце , Детали будут различаться, но ключевое отличие - отличить нормальное отклонение от «плохого». Беспокойство вызывают такие вещи, как относительная высота начального пика и время, необходимое для выравнивания. Помните, цель состоит в том, чтобы идентифицировать проблемы, и некоторые из них могут быть более тонкими, чем стандартный анализ покажет.
whuber

Ответы:

4

Мой подход заключается в том, чтобы сформировать модель ARIMA для данных, а затем использовать различные «схемы обнаружения точек изменения», чтобы обеспечить раннее предупреждение о неожиданных «вещах». Эти схемы будут включать

  1. обнаружение наличия / появления импульсов / сдвигов уровня / трендов местного времени, т.е. изменений среднего значения ошибок во времени
  2. обнаружение наличия / появления изменений параметров во времени
  3. обнаружение наличия / появления изменений в дисперсии остатков во времени

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

IrishStat
источник
3

Скрытая Марковская Модель

Одним из лучших подходов к моделированию данных временных рядов является скрытая марковская модель (HMM). Вы можете создать единую модель вашего известного не проблемного состояния, отдельные модели каждого из известных вам проблемных состояний или, если у вас достаточно данных, единую составную модель всех ваших известных проблемных состояний. Хорошая библиотека с открытым исходным кодом - Hidden Markov Model Toolbox для Matlab.

http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html

Фильтр Калмана

Еще один немного более сложный подход - это фильтр Калмана. Этот подход особенно полезен, если в ваших данных много шума. Хорошая библиотека с открытым исходным кодом - Kalman Filter Toolbox for Matlab.

http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html

Байесовские модели

Оба этих подхода считаются байесовскими моделями. Хорошая библиотека с открытым исходным кодом - это Bayes Net Toolbox для Matlab.

http://code.google.com/p/bnt

Я надеюсь, что это работает для вас.


источник