Il miglior algoritmo per classificare i dati motori delle serie storiche


9

Sto lavorando a un progetto di controllo della macchina. Possiamo misurare la corrente del motore durante il funzionamento. Di seguito sono riportati i dati di esempio di due motori che eseguono correttamente un'operazione. La traccia rossa mostra la corrente di un motore, la traccia blu la corrente di un altro. Vorrei provare a elaborare un algoritmo per identificare i problemi con il comportamento della macchina. I problemi potrebbero essere una corrente del motore eccessivamente elevata, vicino alla corrente del motore pari a zero, la corrente che aumenta alla fine dell'operazione, una serie temporale più breve del normale, qualsiasi cosa in generale che non assomigli a un'operazione tipica di seguito. Qualcuno può suggerire un buon algoritmo per raggiungere questo obiettivo? L'unica con cui ho familiarità è una rete neurale. Ho messo un file Excel di dati effettivi alle correnti del motore

Correnti del motore - buon funzionamento Correnti del motore - inceppamento alla fine dell'operazione


Probabilmente più appropriato per il sito statistico SE, poiché ciò comporta il rilevamento di anomalie e la modellizzazione statistica di una serie storica. L'analisi di sopravvivenza può svolgere un ruolo, sebbene non sia chiaro dalla domanda.
Iterator,

Potresti pubblicare un'immagine di un "problema"? Un'idea sarebbe quella di calcolare la distanza tra una "operazione ideale" (come la linea rossa) e la "operazione effettiva" (la linea blu). Se un punto è troppo lontano dalla "operazione ideale", segnalalo come un problema.
Zach,

1
+1 Questa è un'idea chiave: utilizzare le conoscenze specifiche dell'applicazione per caratterizzare il comportamento. Sarà molto più pertinente e potente di qualsiasi tecnica puramente statistica possa essere. Le statistiche possono quindi offrire modi per confrontare i dati con la "base" o le serie ideali.
whuber

Questa idea di utilizzare un teorico o un ideale può essere facilmente incorporata come una serie di supporto per predittore / causa / lato destro in un modello di funzione di trasferimento che fornirà quindi le informazioni di rilevamento del punto di cambiamento che ho descritto nella mia risposta.
IrishStat,

@Irish Penso che non sia così semplice. C'è una forma caratteristica nel consumo attuale: un picco rapido iniziale, un declino più lento (esponenziale?), Una lunga regione di corrente (si spera) stabile, seguita dalla caduta finale (che assume una forma caratteristica) alla fine . I dettagli varieranno, ma è fondamentale distinguere la variazione normale dalla variazione "cattiva". Di preoccupazione sono cose come l'altezza relativa del picco iniziale e il tempo impiegato per livellare. Ricorda, l'obiettivo è quello di identificare i problemi e alcuni di questi potrebbero essere più sottili di quanto mostrino le analisi standard.
whuber

Risposte:


4

Il mio approccio è quello di formare un modello ARIMA per i dati e quindi di utilizzare vari "schemi di rilevamento del punto di cambio" al fine di fornire un avviso tempestivo su "cose" impreviste. Questi schemi includerebbero

  1. rilevare la presenza / insorgenza di impulsi / spostamenti di livello / tendenze dell'ora locale, ovvero variazioni della media degli errori nel tempo
  2. rilevare la presenza / insorgenza di cambiamenti nei parametri nel tempo
  3. rilevare la presenza / insorgenza di variazioni nella varianza dei residui nel tempo

Se desideri effettivamente pubblicare una delle tue serie, potremmo effettivamente mostrarti questo tipo di analisi che può "respingere" l'idea che le cose stiano cambiando o siano cambiate in modo significativo.



3

Modello nascosto di Markov

Uno dei migliori approcci per la modellazione dei dati di serie temporali è un Hidden Markov Model (HMM). Puoi creare un singolo modello del tuo stato noto di non problema, modelli separati di ciascuno dei tuoi stati noti di problema o, se disponi di dati sufficienti, un singolo modello composito di tutti i tuoi stati noti di problema. Una buona libreria open source è la Hidden Markov Model Toolbox per Matlab.

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

Filtro Kalman

Un altro approccio un po 'più coinvolto è un filtro Kalman. Questo approccio è particolarmente utile se i tuoi dati hanno molto rumore. Una buona libreria open source è la Kalman Filter Toolbox per Matlab.

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

Modelli bayesiani

Entrambi questi approcci sono considerati modelli bayesiani. Una buona libreria open source è la Bayes Net Toolbox per Matlab.

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

Spero che questo funzioni per te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.