Come calcolare la deviazione mediana assoluta in python


La deviazione assoluta mediana misura la distribuzione delle osservazioni in un set di dati.

Questa è una misura particolarmente utile perché è meno influenzata dai valori anomali rispetto ad altre misure di dispersione come la deviazione standard e la varianza.

La formula per calcolare la deviazione mediana assoluta, spesso abbreviata MAD, è:

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

Oro:

  • x i : l’i -esimo valore del set di dati
  • x m : il valore mediano nel set di dati

I seguenti esempi mostrano come calcolare la deviazione assoluta mediana in Python utilizzando la funzione mad statsmodels .

Esempio 1: calcolare il MAD per una tabella

Il codice seguente mostra come calcolare la deviazione assoluta mediana per un singolo array NumPy in 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

La deviazione assoluta mediana per il set di dati risulta essere 11.1195 .

È importante notare che la formula utilizzata per calcolare la MAD calcola una stima affidabile della deviazione standard presupponendo una distribuzione normale ridimensionando il risultato di un fattore di circa 0,67.

Per evitare di utilizzare questo fattore di scala, è sufficiente impostare c = 1 come segue:

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

7.5

Esempio 2: calcolare MAD per un DataFrame

Il codice seguente mostra come calcolare il MAD per una singola colonna in un DataFrame panda:

 #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

La deviazione mediana assoluta per la colonna B risulta essere 2.965204 .

Possiamo usare una sintassi simile per calcolare MAD per più colonne nel DataFrame panda:

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

At 0.000000
B 2.965204
C 2.965204
dtype:float64

La deviazione mediana assoluta è 0 per la colonna A, 2,965204 per la colonna B e 2,965204 per la colonna C.

Risorse addizionali

Come calcolare MAPE in Python
Come calcolare SMAPE in Python
Come calcolare l’RMSE in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *