NumPy函数
np.std采用一个可选参数
ddof:“自由度增量”。默认情况下是
0。对其进行设置
1以获取MATLAB结果:
>>> np.std([1,3,4,6], ddof=1)2.0816659994661326
要添加更多上下文,在计算方差(标准偏差为平方根)时,通常将其除以我们拥有的值的数量。
但是,如果我们
N从较大的分布中选择元素的随机样本并计算方差,则除以
N可能导致实际方差的低估。为了解决这个问题,我们可以将除以(自由度)的数字降低为小于
N(通常为
N-1)的数字。该
ddof参数允许我们按指定的数量更改除数。
除非另有说明,否则NumPy将计算方差(,除以)的 有偏
估计量。如果要使用整个分布(而不是从较大的分布中随机选择的值的子集),这就是您想要的。如果给定参数,则NumPy除以。
ddof=0``N``ddof``N- ddof
MATLAB的默认行为
std是通过除以校正样本方差的偏差
N-1。这消除了标准偏差中的某些(但可能不是全部)偏差。如果您在较大分布的随机样本上使用该函数,则可能正是您想要的。
@hbaderts的不错回答给出了进一步的数学细节。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)