Metodo outliers()
Identifica i valori statistici anomali in una colonna numerica. I valori anomali possono essere identificati per l'intera colonna o per gruppi separati in base a valori identici in una o più colonne chiave.
Sintassi
dataframe_name.outliers(keys = ["key_column", "...n"]|None, on = "numeric_column", distance = number_of_std_devs, method = mean|median)
Parametri
Nome | Descrizione |
---|---|
keys = ["key_column", "...n"] | None |
|
on = "numeric_column" |
La colonna numerica da esaminare per individuare i valori anomali. È possibile esaminare solo una colonna alla volta. I valori anomali sono valori che si trovano al di fuori dei limiti superiore e inferiore stabiliti dalla deviazione standard del gruppo o della colonna, oppure da un multiplo specificato della deviazione standard. |
distance = number_of_std_devs |
In numeric_column, il numero di deviazioni standard dalla media o dalla mediana ai limiti superiori e inferiori dei valori anomali. È possibile specificare qualsiasi numero intero positivo o decimale (0,5, 1, 1,5, 2 . . . ) La formula per creare limiti di valori anomali è: mean/median ± (number_of_std_devs * standard deviation) Nota La deviazione standard è una misura della dispersione di un set di dati, ovvero di quanto sono distribuiti i valori. Il calcolo dei valori anomali utilizza la deviazione standard della popolazione. Esempio di limiti di valori anomalidistance = 2 stabilisce, per numeric_column nel suo complesso, o per ogni gruppo di colonne chiave:
Qualsiasi valore superiore al limite superiore o inferiore al limite inferiore viene incluso come valore anomalo nei risultati di output. Nota Per lo stesso set di dati, aumentando il valore in number_of_std_devs, si riduce potenzialmente il numero di valori anomali restituiti. |
method = mean | median facoltativo |
Metodo per calcolare il punto centrale dei valori in numeric_column (la colonna dei valori anomali).
Il punto centrale viene calcolato per:
Il punto centrale viene poi utilizzato per calcolare la deviazione standard di ciascun gruppo o dell'intera colonna numerica. Se si omette method, verrà utilizzato il valore predefinito di media. Consiglio Se i dati che si stanno esaminando per individuare i valori anomali sono significativamente distorti, l'utilizzo della mediana potrebbe produrre risultati più rappresentativi della maggior parte dei dati. |
Restituisce
Dataframe HCL.
Esempi
Identificare gli importi anomali delle transazioni
Si desidera identificare gli importi delle transazioni anomali nell'intero dataframe dei crediti.
Si decide di impostare i limiti dei valori anomali a 3 volte la deviazione standard della colonna Importo. Il test restituisce 16 valori anomali nel dataframe di 772 righe.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3, method = "mean")
Si ripete il test, ma si aumenta la deviazione standard a 3,5. Ora il test restituisce solo 6 valori anomali perché i limiti dei valori anomali sono più lontani dal punto centrale dei valori nella colonna Importo.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3.5, method = "mean")
Identificare gli importi anomali delle transazioni per ogni cliente
Per ogni cliente in un dataframe di crediti è opportuno identificare eventuali importi di transazione anomali.
Si decide di impostare i limiti anomali a 3 volte la deviazione standard del gruppo di transazioni di ciascun cliente.
outliers_customer_ar = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "mean")
Il test restituisce 7 valori anomali. Per ogni gruppo di transazioni del cliente vengono riportate la media e la deviazione standard:
N. gruppo | N. cliente | Importo | media | stdev | distance |
---|---|---|---|---|---|
0 | 65003 | 4.954,64 | 833,83 | 1015,58 | 3 |
1 | 262001 | 3.567,34 | 438,81 | 772,44 | 3 |
1 | 262001 | (2.044,82) | 438,81 | 772,44 | 3 |
2 | 376005 | (931,55) | 484,57 | 411,18 | 3 |
3 | 501657 | 5.549,19 | 441,14 | 1332,80 | 3 |
4 | 811002 | 3.409,82 | 672,10 | 634,20 | 3 |
5 | 925007 | 3.393,87 | 906,16 | 736,48 | 3 |
Come vengono identificati i valori anomali per il cliente 262001
Il cliente 262001 ha 101 transazioni nel dataframe dei crediti e due di queste sono segnalate come valori anomali perché superano i limiti dei valori anomali per quel cliente:
Valore anomalo | Limite inferiore | Limite superiore | Valore anomalo |
---|---|---|---|
(2.044,82) | (1.878,51) | 2.756,13 | 3.567,34 |
Come vengono calcolati i limiti dei valori anomali per il cliente 262001
I limiti dei valori anomali sono la media di tutte le transazioni dei clienti 262001, più o meno il multiplo specificato della deviazione standard delle transazioni:
media di tutte le transazioni del cliente 262001 | 438,81 |
Multiplo specificato della deviazione standard | 3 |
Deviazione standard delle transazioni | 772,44 |
438,81 ± (3 * 772,44) = 438,81 ± 2.317,32 = (1.878,51) (limite inferiore) = 2.756,13 (limite superiore) |
Utilizzare la mediana per identificare gli importi anomali delle transazioni per ciascun cliente
Per eseguire lo stesso test dei valori anomali eseguito nell'esempio precedente, si utilizza la mediana anziché la media.
outliers_customer_ar_median = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "median")
Il test restituisce 10 valori anomali invece dei 7 restituiti nel test precedente. A seconda della natura dei dati, la mediana e la media possono restituire risultati leggermente diversi:
N. gruppo | N. cliente | Importo | mediana | stdev | distance |
---|---|---|---|---|---|
0 | 65003 | 4.954,64 | 663,68 | 1015,58 | 3 |
1 | 262001 | 3.567,34 | 450,67 | 772,44 | 3 |
1 | 262001 | (2.044,82) | 450,67 | 772,44 | 3 |
2 | 376005 | (931,55) | 517,16 | 411,18 | 3 |
3 | 501657 | 4.426,14 | 146,80 | 1332,80 | 3 |
3 | 501657 | 5.549,19 | 146,80 | 1332,80 | 3 |
4 | 811002 | 3.409,82 | 624,53 | 634,20 | 3 |
5 | 925007 | 2.972,78 | 717,88 | 736,48 | 3 |
5 | 925007 | 3.030,71 | 717,88 | 736,48 | 3 |
5 | 925007 | 3.393,87 | 717,88 | 736,48 | 3 |
Come vengono calcolati i limiti dei valori anomali per ciascun cliente
I limiti dei valori anomali sono il valore mediano delle transazioni di ciascun cliente, più o meno il multiplo specificato della deviazione standard delle transazioni.
Ad esempio, per il cliente 262001: 450,67 ± (3 * 772,44)
Osservazioni
Tutte le colonne nel dataframe di input vengono automaticamente incluse nel dataframe di output. Le colonne non direttamente coinvolte nel calcolo dei valori anomali vengono posizionate più a destra nel dataframe di output.