Comment calculer les scores Z en Python
En statistiques, un score z nous indique à combien d’écarts types une valeur se trouve par rapport à la moyenne . Nous utilisons la formule suivante pour calculer un z-score :
z = (X – μ) / σ
où:
- X est une valeur de données brutes unique
- μ est la moyenne de la population
- σ est l’écart type de la population
Ce didacticiel explique comment calculer les scores z pour les valeurs de données brutes en Python.
Comment calculer les scores Z en Python
Nous pouvons calculer les z-scores en Python en utilisant scipy.stats.zscore , qui utilise la syntaxe suivante :
scipy.stats.zscore(a, axis=0, ddof=0, nan_policy=’propagate’)
où:
- a : un objet de type tableau contenant des données
- axis : l’axe le long duquel calculer les scores z. La valeur par défaut est 0.
- ddof : correction des degrés de liberté dans le calcul de l’écart type. La valeur par défaut est 0.
- nan_policy : comment gérer lorsque l’entrée contient nan. La valeur par défaut est propager, ce qui renvoie nan. ‘raise’ génère une erreur et ‘omit’ effectue des calculs en ignorant les valeurs nan.
Les exemples suivants illustrent comment utiliser cette fonction pour calculer les scores z pour les tableaux numpy unidimensionnels, les tableaux numpy multidimensionnels et les Pandas DataFrames.
Tableaux unidimensionnels Numpy
Étape 1 : Importez les modules.
import pandas as pd import numpy as np import scipy.stats as stats
Étape 2 : Créez un tableau de valeurs.
data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])
Étape 3 : Calculez les scores z pour chaque valeur du tableau.
stats.zscore(data)
[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]
Chaque score z nous indique à combien d’écarts types une valeur individuelle se trouve par rapport à la moyenne. Par exemple:
- La première valeur de « 6 » dans le tableau est 1,394 écarts-types en dessous de la moyenne.
- La cinquième valeur de « 13 » dans le tableau est à 0 écart type de la moyenne, c’est-à-dire qu’elle est égale à la moyenne.
- La dernière valeur de « 22 » dans le tableau est de 1,793 écarts-types au-dessus de la moyenne.
Tableaux multidimensionnels Numpy
Si nous avons un tableau multidimensionnel, nous pouvons utiliser le paramètre axis pour spécifier que nous voulons calculer chaque score z par rapport à son propre tableau. Par exemple, supposons que nous ayons le tableau multidimensionnel suivant :
data = np.array([[5, 6, 7, 7, 8], [8, 8, 8, 9, 9], [2, 2, 4, 4, 5]])
Nous pouvons utiliser la syntaxe suivante pour calculer les scores z pour chaque tableau :
stats.zscore(data, axis=1) [[-1.569 -0.588 0.392 0.392 1.373] [-0.816 -0.816 -0.816 1.225 1.225] [-1.167 -1.167 0.5 0.5 1.333]]
Les scores z pour chaque valeur individuelle sont affichés par rapport au tableau dans lequel ils se trouvent. Par exemple :
- La première valeur de « 5 » dans le premier tableau est de 1,159 écarts types en dessous de la moyenne de son tableau.
- La première valeur de « 8 » dans le deuxième tableau est de 0,816 écart-type en dessous de la moyenne de son tableau.
- La première valeur de « 2 » dans le troisième tableau est 1,167 écarts types en dessous de la moyenne de son tableau.
Cadres de données Pandas
Supposons que nous ayons à la place un Pandas DataFrame :
data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C']) data A B C 0 8 0 9 1 4 0 7 2 9 6 8 3 1 8 1 4 8 0 8
Nous pouvons utiliser la fonction apply pour calculer le z-score des valeurs individuelles par colonne :
data.apply(stats.zscore) A B C 0 0.659380 -0.802955 0.836080 1 -0.659380 -0.802955 0.139347 2 0.989071 0.917663 0.487713 3 -1.648451 1.491202 -1.950852 4 0.659380 -0.802955 0.487713
Les scores z pour chaque valeur individuelle sont affichés par rapport à la colonne dans laquelle ils se trouvent. Par exemple :
- La première valeur de « 8 » dans la première colonne est de 0,659 écart-type au-dessus de la valeur moyenne de sa colonne.
- La première valeur « 0 » dans la deuxième colonne est inférieure de 0,803 écart-type à la valeur moyenne de sa colonne.
- La première valeur de « 9 » dans la troisième colonne est de 0,836 écart-type au-dessus de la valeur moyenne de sa colonne.
Ressources additionnelles:
Comment calculer les scores Z dans Excel
Comment calculer les scores Z dans SPSS
Comment calculer les scores Z sur une calculatrice TI-84