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