Hoe het interkwartielbereik in python te berekenen


Het interkwartielbereik , vaak „IQR“ genoemd, is een manier om de verdeling van de middelste 50% van een dataset te meten. Het wordt berekend als het verschil tussen het eerste kwartiel* (het 25e percentiel) en het derde kwartiel (het 75e percentiel) van een dataset.

Gelukkig is het eenvoudig om het interkwartielbereik van een dataset in Python te berekenen met behulp van de functie numpy.percentile() .

Deze tutorial toont verschillende voorbeelden van praktisch gebruik van deze functie.

Voorbeeld 1: interkwartielbereik van een tabel

De volgende code laat zien hoe u het interkwartielbereik van waarden in één tabel kunt berekenen:

 import numpy as np

#define array of data
data = np.array([14, 19, 20, 22, 24, 26, 27, 30, 30, 31, 36, 38, 44, 47])

#calculate interquartile range 
q3, q1 = np. percentile (data, [75,25])
iqr = q3 - q1

#display interquartile range 
iqr

12.25

De interkwartielafstand van deze dataset blijkt 12,25 te zijn. Dit is de verdeling van de middelste 50% van de waarden in deze dataset.

Voorbeeld 2: Interkwartielbereik van een dataframekolom

De volgende code laat zien hoe u het interkwartielbereik voor een enkele kolom in een dataframe kunt berekenen:

 import numpy as np
import pandas as pd

#create data frame
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#calculate interquartile range of values in the 'points' column
q75, q25 = np. percentile (df['points'], [75,25])
iqr = q75 - q25

#display interquartile range 
iqr

5.75

Het interkwartielbereik van de waarden in de puntenkolom blijkt 5,75 te zijn.

Voorbeeld 3: Interkwartielbereik van meerdere dataframekolommen

De volgende code laat zien hoe u het interkwartielbereik van meerdere kolommen in een dataframe tegelijkertijd kunt berekenen:

 import numpy as np
import pandas as pd

#create data frame
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#define function to calculate interquartile range
def find_iqr(x):
  return np. subtract (*np. percentile (x, [75, 25]))

#calculate IQR for 'rating' and 'points' columns
df[[' rating ', ' points ']]. apply (find_iqr)

rating 6.75
points 5.75
dtype:float64

#calculate IQR for all columns
df. apply (find_iqr)

rating 6.75
points 5.75
assists 2.50
rebounds 3.75
dtype:float64

Opmerking: we gebruiken de functie pandas.DataFrame.apply() om de IQR voor meerdere kolommen in het bovenstaande dataframe te berekenen.

Aanvullende bronnen

Wordt de interkwartielafstand (IQR) beïnvloed door uitschieters?
Hoe het interkwartielbereik (IQR) in Excel te berekenen
Interkwartielafstandscalculator

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert