Cómo calcular las puntuaciones Z en Python

Actualizado por ultima vez el 7 de mayo de 2021, por .

En estadística, una puntuación z nos dice a cuántas desviaciones estándar se encuentra un valor de la media . Usamos la siguiente fórmula para calcular una puntuación z:

z = (X – μ) / σ

dónde:

  • X es un único valor de datos sin procesar
  • μ es la media de la población
  • σ es la desviación estándar de la población

Este tutorial explica cómo calcular las puntuaciones z para los valores de datos sin procesar en Python.

Cómo calcular las puntuaciones Z en Python

Podemos calcular los puntajes z en Python usando scipy.stats.zscore , que usa la siguiente sintaxis:

scipy.stats.zscore (a, eje = 0, ddof = 0, nan_policy = ‘propagar’)

dónde:

  • a : una matriz como un objeto que contiene datos
  • eje : el eje a lo largo del cual calcular las puntuaciones z. El valor predeterminado es 0.
  • ddof : corrección de los grados de libertad en el cálculo de la desviación estándar. El valor predeterminado es 0.
  • nan_policy : cómo manejar cuando la entrada contiene nan. El valor predeterminado es propagar, que devuelve nan. ‘subir’ arroja un error y ‘omitir’ realiza cálculos ignorando los valores nan.

Los siguientes ejemplos ilustran cómo utilizar esta función para calcular las puntuaciones z para matrices numpy unidimensionales, matrices numpy multidimensionales y Pandas DataFrames.

Numerosos arreglos unidimensionales

Paso 1: importar módulos.

importar pandas como pd 
importar numpy como np
 importar scipy.stats como estadísticas

Paso 2: crea una matriz de valores.

datos = np.array ([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])

Paso 3: Calcule las puntuaciones z para cada valor de la matriz.

stats.zscore (datos)

[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]

Cada puntuación z nos dice a cuántas desviaciones estándar se encuentra un valor individual de la media. Por ejemplo:

  • El primer valor de «6» en la matriz es 1.394 desviaciones estándar por debajo de la media.
  • El quinto valor de «13» en la matriz es 0 desviaciones estándar de la media, es decir, es igual a la media.
  • El último valor de «22» en la matriz es 1.793 desviaciones estándar por encima de la media.

Numerosos arreglos multidimensionales

Si tenemos una matriz multidimensional, podemos usar el parámetro del eje para especificar que queremos calcular cada puntaje z en relación con su propia matriz. Por ejemplo, supongamos que tenemos la siguiente matriz multidimensional:

datos = np.array ([[5, 6, 7, 7, 8],
                 [8, 8, 8, 9, 9],
                 [2, 2, 4, 4, 5]])

Podemos usar la siguiente sintaxis para calcular las puntuaciones z para cada matriz:

stats.zscore (datos, eje = 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]]

Las puntuaciones z para cada valor individual se muestran en relación con la matriz en la que se encuentran. Por ejemplo:

  • El primer valor de «5» en la primera matriz es 1.159 desviaciones estándar por debajo de la media de su matriz.
  • El primer valor de «8» en la segunda matriz es .816 desviaciones estándar por debajo de la media de su matriz.
  • El primer valor de «2» en la tercera matriz es 1.167 desviaciones estándar por debajo de la media de su matriz.

Pandas DataFrames

Supongamos que en su lugar tenemos un Pandas DataFrame:

datos = pd.DataFrame (np.random.randint (0, 10, tamaño = (5, 3)), columnas = ['A', 'B', 'C'])
datos

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

Podemos usar la función de aplicar para calcular el puntaje z de valores individuales por columna:

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

Las puntuaciones z para cada valor individual se muestran en relación con la columna en la que se encuentran. Por ejemplo:

  • El primer valor de «8» en la primera columna es 0,659 desviaciones estándar por encima del valor medio de su columna.
  • El primer valor de «0» en la segunda columna es .803 desviaciones estándar por debajo del valor medio de su columna.
  • El primer valor de «9» en la tercera columna es .836 desviaciones estándar por encima del valor medio de su columna.

Recursos adicionales:

Cómo calcular las puntuaciones Z en Excel
Cómo calcular las puntuaciones Z en SPSS
Cómo calcular las puntuaciones Z en una calculadora TI-84

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, es posible que desee asignar colores a los puntos en un gráfico de ggplot2 en función de alguna…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!