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
  • key_column</span> de sleutelkolom of -kolommen die gebruikt moeten worden voor het groeperen van de gegevens in het dataframe

    Voor elke groep wordt een standaardafwijking berekend voor de numerieke waarden van de groep in numeric_column. De groepsstandaardafwijking wordt gebruikt als basis voor het identificeren van uitschieters binnen de groep.

    Als u groepeert op meer dan één kolom, maakt u geneste groepen. De volgorde van nesten volgt de volgorde waarin u de kolommen opgeeft.

    Belangrijkste kolommen bevinden zich uiterst links in het uitvoergegevensframe.

    Opmerking

    De methode outliers() sorteert het dataframe automatisch op de sleutelkolommen voordat uitschieters worden geïdentificeerd.

  • Geen de gegevens zijn niet gegroepeerd en uitschieters worden geïdentificeerd voor numeric_column als geheel

    Er wordt een standaardafwijking berekend voor numeric_column als geheel. De standaardafwijking van de kolom wordt gebruikt als basis voor het identificeren van uitschieters in de kolom.

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 uitschieters

afstand = 2

bepaalt, voor numeric_column als geheel, of voor elke sleutelkolomgroep:

  • een bovenste uitschietgrens van 2 standaardafwijkingen groter dan het gemiddelde of de mediaan

    gemiddelde/mediaan + (2 * SD)

  • een onderste uitschietgrens van 2 standaardafwijkingen kleiner dan het gemiddelde of de mediaan

    gemiddelde/mediaan – (2 * SD)

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).

  • mean bereken het rekenkundig gemiddelde van de gegeven waarden
  • median bereken de mediaan van de waarden

Het middelpunt wordt berekend voor een van beide:

  • de numerieke waarden voor elke sleutelkolomgroep
  • de numerieke kolom als geheel

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.