Fonction SciPy stats.zscore

Lakshay Kapoor 30 janvier 2023
  1. La fonction scipy.stats.zscore
  2. Calcul du z-score d’un tableau unidimensionnel en Python
  3. Calcul du z-score pour un tableau multidimensionnel en Python
  4. Calcul du z-score pour un Pandas Dataframe en Python
Fonction SciPy stats.zscore

z-score est une méthode statistique qui aide à calculer combien de valeurs l’écart type est éloigné d’une valeur particulière de la valeur moyenne. Le z-score est calculé à l’aide de la formule suivante.

z = (X – μ) / σ

Dans lequel,

  • X est une valeur particulière des données
  • μ est la valeur moyenne
  • σ est l’écart type

Ce tutoriel montrera comment calculer la valeur z-score de n’importe quelle donnée en Python à l’aide de la bibliothèque SciPy.

La fonction scipy.stats.zscore

La fonction scipy.stats.zscore de la bibliothèque SciPy permet de calculer le z-score relatif des données brutes d’entrée données ainsi que la moyenne et l’écart type des données. Il est défini comme scipy.stats.zscore(a, axis, ddof, nan_policy).

Voici les paramètres de la fonction scipy.stats.zscore.

a (tableau) Un objet de type tableau des données d’entrée brutes.
axis (int) Il définit l’axe le long duquel la fonction calcule la valeur z-score. La valeur par défaut est 0, c’est-à-dire que la fonction calcule sur l’ensemble du tableau.
ddof (int) Il définit la correction du degré de liberté dans l’ensemble du calcul de l’écart type.
nan_policy Ce paramètre décide de la façon de gérer les valeurs NaN dans les données d’entrée. Il y a trois paramètres de décision dans le paramètre, propagate, raise, omit. propagate renvoie simplement la valeur NaN, raise renvoie une erreur et omit ignore simplement les valeurs NaN et la fonction continue le calcul. Ces paramètres de décision sont définis entre guillemets simples ''. De plus, les valeurs NaN n’affectent jamais la valeur z-score qui est calculée pour les autres valeurs présentes dans les données d’entrée.

Tous les paramètres sauf le paramètre a (array) sont facultatifs. Cela signifie qu’il n’est pas nécessaire de les définir à chaque fois lors de l’utilisation de la fonction scipy.stats.zscore.

Maintenant, utilisons la fonction scipy.stats.zscore sur un tableau unidimensionnel, un tableau multidimensionnel, et un Dataframe Pandas.

Calcul du z-score d’un tableau unidimensionnel en Python

import numpy as np
import scipy.stats as stats

input_data = np.array([5, 10, 20, 35, 25, 22, 19, 19, 50, 45, 62])

stats.zscore(input_data)

Production :

array([-1.3916106 , -1.09379511, -0.49816411,  0.39528239, -0.20034861,
       -0.37903791, -0.55772721, -0.55772721,  1.28872889,  0.99091339,
        2.00348608])

Notez que chaque valeur de z-score indique à combien de valeurs d’écart type sa valeur correspondante est éloignée de la valeur moyenne. Ici, le signe négatif représente que cette valeur est de plusieurs écarts-types en dessous de la valeur moyenne, et le signe positif représente que cette valeur est de plusieurs écarts-types au-dessus de la valeur moyenne. Si une valeur z-score s’avère être 0, alors cette valeur est 0 valeurs d’écart type loin de la valeur moyenne.

Calcul du z-score pour un tableau multidimensionnel en Python

import numpy as np
import scipy.stats as stats

data = np.array([[5, 10, 20, 35], [25, 22, 19, 19], [50, 45, 62, 28], [24, 45, 15, 30]])

stats.zscore(input_data)

Production :

array([-1.3916106 , -1.09379511, -0.49816411,  0.39528239, -0.20034861,
       -0.37903791, -0.55772721, -0.55772721,  1.28872889,  0.99091339,
        2.00348608])

Calcul du z-score pour un Pandas Dataframe en Python

Pour cela, nous utiliserons la fonction randint() de la bibliothèque NumPy. Cette fonction est utilisée pour générer des nombres d’échantillons aléatoires et les stocker sous la forme d’un tableau NumPy. Après avoir créé le tableau NumPy, nous utiliserons ce tableau comme Pandas Dataframe.

import pandas as pd
import numpy as np
import scipy.stats as stats

input_data = pd.DataFrame(
    np.random.randint(0, 30, size=(4, 4)), columns=["W", "X", "Y", "Z"]
)
print(input_data)
    W   X   Y   Z
0   7   9   2  15
1  11  23  15  28
2  28  11  25   2
3  11  19  14  15
input_data.apply(stats.zscore)

Production :

          W	        X	        Y	        Z
0	-0.894534	-1.135815	-1.471534	 0.000000
1	-0.400998	 1.310556	 0.122628	 1.414214
2	 1.696529	-0.786334	 1.348907	-1.414214
3	-0.400998	 0.611593	 0.000000	 0.000000

Notez que la fonction apply() de la bibliothèque Pandas est utilisée pour calculer la valeur z-score pour chaque valeur dans la trame de données donnée. Cette fonction est utilisée pour appliquer une fonction spécifique définie comme argument de fonction de la fonction apply() à chaque valeur de la série Pandas ou de la trame de données.

Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Article connexe - SciPy Stats