栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么numpy std()与matlab std()给出不同的结果?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么numpy std()与matlab std()给出不同的结果?

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的不错回答给出了进一步的数学细节。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638372.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号