我想计算 MAD(中位数绝对偏差),其定义为
MAD = median(|x_i - mean(x)|)
为
x
数字列表:x = list(range(0, 10)) + [1000]
然而,使用
numpy
、pandas
和手动实现的结果有很大差异:from scipy import stats
import pandas as pd
import numpy as np
print(stats.median_absolute_deviation(x, scale=1)) # prints 3.0
print(pd.Series(x).mad()) # prints 164.54
print(np.median(np.absolute(x - np.mean(x)))) # prints 91.0
有什么问题吗?
np.median(np.absolute(x - np.median(x)))
。而第一个公式也是错误的。 - eregon