Como calcular o desvio mediano absoluto em python


O desvio absoluto mediano mede a distribuição das observações em um conjunto de dados.

Esta é uma medida particularmente útil porque é menos afetada por valores discrepantes do que outras medidas de dispersão, como desvio padrão e variância.

A fórmula para calcular o desvio mediano absoluto, muitas vezes abreviado como MAD, é:

MAD = mediana (|x i – x m |)

Ouro:

  • x i : o i- ésimo valor do conjunto de dados
  • x m : o valor mediano no conjunto de dados

Os exemplos a seguir mostram como calcular o desvio absoluto mediano em Python usando a função statsmodels mad .

Exemplo 1: Calcule o MAD para uma tabela

O código a seguir mostra como calcular o desvio absoluto mediano para um único array NumPy em 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

O desvio absoluto mediano para o conjunto de dados é 11,1195 .

É importante notar que a fórmula utilizada para calcular o MAD calcula uma estimativa robusta do desvio padrão assumindo uma distribuição normal , escalonando o resultado por um fator de aproximadamente 0,67.

Para evitar o uso deste fator de escala, simplesmente defina c = 1 como segue:

 #calculate MAD without scaling factor
robust. mad (data, c=1)

7.5

Exemplo 2: Calcular MAD para um DataFrame

O código a seguir mostra como calcular o MAD para uma única coluna em um DataFrame do pandas:

 #make this example reproducible
n.p. random . seeds (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

O desvio mediano absoluto para a coluna B é 2,965204 .

Podemos usar sintaxe semelhante para calcular MAD para múltiplas colunas no DataFrame do pandas:

 #calculate MAD for all columns
data[[' A ',' B ',' C ']]. apply (robust. mad )

At 0.000000
B 2.965204
C 2.965204
dtype:float64

O desvio mediano absoluto é 0 para a coluna A, 2,965204 para a coluna B e 2,965204 para a coluna C.

Recursos adicionais

Como calcular MAPE em Python
Como calcular SMAPE em Python
Como calcular RMSE em Python

Add a Comment

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