Quanto è preciso l'IQR per rilevare i valori anomali


11

Sto scrivendo una sceneggiatura che analizza i tempi di esecuzione dei processi. Non sono sicuro della loro distribuzione, ma voglio sapere se un processo dura "troppo a lungo". Finora ho usato 3 deviazioni standard degli ultimi tempi di esecuzione (n> 30), ma mi è stato detto che questo non fornisce nulla di utile se i dati non sono normali (cosa che non sembra essere). Ho trovato un altro test anomalo che afferma:

Trova l'intervallo tra quartili, che è IQR = Q3 - Q1, dove Q3 è il terzo quartile e Q1 è il primo quartile. Quindi trova questi due numeri:

a) Q1 - 1,5 * IQR b) Q3 + 1,5 * IQR

Il punto è anomalo se <a o> b

I miei dati tendono ad essere cose come 2sec, 3sec, 2sec, 5sec, 300sec, 4sec, .... dove 300sec è ovviamente un valore anomalo.

Quale metodo è migliore? Il metodo IQR o il metodo di deviazione standard?


4
Puoi dare un'occhiata alla risposta di @ user603 qui: esiste una variante boxplot per i dati distribuiti di Poisson per informazioni su come regolare questa regola per i dati distorti.
gung - Ripristina Monica

3
Questo metodo "IQR" non è mai stato pensato per essere applicato alla cieca. Fa parte di un processo di analisi esplorativa dei dati (come descritto da Nick Cox nella sua risposta) durante il quale troverai prima un modo per riesprimere i dati per renderli approssimativamente simmetrici.
whuber

2
Sulla base dei tuoi commenti alle risposte, la risposta corretta è "nessuno dei due", perché la tua preoccupazione di fondo non riguarda gli outlier, ma il processo.
whuber


I numeri sono time_taken quindi non saranno mai simmetrici a meno che non li ridimensioni in qualche modo.
JP Bennett,

Risposte:


14

Ci sono davvero interi libri sugli outlier.

La solita risposta specifica è che la deviazione standard è aumentata dai valori anomali, quindi qualsiasi regola basata sulla SD può avere scarsi risultati.

Le regole di Tukey sui quartili +/- 1,5 IQR citate sono nate dal lavoro manuale con set di dati di piccole e medie dimensioni negli anni '70, e sono state progettate per indicare valori che potresti voler pensare individualmente. Non è chiaro che vengano trasferiti a set di dati molto più grandi, né che si applichino quando si prevede una notevole asimmetria.

Una risposta più generale è che una regola anomala è buona se prende sempre le giuste decisioni, ma come si può dire?

Questo è un territorio controverso, ma mi aspetto che un outlier sporga su un grafico come molto diverso dagli altri. Ma è spesso (di solito?) Una chiamata difficile dire la differenza tra ciò che ci si aspetta in una distribuzione dalla coda pesante e ciò che è troppo selvaggio per essere considerato tutt'altro che un valore anomalo. A volte la trasformazione rende un aspetto anomalo molto più ordinario.

Inoltre, se usi metodi robusti potresti preoccuparti un po 'meno esattamente di quali valori meritano di essere chiamati valori anomali, ma preoccupati piuttosto dei valori anomali in generale.


1

Dici di non essere sicuro della distribuzione ma i processi in corso sono facili da raccogliere e valutare per la distribuzione. Basta salvare un sacco di volte e analizzarli. Date le volte che hai pubblicato, potresti ottenere molti in poche ore.

La tua ricerca di una regola per un valore anomalo non deve essere così generale. Può essere specifico per il tuo compito. Sei in grado di raccogliere molti dati. Raccoglilo, esaminalo e poi decidi quando un processo è troppo lungo. Forse un approccio basato su IQR funzionerà ma puoi usare il tuo set di dati, o un adattamento parametrico, per fare simulazioni e vedere se funziona bene. Lo stesso vale per SD. Potrebbe essere solo che> 50s sia troppo lungo ed è tutto ciò di cui hai bisogno.


Sto raccogliendo dati su diversi processi. Ognuno di essi può avere distribuzioni diverse. Ho solo bisogno di un modo semplice per dire "tempo di esecuzione troppo grande" per avvisare i tecnici di esaminare ulteriormente le cose. Può essere generale purché segnali cose che dovrebbero essere contrassegnate. Se compaiono alcuni falsi positivi, così sia. Tuttavia, i falsi positivi dovrebbero essere ridotti al minimo poiché, se ce ne sono troppi, vanifica lo scopo della sceneggiatura e dovrei semplicemente scaricare tutti i risultati e lasciare che i tecnici lo facciano. Lo scopo della sceneggiatura è "restringere le cose"
chris bedd,

È possibile valutare se i processi sono uguali o diversi. Se sono davvero molto diversi, alcune regole generali possono tendere a causare un determinato processo che attiva l'avviso più frequentemente del necessario. Questa informazione dovrebbe davvero essere nella tua domanda.
Giovanni,

3
Caratterizzare questo problema come ricerca di valori anomali, chris, fa l'ingiustizia: stai effettivamente affrontando un problema di controllo di qualità . Le principali distinzioni sono (1) che hai un flusso di dati in corso piuttosto che un set di dati statici da analizzare e (2) intendi specificare azioni periodiche da intraprendere come risultato di ogni analisi: cioè se intervenire (e tentare di migliorare il processo) o meno (e lasciare che il processo funzioni così com'è). Comprendere che questa è la natura del tuo problema dimostra che l'enorme letteratura sul controllo di qualità è rilevante, fornendo un ricco assortimento di soluzioni.
whuber

+1 @whuber. I valori anomali non sono rilevanti qui. Né il tempo di esecuzione medio, né qualsiasi percentuale di esso, è correlato a ciò che è "troppo lungo". Il modo per scoprire che cosa è "troppo lungo" può essere un sondaggio tra gli utenti, o un controllo con gli ingegneri, o semplicemente indovinare i pantaloni, o qualcos'altro, ma non è una domanda statistica.
Peter Flom - Ripristina Monica
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.