news 2026/2/16 13:21:03

人工智能之数学基础 概率论与统计:第四章 统计量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
人工智能之数学基础 概率论与统计:第四章 统计量

人工智能之数学基础 概率论与统计

第四章 统计量----公式关注公众号


文章目录

  • 人工智能之数学基础 概率论与统计
  • 前言
  • 一、统计推断基础
    • 1. 总体 vs 样本
    • 2. 统计量(Statistic)
    • 3. 抽样分布(Sampling Distribution)
  • 二、1. 置信区间(Confidence Interval, CI)
    • ✅ 核心思想
    • 📌 构造步骤(以总体均值为例)
      • 情况1:总体方差已知(或大样本)
      • 情况2:总体方差未知(小样本,且总体正态)
    • 💻 Python 实现:均值的置信区间
    • 🔁 模拟验证:置信区间的覆盖率
  • 三、2. 假设检验(Hypothesis Testing)
    • ✅ 核心思想
      • 📌 基本步骤
      • 📊 两类错误
      • 🧪 常见检验类型
    • 💻 Python 实现:单样本 t 检验
    • 💻 两样本 t 检验:A/B 测试
    • 💻 卡方检验:分类变量独立性
  • 四、置信区间 vs 假设检验的关系
  • 五、常见误区与最佳实践
  • 六、进阶:使用 `statsmodels` 进行回归中的假设检验
    • 七、总结
  • 后续
  • 资料关注

前言

在获得样本数据后,我们常需对总体参数做出推断置信区间(Confidence Interval)假设检验(Hypothesis Testing)是统计推断的两大支柱。本文将系统讲解其原理、步骤、常见误区,并提供完整的Python(SciPy / statsmodels)代码实现与可视化


一、统计推断基础

1. 总体 vs 样本

  • 总体(Population):研究对象的全体(如全国成年男性身高)
  • 样本(Sample):从总体中抽取的部分观测(如 1000 名男性身高)

2. 统计量(Statistic)

样本的函数,不含未知参数,用于估计或检验。
例如:样本均值 $ \bar{X} $、样本方差 $ S^2 $

3. 抽样分布(Sampling Distribution)

统计量的概率分布(如 $ \bar{X} $ 的分布)。
中心极限定理(CLT)保证:大样本下 $ \bar{X} \approx \mathcal{N}(\mu, \sigma^2/n) $


二、1. 置信区间(Confidence Interval, CI)

✅ 核心思想

用一个区间来估计未知参数,并给出该区间包含真值的“可信程度”。

形式:$ [\hat{\theta}_L, \hat{\theta}_U] $,置信水平 $ 1 - \alpha $(如 95%)

❗ 重要理解:
“95% 置信” ≠ “参数有 95% 概率落在该区间”(参数是固定值!)
而是:重复抽样 100 次,约有 95 个区间会包含真值


📌 构造步骤(以总体均值为例)

情况1:总体方差已知(或大样本)

  • 统计量:$ Z = \frac{\bar{X} - \mu}{\sigma / \sqrt{n}} \sim \mathcal{N}(0,1) $

  • 95% CI:
    X ˉ ± z α / 2 ⋅ σ n \bar{X} \pm z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}}Xˉ±zα/2nσ

    其中 $ z_{0.025} \approx 1.96 $

情况2:总体方差未知(小样本,且总体正态)

  • 统计量: $T = \frac{\bar{X} - \mu}{S / \sqrt{n}} \sim t_{n-1} $
  • 95% CI:
    X ˉ ± t α / 2 , n − 1 ⋅ S n \bar{X} \pm t_{\alpha/2, n-1} \cdot \frac{S}{\sqrt{n}}Xˉ±tα/2,n1nS

💻 Python 实现:均值的置信区间

importnumpyasnpimportscipy.statsasstatsimportmatplotlib.pyplotasplt# 模拟数据:小样本(n=20),总体 ~ N(50, 10²)np.random.seed(42)true_mu,true_sigma=50,10sample=np.random.normal(true_mu,true_sigma,size=20)n=len(sample)sample_mean=np.mean(sample)sample_std=np.std(sample,ddof=1)# 无偏样本标准差# 95% 置信区间(t 分布,因 σ 未知且 n 小)alpha=0.05df=n-1t_critical=stats.t.ppf(1-alpha/2,df)margin_error=t_critical*(sample_std/np.sqrt(n))ci_lower=sample_mean-margin_error ci_upper=sample_mean+margin_errorprint(f"样本均值:{sample_mean:.2f}")print(f"95% 置信区间: [{ci_lower:.2f},{ci_upper:.2f}]")print(f"真实 μ ={true_mu}{'包含'ifci_lower<=true_mu<=ci_upperelse'不包含'}")# 可视化plt.errorbar(0,sample_mean,yerr=margin_error,fmt='o',capsize=5,label='95% CI')plt.axhline(true_mu,color='r',linestyle='--',label=f'真实 μ ={true_mu}')plt.xticks([])plt.ylabel('均值')plt.title('样本均值的 95% 置信区间')plt.legend()plt.grid(True)plt.show()

