我在哪里可以发现scipy疯狂(平均绝对偏差)?
似乎scipy提供了一种功能mad
来计算一组数字的平均绝对偏差:
http://projects.scipy.org/scipy/browser/trunk/scipy/stats/models/utils.py?rev=3473
但是,我在最新版本的scipy中找不到它。当然,可以从存储库中复制旧代码,但是我更喜欢使用scipy的版本。我在哪里可以找到它,或者它已经被替换或移除了?
-
当前版本的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
显式导出公共功能。)