第 7 章

置信区间

量化不确定性:用区间估计表达我们对总体参数的置信程度

01

核心概念

点估计 vs 区间估计

点估计用一个数值估计总体参数,如用样本均值 X̄ 估计总体均值 μ。但点估计没有告诉我们估计的可靠性——X̄ = 50 可能非常精确,也可能偏差很大。

区间估计给出一个范围,并附带置信水平,表达"我们有多大把握认为总体参数落在这个范围内"。

关键洞察

95% 置信区间不是说"总体参数有 95% 的概率落在这个区间内"(参数是固定常数,不是随机变量),而是说"如果我们重复抽样100次,大约有95次计算出的区间会包含真实参数"。

置信水平

置信水平(Confidence Level)1-α 表示区间包含总体参数的长期频率。常用 90%(α=0.10)、95%(α=0.05)、99%(α=0.01)。

置信水平越高,区间越宽。99% 置信区间比 95% 更"保守"——更可能包含真实值,但信息量更少。

正态总体均值区间(σ 已知)

当总体服从正态分布且 σ 已知时,利用 Z 统计量构建置信区间:

X̄ ± zα/2 · σ/√n

其中 zα/2 是标准正态分布的上 α/2 分位数。例如 95% 置信水平对应 z0.025 = 1.96。

t 分布与 σ 未知的情形

现实中 σ 通常未知,需用样本标准差 s 估计。此时标准化统计量服从 t 分布而非正态分布:

T = (X̄ - μ) / (s/√n) ~ t(n-1)

t 分布比正态分布更"扁平",尾部更厚,反映了用 s 估计 σ 带来的额外不确定性。当 n > 30 时,t 分布接近标准正态。

图 7.1:t 分布与标准正态分布对比

正态总体均值区间(σ 未知)

用 t 分布的分位数 tα/2, n-1 代替 zα/2

X̄ ± tα/2, n-1 · s/√n

比例置信区间

估计总体比例 p 时,样本比例 p̂ = X/n。当 np̂ ≥ 10 且 n(1-p̂) ≥ 10 时,可用正态近似:

p̂ ± zα/2 · √(p̂(1-p̂)/n)

样本量对区间宽度的影响

置信区间的宽度与 √n 成反比。要缩小一半宽度,样本量需增加为4倍。这再次体现了"边际收益递减"的规律。

02

计算方法

置信区间公式速查

参数条件置信区间公式
均值 μσ 已知X̄ ± zα/2 · σ/√n
均值 μσ 未知X̄ ± tα/2, n-1 · s/√n
比例 p大样本p̂ ± zα/2 · √(p̂(1-p̂)/n)

查 t 表示例

自由度 df = n - 1 = 15,置信水平 95%,查 t 表得 t0.025,15 = 2.131。相比 z0.025 = 1.96,t 分位数更大,区间更宽,体现了小样本的不确定性。

区间宽度与样本量

给定期望的区间半宽 E(Margin of Error),均值估计所需样本量:

n = (zα/2 · σ / E)²

若 σ 未知,可先进行小样本预实验估计 s,或使用保守估计。

03

工程应用

产品寿命置信区间

测试 20 台 LED 灯管的平均寿命为 5200 小时,样本标准差 300 小时。构建 95% 置信区间可告知客户:我们有 95% 的把握认为该型号的真实平均寿命在 [5059, 5341] 小时内。这比单纯报告"5200小时"更具信息量。

市场份额估计

调查 1000 名消费者,其中 23% 偏好某品牌。95% 置信区间为 23% ± 1.96×√(0.23×0.77/1000) = 23% ± 2.6%,即 [20.4%, 25.6%]。这帮助管理层判断市场定位是否达到 25% 的目标。

医学试验疗效区间

新药治疗组相比安慰剂组的血压平均降低 15 mmHg,95% CI 为 [8, 22]。区间不包含 0 表明疗效显著;若区间为 [-2, 32],则无法确认疗效,需扩大样本量。

工程参数标定

传感器标定实验中,重复测量 10 次得到输出电压均值 2.50 V,标准差 0.05 V。95% t 区间为 [2.46, 2.54] V。工程师据此设定仪表量程和报警阈值,避免将测量噪声误判为真实信号。

04

例题精讲

例题 7.1:均值置信区间(σ 已知)

某钢材抗拉强度已知服从正态分布,σ = 20 MPa。现抽取 25 根测试,平均抗拉强度 X̄ = 450 MPa。求 95% 置信区间。

解答

σ 已知,使用 Z 区间。z0.025 = 1.96

SE = σ/√n = 20/5 = 4 MPa

边际误差 E = 1.96 × 4 = 7.84 MPa

95% CI = [450 - 7.84, 450 + 7.84] = [442.16, 457.84] MPa

