Come trovare quando un grafico raggiunge un picco e altipiani?


9

Questo può sembrare molto semplice, ma ho questo problema: ho una coda di dati con una dimensione della finestra di 300. Nuovi dati vengono aggiunti a un'estremità, i vecchi valori vengono rimossi dall'altra estremità.

Mi aspetto che i dati della coda rimangano più o meno coerenti, ad esempio: 10,12,15,10,20, quindi inizi a salire bruscamente: 15,10,20,22,25,26,28,30,32 ... fino a 150 o giù di lì. Lì i dati potrebbero fluttuare un po ', quindi scenderebbero con una pendenza simile (120.118.116.115 ...) fino a 20 o giù di lì.

Sto cercando di identificare il punto di svolta in questa serie di dati a livello di codice, ma il mio codice rileva picchi più spesso di quanto vorrei. Come posso identificare quando il grafico è in aumento, quando ha raggiunto una svolta definitiva e quando inizia a cadere? Dovrei provare a guardare il tasso di variazione del tasso di variazione?


Se hai un ragionevole senso della pendenza e dell'altezza della vetta, potresti prendere in considerazione sia l'altezza e quanto tempo è salita, sia la pendenza attuale? Quanti dati precedenti hai sui picchi e potresti utilizzarli per adattarli a un modello?
Karl,

2
Qualunque sia il metodo, dovrai definire correttamente cos'è un picco e cos'è un plateau. Due valori "alti" consecutivi sono un picco o un plateau? Che ne dici di cinque? Alcuni metodi potrebbero non avere bisogno di queste informazioni, ma poi sono nascosti dietro le quinte. Come sempre, si tratta di definire correttamente il problema e di ottimizzare i parametri (e / o l'algoritmo).
Nick Sabbe,

Risposte:


2

Se sai che questo è lo schema esatto da aspettarti, puoi cercare questo schema esatto, ma poi perderai altri schemi. Così. Se sai che il picco sarà 150, allora potresti cercare 2 o 3 o 4 o (comunque molti) valori consecutivi di 150. Ma dici "o così" - quanto è grande il "o così"? Forse il picco è definito come "3 valori consecutivi su 130" o forse è "3 su 5 valori consecutivi su 140". Decidi tu.

D'altra parte, se stai solo cercando un programma generale per rilevare i picchi - beh, è ​​stato esaminato. Esistono diversi metodi di livellamento (ad es. Loess, spline di vario genere, medie mobili, ecc.). Non sono un campo in cui sono esperto, ma su questo c'è molta letteratura.


4

Guarda in SiZer (incroci ZERo significativi ... o pendenze, non ricordo), anche se probabilmente è più uno strumento trasversale che una serie temporale. L'idea è quella di lisciare i dati a diverse larghezze di banda (che variano di circa tre ordini di grandezza) e applicare alcuni test locali per vedere se la pendenza di una regressione locale è significativamente positiva o negativa (o indecisa). Produce un'immagine convincente che ti aiuterebbe a determinare quali funzioni ci sono. (Sono sorpreso che non ci sia implementazione R, solo Matlab.)

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.