为什么计算样本标准差时,除以 N-1 而不是 N

标准差 是度量数据集离散度的一个重要指标,但是,本篇讨论的不是标准差 的作用和意义,

而是标准差计算中的一个细节问题。

实际情况下,一般会接触到两种标准差:总体标准差 和样本标准差,其中样本标准差是最常用的。

1. 总体标准差

总体标准差 的计算公式: σ = 1 N ∑ i = 1 N ( x i − μ ) 2 \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} σ=N1∑i=1N(xi−μ)2

其中, N N N是总的数据个数, x i x_i xi表示每个数据,
μ \mu μ是所有数据的平均值,即: μ = 1 N ∑ i = 1 N x i \mu = \frac{1}{N} \sum_{i=1}^N x_i μ=N1∑i=1Nxi

从公式来看,总体标准差很好理解,目的就是度量数据集中的数据偏离平均值的情况。

2. 样本标准差

再来看样本标准差 公式: s = 1 N − 1 ∑ i = 1 N ( x i − x ˉ ) 2 s = \sqrt{\frac{1}{N-1} \sum_{i=1}^N (x_i - \bar{x})^2} s=N−11∑i=1N(xi−xˉ)2

其中, N N N是样本集的数据个数, x i x_i xi表示每个样本数据,
x ˉ \bar{x} xˉ是样本数据的平均值,即: x ˉ = 1 N ∑ i = 1 N x i \bar{x} = \frac{1}{N} \sum_{i=1}^N x_i xˉ=N1∑i=1Nxi

从公式可以看出,样本标准差 计算时,用的 1 N − 1 \frac{1}{N-1} N−11,而不是 1 N \frac{1}{N } N1。

3. 为什么除以 (N-1)

为了区分总体标准差中 的数据个数,下面用 N a l l N_{all} Nall表示总体标准差 中的数据个数,

用 N s a m p l e s N_{samples} Nsamples表示样本标准差中的数据个数。

实际的数据分析中,常用的分析指标是样本标准差 ,总体标准差 用的很少。

因为,总体数据量往往很庞大,而且新的数据不断产生,导致所谓的总体数据 也不断变化。

比如,对于民意调查结果,新闻内容,天气数据,股市交易等等,都是抽样做分析。

既然是抽样分析,那么,计算样本标准差时,是得不到整体数据的平均值 μ \mu μ的。

所以在样本标准差的计算公式中,我们用的是样本的平均值 x ˉ \bar{x} xˉ,而不是整体的平均值 μ \mu μ。

直观上来看,样本的平均值 x ˉ \bar{x} xˉ会要比整体的平均值 μ \mu μ更接近样本数据集中的数据,

所以,理论上 ∑ i = 1 N s a m p l e s ( x i − x ˉ ) 2 \sum_{i=1}^{N_{samples}} (x_i - \bar{x})^2 ∑i=1Nsamples(xi−xˉ)2要比 ∑ i = 1 N s a m p l e s ( x i − μ ) 2 \sum_{i=1}^{N_{samples}} (x_i - \mu)^2 ∑i=1Nsamples(xi−μ)2的值小一些。

因此, 1 N s a m p l e s ∑ i = 1 N s a m p l e s ( x i − x ˉ ) 2 \frac{1}{N_{samples}}\sum_{i=1}^{N_{samples}} (x_i - \bar{x})^2 Nsamples1∑i=1Nsamples(xi−xˉ)2也比 1 N s a m p l e s ∑ i = 1 N s a m p l e s ( x i − μ ) 2 \frac{1}{N_{samples}}\sum_{i=1}^{N_{samples}} (x_i - \mu)^2 Nsamples1∑i=1Nsamples(xi−μ)2的值要小。

为了调整这个偏差,让样本标准差 能够更接近总体的标准差 ,
样本标准差 公式中除以 N s a m p l e s − 1 N_{samples}-1 Nsamples−1而不是 N s a m p l e s N_{samples} Nsamples,

相当于调高了样本标准差的值,使之更接近**总体的标准差 **。

4. 补充

通过( N s a m p l e s − 1 N_{samples}-1 Nsamples−1)调节样本标准差 的过程也被称作贝塞尔校正 (Bessel's correction),

它的数学推导过程可以参考:贝塞尔校正

相关推荐
在所不辞兄10 分钟前
【零基础学智能仿真-69】综合项目——材料参数驱动的仿真研究
人工智能·深度学习·神经网络·算法·机器学习·1024程序员节
shelly聊外贸1 小时前
WhatsApp 聊天记录如何导出为 CSV?使用 Python 进行数据分析
开发语言·python·数据分析
第九序言T3 小时前
Python 数据处理进阶(二十二)用 Pandas 做一次完整的用户行为分析
开发语言·python·数据分析·pandas
第九序言T4 小时前
Python 数据处理进阶(二十一)相关性与分组对比:数据里藏着什么关系
大数据·人工智能·python·数据分析·pandas
Dovis(誓平步青云)5 小时前
拖动关键帧角色就抽动,动画编辑器怎样补齐中间状态
开发语言·前端·javascript·机器学习·编辑器
一水鉴天6 小时前
决策树、三支决策与随机森林:从精确值到能所双亡双活 20261030(元宝)
人工智能·机器学习
雨晨源码(同名B站)6 小时前
深度学习毕业设计选题推荐:基于YOLO11的交通标志检测系统设计与实现(Python+Django+Vue3+对接deepseek)
人工智能·python·深度学习·机器学习·django·课程设计
computersciencer6 小时前
应用贝叶斯公式:迟到了,那坐的是哪种交通工具呢?
算法·机器学习·概率论
fanruitian7 小时前
python 机器学习 交叉验证train_test_split 网格搜索GridSearchCV
开发语言·python·机器学习
三兔测序学社21 小时前
【零代码生信分析】RNA-seq中级分析8-差异基因集在L2S2网站进行【肿瘤药物】筛选分析
数据分析