🔁 模拟验证:置信区间的覆盖率

defsimulate_ci_coverage(mu=50,sigma=10,n=20,alpha=0.05,n_sim=1000):covered=0for_inrange(n_sim):sample=np.random.normal(mu,sigma,n)mean=sample.mean()std=sample.std(ddof=1)t_crit=stats.t.ppf(1-alpha/2,n-1)me=t_crit*std/np.sqrt(n)ifmean-me<=mu<=mean+me:covered+=1returncovered/n_sim coverage=simulate_ci_coverage()print(f"模拟 1000 次,95% CI 的实际覆盖率:{coverage:.3f}(应接近 0.95)")

三、2. 假设检验(Hypothesis Testing)

✅ 核心思想

基于样本证据,判断是否拒绝关于总体的某个假设。

📌 基本步骤

  1. 提出假设

    • 原假设 $ H_0 $:默认成立(如“新药无效”)
    • 备择假设 $ H_1 $:希望证明的结论(如“新药有效”)
  2. 选择检验统计量(如 t 统计量、z 统计量)

  3. 计算 p 值

    在 $ H_0 $ 成立下,观察到当前样本(或更极端)的概率。

  4. 决策

    • 若 $ p \leq \alpha $(显著性水平,如 0.05),拒绝H 0 H_0H0
    • 否则,不拒绝 $ H_0 $

⚠️ 注意:

  • “不拒绝” ≠ “接受 $H_0 $”
  • p 值不是 $ H_0 $ 为真的概率!

📊 两类错误

$ H_0 $ 为真$H_0 $ 为假
拒绝 $ H_0 $第 I 类错误(α)正确(1 - β,功效)
不拒绝$H_0 $正确第 II 类错误(β)

🧪 常见检验类型

场景检验方法Python 函数
单样本均值 vs 已知值t 检验stats.ttest_1samp
两独立样本均值比较独立 t 检验stats.ttest_ind
配对样本(前后测)配对 t 检验stats.ttest_rel
分类变量关联性卡方检验stats.chi2_contingency
正态性检验Shapiro-Wilkstats.shapiro

💻 Python 实现:单样本 t 检验

问题:某厂声称电池平均续航为 100 小时。测试 25 块电池,数据如下,能否质疑该说法?

# 模拟测试数据np.random.seed(0)battery_life=np.random.normal(97,8,size=25)# 真实均值 97 < 100# 假设检验mu0=100# H0: μ = 100t_stat,p_value=stats.ttest_1samp(battery_life,mu0)print(f"样本均值:{battery_life.mean():.2f}")print(f"t 统计量:{t_stat:.3f}")print(f"p 值:{p_value:.4f}")alpha=0.05ifp_value<alpha:print(f"在 α={alpha}水平下,拒绝 H0:电池续航显著低于 100 小时")else:print(f"在 α={alpha}水平下,不拒绝 H0")# 可视化 t 分布与 p 值df=len(battery_life)-1x=np.linspace(-4,4,400)t_dist=stats.t.pdf(x,df)plt.figure(figsize=(8,4))plt.plot(x,t_dist,'b-',label='t 分布 (df=24)')plt.axvline(t_stat,color='r',linestyle='--',label=f't ={t_stat:.2f}')# 阴影 p 值区域(双侧)x_fill=np.linspace(t_stat,4,100)ift_stat>0elsenp.linspace(-4,t_stat,10)plt.fill_between(x_fill,stats.t.pdf(x_fill,df),color='red',alpha=0.3,label=f'p 值 ={p_value:.3f}')plt.xlabel('t 值');plt.ylabel('密度')plt.title('单样本 t 检验:p 值可视化')plt.legend();plt.grid(True)plt.show()

💻 两样本 t 检验:A/B 测试

场景:比较两个网页版本的用户停留时间。

