python - 将 statistics.stdev 值转换为 np.std 值
问题描述
有没有办法手动将statistics.stdev输出的值转换为np.std输出的值?我知道一个取总体的标准差,另一个取样本的标准差。
statistics.stdev([10, 8, 2]) = 4.163331998932266 np.std([10, 8, 2]) = 3.39934634239519
解决方案
不同之处在于statistics.stdev()
返回方差的平方根,通过将与平均值的平方偏差之和除以整个样本大小来计算n
,而np.std()
返回通过将与平均值的平方偏差之和除以n - 1
(到有一个无偏估计)。
因此,将标准差的一个估计值转换为另一个估计值的因素是 的平方根(n - 1) / n
:
import statistics
sample = [10, 8, 2]
n = len(sample)
statistics.stdev(sample) * ((n - 1) / n) ** 0.5
3.3993463423951904
推荐阅读
- git - Xcode 10.1 使用 ssh 密钥推送到 github
- mysql - Ruby on Rails 5.2 如何修复 root 用户的 mysql 访问被拒绝问题?
- angular - 如何在 Angular 4 中构建和部署选择性模块
- python - 基于键的两个字典列表的交集
- github-api - 我怎样才能得到任何号码的问题?
- java - 使用超类/子类引用 JAVA 引用新对象
- android - 如何从kotlin的地图中获取值?
- java - 将鼠标悬停在Java AWT中的按钮上时的手形光标
- machine-learning - 如何建立数以百万计的个性化模型
- android - 如何在 xyz 轴上旋转图像以及 android 中的手机传感器