Como calcular pontuações z em python


Nas estatísticas, uma pontuação z nos diz quantos desvios padrão um valor está da média . Usamos a seguinte fórmula para calcular uma pontuação z:

z = (X – μ) / σ

Ouro:

  • X é um único valor de dados brutos
  • μ é a média da população
  • σ é o desvio padrão da população

Este tutorial explica como calcular pontuações z para valores de dados brutos em Python.

Como calcular pontuações Z em Python

Podemos calcular pontuações z em Python usando scipy.stats.zscore , que usa a seguinte sintaxe:

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

Ouro:

  • a : um objeto do tipo array contendo dados
  • eixo : o eixo ao longo do qual calcular as pontuações z. O valor padrão é 0.
  • ddof : correção dos graus de liberdade no cálculo do desvio padrão. O valor padrão é 0.
  • nan_policy : como lidar quando a entrada contém nan. O padrão é propagar, que retorna nan. ‘raise’ gera um erro e ‘omit’ executa cálculos ignorando nan valores.

Os exemplos a seguir ilustram como usar esta função para calcular pontuações z para matrizes numpy unidimensionais, matrizes numpy multidimensionais e Pandas DataFrames.

Matrizes unidimensionais numpy

Etapa 1: importe os módulos.

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

Etapa 2: Crie uma tabela de valores.

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

Etapa 3: calcule as pontuações z para cada valor da tabela.

 stats.zscore(data)

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

Cada pontuação z nos diz quantos desvios padrão um valor individual está da média. Por exemplo:

  • O primeiro valor de “6” na tabela está 1,394 desvios padrão abaixo da média.
  • O quinto valor de “13” na tabela é 0 desvio padrão da média, ou seja, é igual à média.
  • O último valor de “22” na tabela está 1,793 desvios padrão acima da média.

Matrizes multidimensionais numpy

Se tivermos um array multidimensional, podemos usar o parâmetro axis para especificar que queremos calcular cada pontuação z em relação ao seu próprio array. Por exemplo, suponha que temos o seguinte array multidimensional:

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

Podemos usar a seguinte sintaxe para calcular pontuações z para cada tabela:

 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]]

As pontuações z para cada valor individual são exibidas em relação à tabela em que são encontradas. Por exemplo:

  • O primeiro valor de “5” na primeira tabela está 1,159 desvios padrão abaixo da média de sua tabela.
  • O primeiro valor de “8” na segunda tabela está 0,816 desvios padrão abaixo da média da sua tabela.
  • O primeiro valor de “2” na terceira tabela está 1,167 desvios padrão abaixo da média de sua tabela.

Quadros de dados do Pandas

Vamos supor que temos um DataFrame do Pandas:

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

ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

Podemos usar a função apply para calcular a pontuação z de valores individuais por coluna:

 data.apply(stats.zscore)

          ABC
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

As pontuações z para cada valor individual são exibidas em relação à coluna em que estão localizadas. Por exemplo:

  • O primeiro valor de “8” na primeira coluna é 0,659 desvios padrão acima do valor médio da sua coluna.
  • O primeiro valor “0” na segunda coluna é 0,803 desvios padrão inferior ao valor médio em sua coluna.
  • O primeiro valor de “9” na terceira coluna é 0,836 desvios padrão acima do valor médio da sua coluna.

Recursos adicionais:

Como calcular pontuações Z no Excel
Como calcular pontuações Z no SPSS
Como calcular pontuações Z em uma calculadora TI-84

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *