Как рассчитать абсолютное медианное отклонение в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *