首页 > 解决方案 > 将 statistics.stdev 值转换为 np.std 值

问题描述

有没有办法手动将statistics.stdev输出的值转换为np.std输出的值?我知道一个取总体的标准差,另一个取样本的标准差。

statistics.stdev([10, 8, 2]) = 4.163331998932266 np.std([10, 8, 2]) = 3.39934634239519

标签: pythonnumpystatistics

解决方案


不同之处在于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

推荐阅读