Как рассчитать среднее абсолютное отклонение в 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 для одного столбца в кадре данных pandas:

#make this example reproducible
np.random.seed (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 для нескольких столбцов в кадре данных pandas:

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

A 0.000000
B 2.965204
C 2.965204
dtype: float64

Среднее абсолютное отклонение равно 0 для столбца A, 2,965204 для столбца B и 2,965204 для столбца C.

Дополнительные ресурсы

Как рассчитать MAPE в Python
Как рассчитать SMAPE в Python
Как рассчитать RMSE в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.