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