Sto lavorando con una serie temporale di punteggi di anomalie (lo sfondo è il rilevamento di anomalie nelle reti di computer). Ogni minuto, ottengo un punteggio di anomalia che mi dice quanto sia "inatteso" o anormale lo stato attuale della rete. Più alto è il punteggio, più anormale è lo stato attuale. I punteggi vicino a 5 sono teoricamente possibili ma non si verificano quasi mai.
Ora voglio inventare un algoritmo o una formula che determini automaticamente una soglia per questa serie temporale di anomalie. Non appena un punteggio di anomalia supera questa soglia, viene attivato un allarme.
La distribuzione di frequenza di seguito è un esempio di una serie temporale di anomalie nell'arco di 1 giorno. Tuttavia, è non è lecito ritenere che ogni serie storica anomalia è andare a guardare come quella. In questo esempio speciale, una soglia di anomalia come il .99-quantile avrebbe senso poiché i pochi punteggi sulla destra possono essere considerati anomalie.
E la stessa distribuzione di frequenza delle serie temporali (varia solo da 0 a 1 poiché non vi sono punteggi di anomalia più alti nelle serie temporali):
Sfortunatamente, la distribuzione della frequenza potrebbe avere forme, dove il .99-quantile non è utile . Un esempio è sotto. La coda destra è molto bassa, quindi se il 99,99 quantile viene usato come soglia, ciò potrebbe comportare molti falsi positivi. Questa distribuzione di frequenza non sembra contenere anomalie, quindi la soglia dovrebbe trovarsi al di fuori della distribuzione a circa 0,25.
Riassumendo, la differenza tra questi due esempi è che il primo sembra presentare anomalie mentre il secondo no.
Dal mio punto di vista ingenuo, l'algoritmo dovrebbe considerare questi due casi:
- Se la distribuzione della frequenza ha una grande coda destra (cioè un paio di punteggi anomali), il .99-quantile può essere una buona soglia.
- Se la distribuzione della frequenza ha una coda destra molto corta (cioè nessun punteggio anormale), la soglia dovrebbe trovarsi al di fuori della distribuzione.
/ modifica: non esiste inoltre alcuna verità di base, ovvero set di dati etichettati disponibili. Quindi l'algoritmo è "cieco" rispetto alla natura dei punteggi di anomalia.
Ora non sono sicuro di come queste osservazioni possano essere espresse in termini di algoritmo o formula. Qualcuno ha un suggerimento su come risolvere questo problema? Spero che le mie spiegazioni siano sufficienti poiché il mio background statistico è molto limitato.
Grazie per l'aiuto!