Среднее абсолютное отклонение измеряет разброс наблюдений в наборе данных.
Это особенно полезная метрика, поскольку на нее меньше влияют выбросы, чем на другие меры дисперсии , такие как стандартное отклонение и дисперсия.
Формула для расчета медианного абсолютного отклонения, часто обозначаемая аббревиатурой 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