让我们来聊聊统计吧 - 软件质量的统计入门(No.11 置信区间与误差:这个结果能信到什么程度?)
Back to Top
为了覆盖更广泛的受众,这篇文章已从日语翻译而来。
您可以在这里找到原始版本。
引言
#在“让我们来聊聊统计吧”系列的第11期中,我们将从实务视角,介绍“置信区间”和“标准误差”等推断统计的基本概念,以及如何将它们应用于报告撰写和质量判断中。
在软件质量实践中,对于“结果能信到什么程度?”这一疑问,通过置信区间和 Z 分数对不确定性进行量化正变得越来越重要。
概率论与统计推断的区别:先打好基础
#虽然我们在第8回中也有提到,作为复习这里再写一遍。
要理解“置信区间”和“估计”,关键在于弄清“概率论”和“统计推断”之间的区别。
比较项目 | 概率论 | 统计推断 |
---|---|---|
范围 | 提供理论框架 | 实务数据分析 |
方法 | 构建数学模型和定律 | 从数据中提取见解并做出决策 |
数据处理 | 理论事件的概率(例:理论缺陷率) | 从实测数据估计总体(例:从测试数据估计缺陷率) |
概率论是“统计推断”的基础。
统计推断是利用概率论从“现实数据”中得出结论的工具。
理解了这一区别后,“如何从样本推断总体?”这一问题的全貌将一下子变得清晰起来。
平均值 ± ○○ 是什么意思?
#到目前为止,我们一直从质量数据中提取“平均值”“比例”等代表性指标,并试图据此了解整体情况。
这无疑就是“从有限的样本(标本)对整体(母体)进行估计”的行为。
这种“从样本解读总体”过程称为统计推断。
不过,你是否也有这样的疑问?
“那个平均值到底有多准确?”
“要是再测一次,不一定会得出相同的数值吧?”
统计推断必然伴随着误差。
“平均值 ± ○○”这一表达正是用来定量地说明该误差的大小。
比如──
如果写着“此缺陷率为 3.2 ± 0.4%”,
那么这个“±0.4”究竟意味着什么呢?
一句话来说,它表示的是误差。
不过,所谓“误差”并非模糊概念,而是通过统计学上定义的
标准误差(Standard Error) 或 置信区间宽度(Confidence Interval) 进行量化表示的。
也就是说,它以数值形式显示了“该估计值(3.2%)可能有多大幅度的波动”,即**“不确定性的程度”**。
● 什么是标准误差(Standard Error)?
#尽管样本均值会趋近于总体均值,但要定量测量其**“会波动多大?”**,就需要使用标准误差。
- σ:总体标准差(分布的离散程度)
- n:样本量
标准误差表示“均值误差的幅度”,随着样本量的增加,SE 会减小。
也就是说,数据越多,估计越精确。
为什么标准误差要用 而不是 去除以标准差?
标准误差表示“样本均值的波动幅度”。
当对多条数据求平均时,波动(即方差)会缩小至原来的 。
此时,标准差是方差的平方根,因此结果自然变为除以 。
也就是说:
- 方差(波动的平方) →
- 标准误差(波动的幅度) →
因此,通过“开平方”操作,分母变成 而不是 。
从标准误差公式 中也可看出,随着样本量 的增大,分母增大,
标准误差 (即均值波动幅度)就会减小。
“标准差”与“标准误差”有什么区别?
这两个术语虽然相似,但在用途和含义上完全不同。我们在此梳理如下:
- 标准差(Standard Deviation, SD):数据本身的离散程度(每个数据点距离均值有多远)
- 标准误差(Standard Error, SE):样本均值的波动幅度(均值有多稳定)
也就是说:
- 标准差 → 个体值的离散
- 标准误差 → 对“均值”这一估计结果的可靠性
这一区别也会影响到下次讨论的“假设检验”中的统计量(t 值或 Z 值)。
这里的理解对于把握检验的本质十分重要。
为了直观理解,我们通过下图比较在不同 值下“样本均值分布的扩散程度”。
下图展示了当 分别增至 5、10、30、100 时“样本均值分布的扩散程度”的对比。
- 当 时:分布宽且离散度大(标准误差大)
- 当 时:离散度仍较大,但相比 已开始集中
- 当 时:分布进一步变窄,十分接近正态分布形状(中心极限定理的效果)
- 当 时:分布狭窄且尖峰,离散度小(即标准误差小)
这样,“大量观测可使均值趋于稳定”这一特性,是置信区间宽度缩小的原因,非常重要。
置信区间(Confidence Interval)的含义
#例如:
“该缺陷率的 95% 置信区间为 3.2~4.8%”
这种情况下,人们往往会解读为“真实值有 95% 的概率落在此区间内”,
但准确来说,它的含义是:
“若使用此方法重新抽取样本并进行估计多次,
将有 95% 的此类区间包含真实值”
也就是说,置信区间仅表示**“估计的不确定性范围”**,
并不意味着“真实值以 95% 的概率落在某一个具体区间内”。
置信区间不是“概率区间”,而是基于“方法本身的可信度”所推导出的区间宽度。
比如,95% 置信区间的含义是“若重复使用此方法 100 次,其中 95 次得到的区间会包含真实值”。
最常用的是对应 Z 分数 的95% 置信区间。
● 使用 Z 分数计算置信区间的公式
#那么,“估计的不确定性范围(即置信区间)”究竟如何计算?
这时就要用到“Z 分数”了。
Z 分数是衡量**“样本均值偏离多少个标准误差”的指标,
并被广泛用作标准正态分布中的概率临界值**。
利用 Z 分数,置信区间计算公式如下:
- :样本均值
- :与置信度对应的 Z 分数(95% → 1.96、99% → 2.58 等)
- :标准误差(即均值的波动幅度)
该公式的结构就是**“估计值 ± 波动幅度”**。
例如:
- 某缺陷率的样本均值为 4.0%
- 标准误差为 0.5%
- 置信度 95%(Z 分数 = 1.96)
此时,置信区间为:
也就是 3.02%~4.98%。就这样可以用“均值 ± Z × 标准误差”来计算置信区间,那么如何解读这一计算结果(例如:3.02%~4.98%)呢?
接下来,确认一下置信区间的“解读方式”。
● 置信区间的“解读方式”
#“如果使用该方法进行 100 次调查,其中 95 次得到的区间(上例中的 3.02% ~ 4.98%)会包含真实缺陷率”,
这就是它的含义,并不是指真实值本身以 95% 的概率落在此区间内。
之所以不易理解,是因为人们容易将“概率”与“置信度”混为一谈。
这里的观点是“真实缺陷率(母参数)是唯一且确定的”。
通过估计得到的区间会因样本而有所波动,其中有 95% 的区间“恰好”包含真实值,这就是其结构。
也就是说──
置信区间的“区间”会变化(波动)
真实值不会变化(固定不变)
这是其前提。
※这一观点将在后文的“易被误解的要点”部分再次细述。
实务中的应用
#在具有统计意义的“估计”中,与单纯报告平均值不同,传达包含离散度和不确定性的信息非常重要。
● 软件质量示例
#- 在评审所需时间的平均值上添加 ±,作为“预测区间”
- 对测试成功率给出置信区间,在考虑离散度的基础上进行决策
例如,当我们说“此版本测试成功率为 91.3% ± 2.4%(95% 置信区间)”时,就可以这样看待:“最差情况下为 88.9%,最好情况下为 93.7%”。
● 可以选择置信区间的置信水平
#通常使用95% 置信区间,但可根据具体场景选择:
置信水平 | 使用场景 | 说明 |
---|---|---|
90% | 假设探索/初步评估阶段 | 以速度优先于精度 |
95% | 标准分析/报告 | 平衡良好,最常见 |
99% | 质量保证/安全性验证等场景 | 需要更谨慎决策的场合 |
● 实务要点
#- 不仅要标明“±多少”,还要说明这对应的是多少百分比的置信区间
- 在关键决策中可考虑99% 置信区间,根据情况进行调整至关重要
- 在业务场景中,用“最差情况下是……、最好情况下是……”这样的表述更易理解
易被误解的要点
#● 置信区间并非“真实值落入的概率”
#“置信区间”是指在多次重复同一调查时,预计有 95% 的调查结果所得到的区间会包含真实值的范围。
在古典(频率论)统计学中,真实值(如总体均值)是一个固定不变的值,前提是假定真实值必然存在于某处。
发生概率变化的是“估计量(如样本均值或置信区间)”。
置信区间的含义是“使用此方法重复调查时,得到的区间中有 XX% 会包含真实值”。
也就是说,“95% 置信区间”并不是“真实值有 95% 的概率落在此区间内”,而是声明“有 95% 的置信区间应当包含真实值”。
由于真实值始终固定不变,只有“包含”或“不包含”两种可能,并不认为真实值按照概率分布变化。
但是,理解为“95% 的概率真实值在区间内,也没什么大不了,对吧?”的想法也是可以理解的。
然而,这种误解有可能在实务或研究中导致严重的判断失误。
● 为什么这种误解很危险?
置信区间是为了“假定估计值会发生波动,因而设定一个 95% 的范围”而构建的。
单个置信区间只有“包含真实值”或“不包含真实值”这两种可能。
如果错误地认为“真实值有 95% 的概率落在此区间内”,
就会陷入一种**“错误的因果解读”**:仿佛“每个区间都是概率性地包含真实值或不包含”。
● 导致实务判断失误的例子
某开发团队比较了产品 A 与产品 B 的缺陷率。
结果,差值(A−B)的95% 置信区间为“1.2%~3.8%”。
此时,由于该置信区间不包含“0(无差异)”,
故在统计上判断“A 和 B 之间存在显著差异”。
● 常见的误解:
团队中有人这样说:
“真实差异很可能就在 1.2%~3.8% 之间吧,既然如此,A 明显更差,马上采取措施!”
→ 如此便错误地解读为“真实差异在该区间出现的概率是 95%”
(因为是 95% 置信区间,就觉得可以信赖)
● 然而,另一个团队再次调查后:
- 这次的 95% 置信区间为“−0.5%~+2.0%”(差异包含 0)
→ 判断结果为“不存在显著差异”。
→ 最初的判断可能只是恰好由于偏差所致。
● 问题出在哪?
该置信区间并非意味着“真实差异有 95% 的概率落在此区间内”,
而是意味着“若重复进行相同调查 100 次,其中 95 次所得到的区间会包含真实差异”。
也就是说:
- 单次获得的置信区间无保证包含真实差异
- 但人们却往往认为“这是几乎确定的结果”,
→ 从而做出如延迟发布或仅对产品 A 严格检测标准等过度决策
● 教训:
- 置信区间包含“不可避免的不确定性”,切勿过度信赖
- 应以“此方法的多次重复结果会有这样的波动”作为前提,进行判断
● 导向正确理解的替换说法:
- NG:“真实值落入的概率是 95%”
- OK:“若使用此方法多次重复,95% 的区间将包含真实值”
起初这听起来可能有些拗口,但请逐渐去习惯。
置信区间不是“概率论意义上的区间”,
而是基于置信度的估计结果范围。
正确理解这一点,可以帮助实现可复现的决策并避免过度自信。
顺便一提,在贝叶斯统计中,甚至会将真实值作为随机变量来处理。
真实值(参数)以具有不确定性的“先验分布(prior)”开始,
再根据数据(观测)更新为“后验分布(posterior)”。
因此,**在贝叶斯统计中,说“真实值有 95% 的概率落在此区间”**是正确的表述。
● “有意差”与“实务上有意义的差异”是两回事
#即使很小的差异在统计上可能显著,但在质量层面往往可以忽略。
即便在统计上说“存在显著差异”,也不一定代表“在实务上具有意义”。
例如以下情况:
假设将某应用的启动时间在方案 A 和方案 B 之间进行比较。
在收集了足够的数据并进行统计检验后,结果为:
- A 的平均启动时间:2.10 秒
- B 的平均启动时间:2.04 秒
差异为“0.06 秒”。由于样本量较大,该差异在统计上显著(p < 0.01)。
然而,在实务中,用户对“0.06 秒”的差异是无法察觉的。
因此,可判断无需因该差异而特别采用方案 B。
教训:
- “统计上显著” ≠ “具有实际意义的差异”
- 显著差异仅表示“非偶然性波动”
→“该差异是否重要”应结合现场判断、上下文和成本一起考虑
进一步来说:
- 若样本量足够大,“极小的差异”也会被判为显著
- 反之,即使差异很大,若样本量不足也可能“判为不显著”
→统计学是“工具”,要得出有意义的结论,务必与人为判断结合使用。
总结
#在本文中,我们基于置信区间、标准误差、Z 分数等推断统计的基本概念,
从实务角度解答了**“对该结果到底能信赖到何种程度?”**这一问题的判断方法。
要点
#-
什么是置信区间?
- 对一次估计而言,表示“存在多大不确定性”的区间
- 不等同于“真实值落入的概率为 95%”,而是“若重复使用此方法,95% 的区间将包含真实值”
-
什么是标准误差?
- 表示均值波动幅度的指标,数据量越大越小
- 注意公式
-
为何能够进行估计?
- “中心极限定理”→ 样本均值的分布趋向正态
- “大数定律”→ 样本均值趋近总体均值
-
如何解读置信区间与检验结果?
- 即便存在显著差异,也不一定具有实务上的意义
- 不可过度信赖,应作为“包含不确定性的判断”来对待
下期预告
#下期我们将讨论“假设检验”。
将介绍如何判断“存在差异”究竟是偶然还是确实的逻辑。
希望对您的数据分析工作有所帮助。