You need to enable JavaScript to run this app. 如何结合Python与统计公式计算总体均值置信值 验证95%置信区间覆盖率
优惠活动
大模型
产品
解决方案
定价
更多

如何结合Python与统计公式计算总体均值置信值 验证95%置信区间覆盖率

基于现有代码的置信区间覆盖率验证实现
  • 首先修正个小细节:你当前写的std_dev = np.std (s, axis=1)默认用ddof=0计算有偏的样本标准差,因为单组样本量仅25属于小样本,构造置信区间得用无偏估计,修改为std_dev = np.std(s, axis=1, ddof=1)才能匹配统计公式的要求,不然算出来的区间会偏窄,影响结果准确性。
  • 确定95%置信区间的临界值:当使用样本标准差代替总体标准差构造区间时,需要用t分布计算双侧临界值。针对25个样本的分组,自由度为25-1=24,对应95%置信水平的临界值固定为2.0639,不需要逐组重复计算。
  • 逐组计算区间边界:按照置信区间公式,每组的上下界为 样本均值 ± 临界值 * (样本标准差 / sqrt(25))。
  • 覆盖性判断:对每一组生成的置信区间,检查是否满足 区间下界 ≤ 真实总体均值mu=0 ≤ 区间上界,满足则记为覆盖成功。
  • 统计结果:将所有覆盖成功的组数求和后除以总组数10万,得到实际覆盖率,验证其是否接近95%的理论值。

可直接运行的完整代码

import numpy as np
from scipy import stats

# 基础参数(对应你已写的逻辑)
mu, sigma = 0, 1
n_total_group = 100000
n_per_group = 25

# 生成模拟数据集
s = np.random.normal(mu, sigma, size=[n_total_group, n_per_group])

# 逐组计算统计量
m = np.mean(s, axis=1)
std_dev = np.std(s, axis=1, ddof=1)  # 修正ddof参数,计算无偏样本标准差

# 计算95%置信水平对应的t分布临界值
df = n_per_group - 1
t_critical = stats.t.ppf(q=0.975, df=df)

# 逐组计算置信区间上下界
margin_of_error = t_critical * std_dev / np.sqrt(n_per_group)
ci_lower = m - margin_of_error
ci_upper = m + margin_of_error

# 统计覆盖率
cover_success = np.sum((ci_lower <= mu) & (ci_upper >= mu))
cover_rate = cover_success / n_total_group

print(f"实际95%置信区间覆盖率:{cover_rate:.2%}")

注:运行得到的覆盖率会在95%附近存在小幅随机波动(通常在94.5%~95.5%区间),属于抽样过程的正常误差,完全符合置信区间的统计规律。如果课程要求使用已知总体sigma的z临界值(即1.96)构造区间,只需把代码中获取t_critical的部分替换为t_critical = stats.norm.ppf(q=0.975)即可,对应结果同样会趋近95%。

内容的提问来源于stack exchange,提问作者Jeanny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 00:36:07