总体均值的置信区间用来估计均值本身。单个未来观测值的预测区间还必须考虑这个新观测值自身的变异。在相同的简单模型和相同的置信水平下,后者更宽。即使两个区间的中心相同,这种区别也很重要。
你在问哪一个问题?
| 问题 | 区间 |
|---|---|
| 总体均值是多少? | 均值的置信区间 |
| 一个独立的新观测值可能落在哪里? | 单个观测值的预测区间 |
| 若干个未来观测值的均值会在哪里? | 另一类预测问题,需要指定未来样本的大小 |
NIST 关于估计平均响应的讨论和关于单个响应预测的讨论在回归背景下解释了这一区别。下面的例子有意采用更简单的独立正态样本模型,而不是拟合回归。
一个原创的合成样本
使用十个虚构的数值,单位任意:8, 9, 9, 10, 10, 10, 11, 11, 12, 10。它们只是用于说明的数字,不是真实过程的测量值。它们的均值是 10,样本标准差约为 1.154701。
在这个计算示例中,假设各个观测值和未来的那个值,都是来自同一个不变的正态分布的独立抽样,该分布的均值和方差未知。这十个虚构数值并不能证明这些假设成立。真实的时间序列、成组数据、不断变化的过程或选择效应,都需要使用合适的其他模型。
计算两个区间
取 n = 10,双侧 95% 的学生 t 分布临界值(自由度 9)为 t ≈ 2.262157:
mean confidence interval:
10 ± 2.262157 × 1.154701 / sqrt(10)
≈ [9.1740, 10.8260]
one-observation prediction interval:
10 ± 2.262157 × 1.154701 × sqrt(1 + 1/10)
≈ [7.2604, 12.7396]
预测区间的平方根里多出来的 1,代表新观测值自身的变异。更多的信息可以缩小对均值的不确定性,但不会让单个未来值变得和均值一样。NIST 的预测限参考页给出了对应的独立样本公式,以及向未来平均值的扩展。
复现这些算术
下载仅用标准库的 Python 示例。临界值是直接给出的,并没有假装它是从这些数据中估计出来的。
from math import sqrt
from statistics import mean, stdev
x = [8, 9, 9, 10, 10, 10, 11, 11, 12, 10]
n, centre, s = len(x), mean(x), stdev(x)
t = 2.2621571627409915 # 0.975 quantile, 9 degrees of freedom
ci = t * s / sqrt(n)
pi = t * s * sqrt(1 + 1/n)
print(tuple(round(v, 4) for v in (centre-ci, centre+ci)))
print(tuple(round(v, 4) for v in (centre-pi, centre+pi)))
如何解读,以及常见错误
对于置信区间的方法,95% 指的是在其假设成立时,反复抽样的长期覆盖率。它不是说有 95% 的单个观测值会落在均值的区间内。对于预测区间,覆盖率针对的是指定模型下一个独立的未来值,并不保证每一个下一次的值都会落在区间内。
在回归中,计算还取决于预测变量的取值和拟合的模型。不要把这个简单样本的公式直接套到回归图上,也不要把它外推到尚未观测过的运行范围。两种区间都不会自动包含所有系统误差的来源。
关于变异性与均值不确定性之间的根本区别,请参阅标准差、标准误和置信区间。关于容易误导的汇总比较,请参阅用原创数据集讲解辛普森悖论。