例题 7.2:均值置信区间(σ 未知)

某新型电池续航测试:n = 16,X̄ = 320 分钟,s = 24 分钟。假设总体近似正态,求 95% 置信区间。

解答

σ 未知,使用 t 区间。df = 16 - 1 = 15

查 t 表:t0.025,15 = 2.131

SE = s/√n = 24/4 = 6 分钟

边际误差 E = 2.131 × 6 = 12.79 分钟

95% CI = [320 - 12.79, 320 + 12.79] = [307.21, 332.79] 分钟

注意:若误用 z = 1.96,则 E = 11.76,区间偏窄,过于乐观。

例题 7.3:比例置信区间

在 500 名用户的 A/B 测试中,新界面获得 215 次点击。求点击率的 95% 置信区间。

解答

样本比例 p̂ = 215/500 = 0.43

验证:np̂ = 215 ≥ 10,n(1-p̂) = 285 ≥ 10,正态近似适用

SE = √(0.43×0.57/500) = √0.0004902 ≈ 0.0221

E = 1.96 × 0.0221 ≈ 0.0433

95% CI = [0.43 - 0.043, 0.43 + 0.043] = [0.387, 0.473]

即真实点击率有 95% 把握在 38.7% ~ 47.3% 之间。

例题 7.4:样本量规划

某工厂要估计产品平均重量,要求 95% 置信水平下区间半宽不超过 2 g。根据以往数据,σ ≈ 8 g。至少需要抽取多少件?

解答

n = (zα/2 · σ / E)² = (1.96 × 8 / 2)² = (7.84)² = 61.47

向上取整,至少需要 62 件

若要求更严格的 99% 置信(z = 2.576),则 n = (2.576×8/2)² = 106.2,需 107 件

05

MATLAB 实践

MATLAB 提供了 tinv、norminv 等函数用于分位数计算,也可直接用 ttest 输出置信区间。

MATLAB 代码:置信区间计算
% 例题 7.2:t 区间计算 data = [305, 312, 298, 330, 315, 308, 325, 318, ... 295, 340, 322, 310, 328, 317, 306, 331]; n = length(data); xbar = mean(data); s = std(data); df = n - 1; alpha = 0.05; t_crit = tinv(1 - alpha/2, df); % 双侧分位数 SE = s / sqrt(n); margin = t_crit * SE; CI_lower = xbar - margin; CI_upper = xbar + margin; fprintf('样本均值 = %.2f\n', xbar); fprintf('95%% CI = [%.2f, %.2f]\n', CI_lower, CI_upper); % 输出:95% CI = [307.21, 332.79] % 直接用 ttest 获取置信区间 [~, ~, ci] = ttest(data); fprintf('ttest 输出 CI = [%.2f, %.2f]\n', ci(1), ci(2));
MATLAB 代码:置信区间覆盖可视化
% 模拟多次抽样,观察置信区间的覆盖情况 mu_true = 50; sigma = 10; n = 30; n_experiments = 100; alpha = 0.05; z = norminv(1 - alpha/2); figure; hold on; covered = 0; for i = 1:n_experiments sample = normrnd(mu_true, sigma, n, 1); xbar = mean(sample); se = sigma / sqrt(n); ci_low = xbar - z*se; ci_high = xbar + z*se; is_covered = (ci_low <= mu_true) && (ci_high >= mu_true); if is_covered, covered = covered + 1; end c = is_covered * [0.18,0.55,0.49] + ~is_covered * [0.77,0.31,0.35]; plot([ci_low, ci_high], [i, i], 'Color', c, 'LineWidth', 1.5); end yline(mu_true, 'k--', 'LineWidth', 2); xlabel('数值'); ylabel('实验序号'); title(sprintf('100 次 95%% CI 模拟,覆盖率 = %d%%', covered)); grid on;
MATLAB 代码:不同置信水平的区间对比
% 展示置信水平对区间宽度的影响 xbar = 100; s = 15; n = 25; df = n - 1; confidence_levels = [0.90, 0.95, 0.99]; labels = {'90%', '95%', '99%'}; figure; hold on; for i = 1:length(confidence_levels) cl = confidence_levels(i); alpha = 1 - cl; t_crit = tinv(1 - alpha/2, df); margin = t_crit * s/sqrt(n); plot([xbar - margin, xbar + margin], [i, i], ... 'LineWidth', 4); text(xbar + margin + 1, i, labels{i}, ... 'VerticalAlignment', 'middle'); end plot(xbar, 2, 'ko', 'MarkerFaceColor', 'k'); xlabel('参数值'); ylabel('置信水平'); title('不同置信水平的区间宽度对比'); set(gca, 'YTick', []); grid on;
图 7.2:不同置信水平下的区间宽度示意
← 上一章:抽样与中心极限定理 下一章:假设检验 →