Comment calculer l’écart médian absolu en Python



L’ écart absolu médian mesure la répartition des observations dans un ensemble de données.

Il s’agit d’une mesure particulièrement utile car elle est moins affectée par les valeurs aberrantes que d’autres mesures de dispersion telles que l’écart type et la variance.

La formule pour calculer l’écart médian absolu, souvent abrégé MAD, est la suivante :

MAD = médiane (|x i – x m |)

où:

  • x i : la ième valeur de l’ensemble de données
  • x m : La valeur médiane dans l’ensemble de données

Les exemples suivants montrent comment calculer l’écart absolu médian en Python en utilisant la fonction mad de statsmodels .

Exemple 1 : calculer le MAD pour un tableau

Le code suivant montre comment calculer l’écart absolu médian pour un seul tableau NumPy en Python :

import numpy as np
from statsmodels import robust

#define data
data = np.array([1, 4, 4, 7, 12, 13, 16, 19, 22, 24])

#calculate MAD
robust.mad(data)

11.1195

L’écart absolu médian pour l’ensemble de données s’avère être de 11,1195 .

Il est important de noter que la formule utilisée pour calculer MAD calcule une estimation robuste de l’écart type en supposant une distribution normale en mettant le résultat à l’échelle d’un facteur d’environ 0,67.

Pour éviter d’utiliser ce facteur d’échelle, définissez simplement c = 1 comme suit :

#calculate MAD without scaling factor
robust.mad(data, c=1)

7.5

Exemple 2 : calculer MAD pour un DataFrame

Le code suivant montre comment calculer MAD pour une seule colonne dans un DataFrame pandas :

#make this example reproducible
np.random.seed(1)

#create pandas DataFrame
data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])

#view DataFrame
data

        A	B	C
0	5	8	9
1	5	0	0
2	1	7	6
3	9	2	4
4	5	2	4

#calculate MAD for column B
data[['B']].apply(robust.mad)

B    2.965204
dtype: float64

L’écart médian absolu pour la colonne B s’avère être de 2,965204 .

Nous pouvons utiliser une syntaxe similaire pour calculer MAD pour plusieurs colonnes dans le DataFrame pandas :

#calculate MAD for all columns
data[['A', 'B', 'C']].apply(robust.mad)

A    0.000000
B    2.965204
C    2.965204
dtype: float64

L’écart médian absolu est de 0 pour la colonne A, de 2,965204 pour la colonne B et de 2,965204 pour la colonne C.

Ressources additionnelles

Comment calculer MAPE en Python
Comment calculer SMAPE en Python
Comment calculer le RMSE en Python

Ajouter un commentaire

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