Hoe de absolute mediaanafwijking in python te berekenen


De mediaan absolute afwijking meet de verdeling van waarnemingen in een dataset.

Dit is een bijzonder nuttige maatstaf omdat deze minder wordt beïnvloed door uitbijters dan andere spreidingsmaatstaven zoals standaarddeviatie en variantie.

De formule voor het berekenen van de absolute mediaanafwijking, vaak afgekort als MAD, is:

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

Goud:

  • x i : de i- de waarde van de dataset
  • x m : de mediaanwaarde in de gegevensset

De volgende voorbeelden laten zien hoe u de mediaan absolute afwijking in Python kunt berekenen met behulp van de gekke functie statsmodels .

Voorbeeld 1: Bereken de MAD voor een tafel

De volgende code laat zien hoe u de mediaan absolute afwijking voor een enkele NumPy-array in Python kunt berekenen:

 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

De mediaan absolute afwijking voor de dataset blijkt 11,1195 te zijn.

Het is belangrijk op te merken dat de formule die wordt gebruikt om de MAD te berekenen een robuuste schatting van de standaardafwijking berekent, uitgaande van een normale verdeling, door het resultaat te schalen met een factor van ongeveer 0,67.

Om het gebruik van deze schaalfactor te vermijden, stelt u eenvoudigweg c = 1 als volgt in:

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

7.5

Voorbeeld 2: Bereken MAD voor een DataFrame

De volgende code laat zien hoe u MAD berekent voor een enkele kolom in een Panda DataFrame:

 #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

De absolute mediaanafwijking voor kolom B blijkt 2,965204 te zijn.

We kunnen een vergelijkbare syntaxis gebruiken om MAD te berekenen voor meerdere kolommen in het panda’s DataFrame:

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

At 0.000000
B 2.965204
C 2.965204
dtype:float64

De absolute mediaanafwijking is 0 voor kolom A, 2,965204 voor kolom B en 2,965204 voor kolom C.

Aanvullende bronnen

Hoe MAPE in Python te berekenen
Hoe SMAPE in Python te berekenen
Hoe RMSE in Python te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert