Najlepszy algorytm do klasyfikacji danych silnika szeregów czasowych

9

Pracuję nad projektem sterowania maszyną. Możemy zmierzyć prąd silnika podczas pracy. Przykładowe dane z dwóch silników wykonujących operację pomyślnie znajdują się poniżej. Czerwony ślad pokazuje prąd z jednego silnika, niebieski ślad prądu z drugiego. Chciałbym spróbować opracować algorytm identyfikujący problemy z zachowaniem maszyny. Problemami mogą być nadmiernie wysoki prąd silnika, prawie zerowy prąd silnika, prąd rosnący na końcu operacji, krótszy szereg czasowy niż normalnie, wszystko w ogóle, co nie wygląda jak typowa operacja poniżej. Czy ktoś może zasugerować dobry algorytm do osiągnięcia tego? Znałem tylko sieć neuronową. Umieściłem plik Excel aktualnych danych przy prądach silnika

Prądy silnika - dobra praca Prądy silnika - zacięcie na końcu pracy

Fred Basset
źródło
Prawdopodobnie bardziej odpowiednie dla strony statystyki SE, ponieważ obejmuje to wykrywanie anomalii i modelowanie statystyczne szeregów czasowych. Analiza przeżycia może odegrać pewną rolę, choć nie jest to jasne z pytania.
Iterator,
Czy możesz opublikować obraz „problemu”? Jednym z pomysłów byłoby obliczenie odległości między „idealną operacją” (jak czerwona linia) a „rzeczywistą operacją” (niebieska linia). Jeśli którykolwiek punkt jest zbyt daleko od „idealnej operacji”, oznacz to jako problem.
Zach.
1
+1 To kluczowy pomysł: wykorzystaj wiedzę specyficzną dla aplikacji, aby scharakteryzować zachowanie. Będzie o wiele bardziej trafny i potężny niż jakakolwiek technika czysto statystyczna. Statystyki mogą następnie oferować sposoby porównywania danych z „serią bazową” lub seriami idealnymi.
whuber
Pomysł użycia teoretycznego lub idealnego można łatwo włączyć jako prognozę / przyczynę / prawą serię wsparcia do modelu funkcji przenoszenia, która następnie dostarczy informacje o wykryciu punktu zmiany, które opisałem w mojej odpowiedzi.
IrishStat
@Irish Myślę, że to nie takie proste. Istnieje charakterystyczny kształt zużycia prądu: początkowy szybki skok, wolniejszy (wykładniczy?) Spadek, długi obszar (miejmy nadzieję) stabilnego prądu, a następnie końcowy spadek (który przyjmuje charakterystyczny kształt) na końcu . Szczegóły będą się różnić, ale kluczowe jest odróżnienie normalnej odmiany od „złej”. Niepokojące są takie rzeczy, jak względna wysokość początkowego skoku i czas potrzebny do wyrównania. Pamiętaj, że celem jest identyfikacja problemów, a niektóre z nich mogą być subtelniejsze niż pokazują standardowe analizy.
whuber

Odpowiedzi:

4

Moje podejście polega na stworzeniu modelu ARIMA dla danych, a następnie zastosowaniu różnych „schematów wykrywania punktu zmiany” w celu wczesnego ostrzegania o nieoczekiwanych „rzeczach”. Schematy te obejmowałyby

  1. wykrywanie obecności / początku impulsów / przesunięć poziomów / lokalnych trendów czasowych, tj. zmian średniej błędów w czasie
  2. wykrywanie obecności / początku zmian parametrów w czasie
  3. wykrywanie obecności / początku zmian wariancji reszt w czasie

Jeśli chcesz opublikować jedną ze swoich seriali, możemy pokazać Ci tego rodzaju analizę, która może „wypchnąć” pomysł, że rzeczy się zmieniają lub zmieniły znacznie.

IrishStat
źródło
3

Ukryty model Markowa

Jednym z najlepszych podejść do modelowania danych szeregów czasowych jest Ukryty Model Markowa (HMM). Możesz utworzyć jeden model znanego stanu nieproblemowego, osobne modele każdego ze znanych stanów problemowych lub, jeśli masz wystarczającą ilość danych, jeden złożony model wszystkich znanych stanów problemowych. Dobrą biblioteką typu open source jest Zestaw narzędzi Ukryty model Markowa dla Matlaba.

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

Filtr Kalmana

Innym podejściem, które jest nieco bardziej zaangażowane, jest filtr Kalmana. To podejście jest szczególnie przydatne, jeśli dane mają dużo hałasu. Dobrą biblioteką open source jest Kalman Filter Toolbox dla Matlab.

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

Modele Bayesowskie

Oba te podejścia są uważane za modele bayesowskie. Dobrą biblioteką typu open source jest Bayes Net Toolbox dla Matlab.

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

Mam nadzieję, że to ci odpowiada.


źródło