如何在python中计算绝对中位数偏差


中值绝对偏差衡量数据集中观测值的分布。

这是一个特别有用的度量,因为与标准差和方差等其他离散度量相比,它受异常值的影响较小。

绝对中位偏差(通常缩写为 MAD)的计算公式为:

MAD = 中位数 (|x i – x m |)

金子:

  • x i数据集的第 i 个
  • x m数据集中的中值

以下示例展示了如何使用statsmodels mad函数在 Python 中计算中值绝对偏差。

示例 1:计算表的 MAD

以下代码展示了如何在 Python 中计算单个 NumPy 数组的中值绝对偏差:

 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:计算 DataFrame 的 MAD

以下代码显示了如何计算 pandas DataFrame 中单列的 MAD:

 #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

我们可以使用类似的语法来计算 pandas DataFrame 中多列的 MAD:

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

At 0.000000
B 2.965204
C 2.965204
dtype:float64

A 列的绝对中位偏差为0 ,B 列的绝对中位偏差为2.965204 ,C 列的绝对中位偏差为2.965204

其他资源

如何在Python中计算MAPE
如何在Python中计算SMAPE
如何用 Python 计算 RMSE

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注