outliers() methode
Identificeert statistische uitschieters in een numerieke kolom. Uitschieters kunnen worden geïdentificeerd voor de hele kolom of voor afzonderlijke groepen op basis van identieke waarden in een of meer sleutelkolommen.
Syntaxis
dataframe_name.outliers(keys = ["key_column", "...n"]|Geen, on = "numeric_column", distance = number_of_std_devs, method = mean|median)
Parameters
Naam | Beschrijving |
---|---|
keys = ["key_column", "...n"] | Geen |
|
on = "numeric_column" |
De numerieke kolom die op uitschieters moet worden onderzocht. U kunt slechts één kolom tegelijk onderzoeken. Uitschieters zijn waarden die buiten de boven- en ondergrenzen vallen die zijn vastgesteld door de groeps- of kolomstandaardafwijking, of door een gespecificeerd veelvoud van de standaardafwijking. |
distance = number_of_std_devs |
In numeric_column, het aantal standaardafwijkingen vanaf het gemiddelde of de mediaan tot de bovenste en onderste grenzen voor uitschieters. U kunt elk positief geheel getal of decimaal getal opgeven (0,5, 1, 1,5, 2 . . . ) De formule voor het creëren van afwijkende grenzen is: gemiddelde/mediaan ± (number_of_std_devs * standaardafwijking) Opmerking Standaarddeviatie is een maat voor de spreiding van een gegevensverzameling – dat wil zeggen, hoe ver de waarden uit elkaar liggen. De berekening van uitschieters maakt gebruik van de standaardafwijking van de populatie. Voorbeeld van grenzen voor uitschietersafstand = 2 bepaalt, voor numeric_column als geheel, of voor elke sleutelkolomgroep:
Elke waarde die hoger is dan de bovengrens of lager dan de ondergrens wordt als uitbijter opgenomen in de uitvoerresultaten. Opmerking Voor dezelfde gegevensset vermindert u mogelijk het aantal geretourneerde uitschieters als u de waarde in number_of_std_devs verhoogt. |
method = mean | median optioneel |
De methode voor het berekenen van het middelpunt van de waarden in numeric_column (de uitbijterkolom).
Het middelpunt wordt berekend voor een van beide:
Het middelpunt wordt vervolgens gebruikt bij het berekenen van de standaardafwijking van elke groep, of van de gehele numerieke kolom. Als u method weglaat, wordt de standaardwaarde van gemiddelde gebruikt. Tip Als de gegevens die u op uitschieters onderzoekt aanzienlijk scheef verdeeld zijn, kan het gebruik van de mediaan resultaten opleveren die representatiever zijn voor het merendeel van de gegevens. |
Retourneert
HCL-dataframe.
Voorbeelden
Transactiebedragen identificeren die ongebruikelijk zijn
U wilt transactiebedragen identificeren die ongebruikelijk zijn in een volledig dataframe van debiteuren.
U besluit de grenzen voor uitschieters op 3 keer de standaardafwijking van de kolom Hoeveelheid in te stellen. De test retourneert 16 uitschieters in het dataframe van 772 rijen.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3, method = "mean")
U herhaalt de test, maar verhoogt de standaarddeviatiefactor naar 3,5. Het testen retourneert nu slechts 6 uitschieters omdat de grenzen voor uitschieters verder verwijderd zijn van het middelpunt van de waarden in de kolom Hoeveelheid.
outliers_ar = accounts_receivable.outliers(keys = None, on = "Amount", distance = 3.5, method = "mean")
Identificeer transactiebedragen die ongebruikelijk zijn voor elke klant
Voor elke klant in een dataframe van debiteuren wilt u transactiebedragen identificeren die afwijken van het normale patroon.
U besluit de grenzen voor uitschieters vast te stellen op 3 keer de standaardafwijking van elke groep transacties van een klant.
outliers_customer_ar = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "mean")
De test retourneert 7 uitschieters. Het gemiddelde en de standaarddeviatie worden gerapporteerd voor de groep transacties van elke klant:
groepnummer | Klantnr | Hoeveelheid | gemiddelde | stdev | afstand |
---|---|---|---|---|---|
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 |
Hoe uitschieters worden geïdentificeerd voor klant 262001
Klant 262001 heeft 101 transacties in het dataframe van debiteuren, en twee daarvan worden als uitschieters gerapporteerd omdat ze de uitschietergrenzen voor die klant overschrijden:
Uitschieter | Ondergrens | Bovengrens | Uitschieter |
---|---|---|---|
(2.044,82) | (1.878,51) | 2.756,13 | 3.567,34 |
Hoe afwijkende grenzen worden berekend voor klant 262001
De grenzen voor uitschieters zijn het gemiddelde van alle 262001 klanttransacties, plus of min het opgegeven veelvoud van de standaardafwijking van de transacties:
gemiddelde van alle klant 262001 transacties | 438,81 |
Gespecificeerd veelvoud van de standaardafwijking | 3 |
Standaardafwijking van de transacties | 772,44 |
438.81 ± (3 * 772.44) = 438.81 ± 2,317.32 = (1.878,51) (ondergrens) = 2.756,13 (bovengrens) |
Gebruik het gemiddelde om transactiebedragen te identificeren die ongebruikelijk zijn voor elke klant
U gebruikt de mediaan in plaats van het gemiddelde om dezelfde uitbijtertest uit te voeren als in het bovenstaande voorbeeld.
outliers_customer_ar_median = accounts_receivable.outliers(keys = ["CustNum"], on = "Amount", distance = 3, method = "median")
De test retourneert 10 uitschieters in plaats van de 7 die in de vorige test worden geretourneerd. Afhankelijk van de aard van de gegevens kunnen mediaan en gemiddelde enigszins verschillende resultaten opleveren:
groepnummer | Klantnr | Hoeveelheid | mediaan | stdev | afstand |
---|---|---|---|---|---|
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 |
Hoe uitschietergrenzen worden berekend voor elke klant
De grenzen voor uitschieters zijn de mediaan van de transacties van elke klant, plus of min het opgegeven veelvoud van de standaarddeviatie van de transacties.
Bijvoorbeeld: voor klant 262001: 450,67 ± (3 * 772,44)
Opmerkingen
Alle kolommen in het invoer-dataframe worden automatisch opgenomen in het uitvoer-dataframe. Kolommen die niet rechtstreeks bij de berekening van uitschieters betrokken zijn, worden in het uitvoer-dataframe uiterst rechts geplaatst.