当前版本的statsmodels具有
mad在
statsmodels.robust:
>>> import numpy as np>>> from statsmodels import robust>>> a = np.matrix( [... [ 80, 76, 77, 78, 79, 81, 76, 77, 79, 84, 75, 79, 76, 78 ],... [ 66, 69, 76, 72, 79, 77, 74, 77, 71, 79, 74, 66, 67, 73 ]... ], dtype=float )>>> robust.mad(a, axis=1)array([ 2.22390333, 5.18910776])
请注意,默认情况下,通过按比例因子缩放结果来计算正态分布,从而计算标准偏差的鲁棒估计;来自
help:
Signature: robust.mad(a, c=0.67448975019608171, axis=0, center=<function median at 0x10ba6e5f0>)
中的版本
R进行了类似的标准化。如果您不想这样做,显然只需设置一下即可
c=1。
(之前的注释中提到了此
statsmodels.robust.scale实现。实现位于
statsmodels/robust/scale.py(请参阅github),但该
robust包不会导出
scale,而是
scale.py显式导出公共功能。)



