Comment calculer l’intervalle interquartile en Python



L’ intervalle interquartile , souvent appelé « IQR », est un moyen de mesurer la répartition des 50 % intermédiaires d’un ensemble de données. Il est calculé comme la différence entre le premier quartile* (le 25e centile) et le troisième quartile (le 75e centile) d’un ensemble de données.

Heureusement, il est facile de calculer l’intervalle interquartile d’un ensemble de données en Python à l’aide de la fonction numpy.percentile() .

Ce tutoriel montre plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : intervalle interquartile d’un tableau

Le code suivant montre comment calculer la plage interquartile de valeurs dans un seul tableau :

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

L’intervalle interquartile de cet ensemble de données s’avère être de 12,25 . Il s’agit de la répartition des 50 % intermédiaires des valeurs de cet ensemble de données.

Exemple 2 : intervalle interquartile d’une colonne de bloc de données

Le code suivant montre comment calculer l’intervalle interquartile d’une seule colonne dans un bloc de données :

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

L’intervalle interquartile des valeurs dans la colonne des points s’avère être de 5,75 .

Exemple 3 : Plage interquartile de plusieurs colonnes de blocs de données

Le code suivant montre comment calculer simultanément l’intervalle interquartile de plusieurs colonnes dans un bloc de données :

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

Remarque : Nous utilisons la fonction pandas.DataFrame.apply() pour calculer l’IQR pour plusieurs colonnes du bloc de données ci-dessus.

Ressources additionnelles

L’intervalle interquartile (IQR) est-il affecté par les valeurs aberrantes ?
Comment calculer l’intervalle interquartile (IQR) dans Excel
Calculateur d’intervalle interquartile

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *