MATLAB和Python中计算样本方差的函数都是var,但是二者之间是有区别的。
在MATLAB中,计算方差采用的公式为$S^2 = \frac{\sum_{i=1}^{N} (X_i - \overline{X})^2}{N-1}$,该公式计算出的结果为总体方差$\sigma^2$的无偏估计。
而在Python中,直接采用var计算时采用的公式为
$S_n^2 = \frac{\sum_{i=1}^{N} (X_i - \overline{X})^2}{N}$,即样本的二阶中心矩;只有使用参数ddof = 1时才计算样本方差,计算结果才与MATLAB的var公式计算结果相同。使用方式如下:
In [31]: a = np.arange(1,10+1)
In [32]: var(a)
Out[32]: 8.25
In [33]: var(a,ddof = 1)
Out[33]: 9.1666666666666661
转载本文请联系原作者获取授权,同时请注明本文来自徐保磊科学网博客。
链接地址:http://blog.sciencenet.cn/blog-412206-612018.html
下一篇:关于Word中表格无法跨页断行的处理方式