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

NaamBeschrijving
keys = ["key_column", "...n"] | Geen
  • key_columnde sleutelkolom of -kolommen die moeten worden gebruikt 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.

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

  • gemiddeldebereken het rekenkundig gemiddelde van de gegeven waarden
  • mediaanbereken 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:

groepnummerKlantnrHoeveelheidgemiddeldestdevafstand
0650034954,64833,831015,583
12620013567,34438,81772,443
1262001(2.044,82)438,81772,443
2376005(931,55)484,57411,183
35016575549,19441,141332,803
48110023409,82672,10634,203
59250073393,87906,16736,483

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:

UitschieterOndergrensBovengrensUitschieter
(2.044,82)(1.878,51)2756,133567,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 transacties438,81
Gespecificeerd veelvoud van de standaardafwijking3
Standaardafwijking van de transacties772,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:

groepnummerKlantnrHoeveelheidmediaanstdevafstand
0650034954,64663,681015,583
12620013567,34450,67772,443
1262001(2.044,82)450,67772,443
2376005(931,55)517,16411,183
35016574426,14146,801332,803
35016575549,19146,801332,803
48110023409,82624,53634,203
59250072972,78717,88736,483
59250073030,71717,88736,483
59250073393,87717,88736,483

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.