Ho uno scenario in cui ho diverse migliaia di istanze di dati. I dati stessi sono rappresentati come un singolo valore intero. Voglio essere in grado di rilevare quando un'istanza è un valore anomalo estremo.Tecnica di rilevamento anomalie consigliata per uno scenario semplice e monodimensionale?
Ad esempio, con i seguenti dati esempio:
a = 10
b = 14
c = 25
d = 467
e = 12
d
è chiaramente un'anomalia, e vorrei per eseguire un'azione specifica sulla base di questo.
Sono stato tentato di provare solo a utilizzare la mia conoscenza del dominio particolare per rilevare le anomalie. Ad esempio, calcola una distanza dal valore medio che è utile, e controlla quello, in base all'euristica. Tuttavia, penso che sia probabilmente meglio se indago su tecniche di rilevamento delle anomalie più generali e robuste, che hanno qualche teoria dietro di esse.
Poiché la mia conoscenza pratica della matematica è limitata, spero di trovare una tecnica semplice, come l'uso della deviazione standard. Speriamo che la natura a dimensione singola dei dati renderà questo problema abbastanza comune, ma se sono necessarie più informazioni per lo scenario, si prega di lasciare un commento e darò maggiori informazioni.
Edit: ho pensato di aggiungere altre informazioni sui dati e quello che ho provato nel caso in cui si fa una risposta più corretta di un altro.
I valori sono tutti positivi e diversi da zero. Mi aspetto che i valori formino una distribuzione normale. Questa aspettativa si basa su un'intuizione del dominio piuttosto che attraverso l'analisi, se questa non è una cosa negativa da assumere, per favore fatemelo sapere. In termini di clustering, a meno che non ci siano anche algoritmi standard per scegliere un valore k, troverei difficile fornire questo valore ad un algoritmo k-Means.
L'azione che voglio fare per un anomalia/anomalia è presentarla all'utente e consigliare che il punto dati sia sostanzialmente rimosso dal set di dati (non entrerò nel modo in cui lo farebbero, ma ha senso per il mio dominio), quindi non sarà usato come input per un'altra funzione.
Finora ho provato il test a tre sigma e IQR sul mio set di dati limitato. I valori dei flag IQR non sono abbastanza estremi, three-sigma indica le istanze che meglio si adattano alla mia intuizione del dominio.
Informazioni su algoritmi, tecniche o collegamenti a risorse per conoscere questo scenario specifico sono risposte valide e benvenute.
Che cos'è una tecnica di rilevamento anomalie consigliata per dati unidimensionali semplici?
non sottovalutare il valore della conoscenza scientifica. Le procedure di scatola nera sono raramente la strada da percorrere. Cerca di esprimere le tue conoscenze scientifiche in termini di statistiche semplici. – Tristan
@Tristan: stai dicendo che pensi che dovrei provare a inventare un modello che ha qualche fondamento nelle statistiche, ma alla fine è specifico per il mio dominio problematico? – Grundlefleck
Sto solo dicendo che la tua conoscenza di ciò che è ragionevole (cioè, qual è il modello che genera i dati buoni e i dati cattivi) è un'informazione importante. Dovresti progettare una procedura, come l'utilizzo di IQR, motivata dalla tua conoscenza scientifica del dominio. Non mi piacciono le cose come k-significa perché non è ben motivato ed è intrinsecamente inflessibile, secondo me. – Tristan