MatLab mad() 与 SciPy.Stats median_abs_deviation() 的区别
MatLab mad() vs SciPy.Stats median_abs_deviation() differences
我正在将一些 MatLab 代码转换为 Python,但无法解决我得到的结果不同的原因。
在 MatLab 中,输入 x = [1, 2, 4, 3, 7, 2, 1, 3, 2, 1]
上的 mad
函数产生 1.32
的结果。然而,当在SciPy.Stats
中使用equiv函数时,即median_abs_deviation
,我得到了不同的结果1.0
。
我的代码,正好是:
Matlab:
x = [1, 2, 4, 3, 7, 2, 1, 3, 2, 1];
mdat = mad(x)
Python:
from scipy import stats
x = np.array([1, 2, 4, 3, 7, 2, 1, 3, 2, 1])
print(stats.median_abs_deviation(x))
Matlab 中的默认设置是计算均值 绝对偏差。如果要中位数绝对偏差,那么命令就是mad(x,1)
.
如果您对计算 Python 中的平均绝对偏差感兴趣,请参阅 this post。
我正在将一些 MatLab 代码转换为 Python,但无法解决我得到的结果不同的原因。
在 MatLab 中,输入 x = [1, 2, 4, 3, 7, 2, 1, 3, 2, 1]
上的 mad
函数产生 1.32
的结果。然而,当在SciPy.Stats
中使用equiv函数时,即median_abs_deviation
,我得到了不同的结果1.0
。
我的代码,正好是:
Matlab:
x = [1, 2, 4, 3, 7, 2, 1, 3, 2, 1];
mdat = mad(x)
Python:
from scipy import stats
x = np.array([1, 2, 4, 3, 7, 2, 1, 3, 2, 1])
print(stats.median_abs_deviation(x))
Matlab 中的默认设置是计算均值 绝对偏差。如果要中位数绝对偏差,那么命令就是mad(x,1)
.
如果您对计算 Python 中的平均绝对偏差感兴趣,请参阅 this post。