# 模拟 A/B 测试数据np.random.seed(1)group_A=np.random.normal(120,30,100)# 均值 120 秒group_B=np.random.normal(130,30,100)# 均值 130 秒# 独立 t 检验(假设方差相等)t_stat,p_value=stats.ttest_ind(group_A,group_B,equal_var=True)print(f"A 组均值:{group_A.mean():.1f}, B 组均值:{group_B.mean():.1f}")print(f"t ={t_stat:.3f}, p ={p_value:.4f}")ifp_value<0.05:print("B 版本显著优于 A 版本 (p < 0.05)")else:print("无显著差异")# 箱线图可视化plt.boxplot([group_A,group_B],labels=['A','B'])plt.ylabel('停留时间 (秒)')plt.title('A/B 测试:用户停留时间')plt.grid(True)plt.show()

💻 卡方检验:分类变量独立性

问题:性别与产品偏好是否相关?

# 列联表:行=性别,列=偏好observed=np.array([[60,40],# 男性:喜欢/不喜欢[30,70]])# 女性:喜欢/不喜欢chi2,p,dof,expected=stats.chi2_contingency(observed)print("观测频数:\n",observed)print("期望频数:\n",expected)print(f"χ² ={chi2:.2f}, p ={p:.4f}")ifp<0.05:print("性别与产品偏好显著相关")else:print("无显著关联")

四、置信区间 vs 假设检验的关系

二者本质相通!
对于双侧检验 $ H_0: \mu = \mu_0 $ vs $ H_1: \mu \ne \mu_0 $:

拒绝 $ H_0 $ 当且仅当 $ \mu_0 $ 不在 $ 1-\alpha $ 置信区间内

# 验证:用之前的电池数据mu0=100in_ci=(ci_lower<=mu0<=ci_upper)reject_h0=(p_value<0.05)print(f"μ0={mu0}是否在 95% CI 内?{in_ci}")print(f"是否拒绝 H0?{reject_h0}")print(f"二者一致?{in_ci==(notreject_h0)}")# 应为 True

五、常见误区与最佳实践

误区正确认知
“p = 0.051 和 p = 0.049 差别很大”p 值是连续的,0.05 是人为阈值
“不显著 = 无差异”可能是样本量不足(功效低)
“置信区间包含 0 ⇒ 无效应”需结合效应量(effect size)判断实际意义
“p 值越小,效应越大”p 值受样本量和效应量共同影响

最佳实践

  • 报告效应量(如 Cohen’s d)和置信区间,而非仅 p 值;
  • 预先设定显著性水平 $ \alpha $;
  • 考虑统计功效(Power Analysis)以确定所需样本量。

六、进阶:使用statsmodels进行回归中的假设检验

importstatsmodels.apiassm# 生成数据np.random.seed(0)X=np.random.randn(100,1)y=2*X.ravel()+np.random.randn(100)*0.5# 添加截距X=sm.add_constant(X)# 拟合线性回归model=sm.OLS(y,X).fit()print(model.summary())

输出中:

  • coef:参数估计值
  • P>|t|:该系数是否显著非零(H₀: β=0)
  • [0.025, 0.975]:95% 置信区间

七、总结

方法目的输出关键概念
置信区间估计参数范围区间 [L, U]置信水平、边际误差
假设检验判断假设是否成立p 值、拒绝/不拒绝显著性水平、两类错误

💡现代统计建议

  • 优先报告置信区间(提供更多信息);
  • 结合效应量判断实际意义;
  • 避免“p 值崇拜”,重视实验设计与数据质量

后续

python过渡项目部分代码已经上传至gitee,后续会逐步更新。

资料关注

公众号:咚咚王
gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/15 17:50:18

28nm以下工艺PMIC设计雷区:LOD、WPE、HKMG如何悄悄毁掉你的LDO?

一、引言&#xff1a;先进工艺下LDO的隐形可靠性危机随着消费电子、物联网设备对能效比要求的持续提升&#xff0c;电源管理集成电路&#xff08;PMIC&#xff09;正加速向28nm及以下HKMG&#xff08;高k介质/金属栅极&#xff09;、FinFET工艺迁移。这些先进工艺在带来芯片面积…

作者头像 李华
网站建设 2026/2/5 6:26:36

Abaqus水力压裂模拟:基于Cohesive单元与XFEM的方法研究

abaqus水力压裂 1 基于Cohesive单元的二维水力压裂模拟 2基于Cohesive单元的三维水力压裂模拟 3水力裂缝与天然裂缝相交模拟-Cohesive单元法 4裂缝发育地层的水力压裂模拟-Cohesive单元法 5基于XFEM的水力裂缝转向模拟 6基于XFEM的水平井多段压裂裂缝的缝间干扰问题研究水力…

作者头像 李华
网站建设 2026/2/14 4:07:32

计算机Java毕设实战-基于springboot的足球训练营系统的设计与实现设计与实现基于SpringBoot的青训足球综合运营平台设计与实现 【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华