Как рассчитать абсолютное медианное отклонение в python
Медианное абсолютное отклонение измеряет распределение наблюдений в наборе данных.
Это особенно полезная мера, поскольку на нее меньше влияют выбросы, чем на другие меры дисперсии, такие как стандартное отклонение и дисперсия.
Формула для расчета абсолютного медианного отклонения, часто называемого сокращенно MAD, выглядит следующим образом:
MAD = медиана (|x i – x m |)
Золото:
- x i : i-е значение набора данных
- x m : медианное значение в наборе данных.
В следующих примерах показано, как вычислить медианное абсолютное отклонение в Python с помощью функции mad statsmodels .
Пример 1. Вычисление MAD для таблицы
Следующий код показывает, как вычислить медианное абсолютное отклонение для одного массива NumPy в 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
Среднее абсолютное отклонение для набора данных оказывается 11,1195 .
Важно отметить, что формула, используемая для расчета MAD, рассчитывает робастную оценку стандартного отклонения при условии нормального распределения путем масштабирования результата с коэффициентом примерно 0,67.
Чтобы избежать использования этого коэффициента масштабирования, просто установите c = 1 следующим образом:
#calculate MAD without scaling factor robust. mad (data, c=1) 7.5
Пример 2. Вычисление MAD для DataFrame
Следующий код показывает, как вычислить MAD для одного столбца в DataFrame 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
Абсолютное медианное отклонение для столбца B оказывается равным 2,965204 .
Мы можем использовать аналогичный синтаксис для расчета MAD для нескольких столбцов в DataFrame pandas:
#calculate MAD for all columns
data[[' A ',' B ',' C ']]. apply (robust. mad )
At 0.000000
B 2.965204
C 2.965204
dtype:float64
Абсолютное медианное отклонение составляет 0 для столбца A, 2,965204 для столбца B и 2,965204 для столбца C.
Дополнительные ресурсы
Как рассчитать MAPE в Python
Как рассчитать SMAPE в Python
Как рассчитать RMSE в Python