algorithm - winters - Come rilevare cambiamenti/trend significativi nei dati di una serie storica?




trend di una serie storica (2)

Quindi ho una matrice di dire 25 campioni e vorrei essere in grado di notare l'andamento di se diminuisce n o aumenta da quei 25 intervalli di tempo di campionamento (in pratica l'array di 25 campioni è il mio buffer che viene riempito da ogni parola 1 ms ).

Si noti che è la tendenza generale che sto cercando, non la derivata individuale (come avrei ottenuto usando la differenza finita o altre tecniche di differenziazione numerica).

Fondamentalmente mi aspetto che i miei dati siano rumorosi, quindi potrebbero esserci degli alti e bassi anche dopo aver fatto il filtro e così via. Ma è la tendenza generale di aumentare o diminuire il comportamento che sto cercando.

Voglio integrare il comportamento crescente / decrescente in ogni ms per attivare un evento che è più di un evento dell'interfaccia utente (lampeggio di un LED) in modo che non debba ritardare molto l'elaborazione finché riesco a rilevare la tendenza generale.

Grazie in anticipo!


È possibile utilizzare un filtro wiener se si conoscono le statistiche del segnale e lo si usa come un predittore n-step ahead. La tua decisione di tendenza può quindi essere facilmente basata sulla previsione del filtro wiener. Se il segnale non è fisso e non si ritiene che la previsione non possa essere eseguita in modo lineare (un processo non lineare / non stazionario), è possibile utilizzare un filtro Wiener adattivo come il filtro LMS .


Non mi sembra affatto che tu voglia il derivato. Sembra che tu voglia un filtro passa-basso. Un filtro passa-basso rimuove semplicemente i dati che cambiano rapidamente e lascia al suo posto le tendenze più lunghe e mutevoli. Il filtro passa-basso più intuitivo è un filtro a media mobile, dove si prende la media degli ultimi n-input, dove n è determinato in base al rumore rispetto alla dimensione della tendenza che si sta cercando. Questo è ampiamente usato dai dati audio all'elaborazione delle immagini fino ai dati sulla disoccupazione (la cifra media mobile di quattro settimane sulla disoccupazione è ampiamente citata).

È possibile sviluppare filtri più efficienti / selettivi usando tecniche ricorsive, se ritenete che sia necessario. Puoi usare questo tutorial per creare un filtro passa-basso. È scritto per l'audio, ma funzionerà sulla maggior parte dei dati. Ti mostra come scrivere un filtro a campana, ma un filtro passa-basso è più facile.

http://blog.bjornroche.com/2012/08/basic-audio-eqs.html







numerical