← 返回《数据科学的统计基础》
📑 查看全课大纲(第 19 / 41 节)

正态总体参数的假设检验(一)

约 44 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

正态总体参数的假设检验(一):单样本均值检验

小象实战讲义 · 数据科学的统计基础

在上一节学习了假设检验的基本思想后,我们面临一个实际问题:如何将理论应用于具体的统计推断?正态分布是数据科学中最常见、最重要的分布之一,许多统计方法都建立在数据服从正态分布的假设之上。本节我们将聚焦于单正态总体参数的假设检验,特别是总体均值的检验。学完本节,你将能够对一个正态总体的均值提出科学假设,并根据样本数据,利用U检验或t检验,判断是否有充分证据拒绝原假设,从而解决诸如“生产线是否正常”、“产品质量是否达标”等实际问题。

💡 核心导读

  • 检验的核心要素:一个完整的假设检验由检验统计量拒绝域构成,其目标是控制第一类错误(弃真)的概率。
  • 原假设的“被保护”地位:原假设通常代表“现状”或“无显著差异”,除非有充分证据,否则不予拒绝。我们通常说“不拒绝原假设”,而非“接受原假设”。
  • 单样本均值检验的两大场景:根据总体方差是否已知,分别采用U检验(Z检验)t检验
  • 假设的三种形式:双边检验(μμ0\mu \neq \mu_0)和两种单边检验(μ<μ0\mu < \mu_0μ>μ0\mu > \mu_0),它们决定了拒绝域的方向。
  • 显著性水平的选择:结论(拒绝与否)依赖于预先设定的显著性水平 α\alpha(如0.05),α\alpha 不同可能导致结论不同。

假设检验流程回顾与思想深化

在进入具体检验之前,我们首先巩固假设检验的基本流程与核心思想,这对理解后续所有检验都至关重要。

基本流程

  1. 提出假设:根据实际问题,建立原假设 H0H_0 和备择假设 H1H_1
  2. 构造检验统计量:找到一个样本统计量 T=T(X1,,Xn)T = T(X_1, \ldots, X_n),用于衡量数据与原假设的偏离程度。
  3. 确定统计量的分布在原假设 H0H_0 成立的条件下,推导出检验统计量 TT 的精确分布或渐近分布。这是整个检验的数学基础。
  4. 确定拒绝域:根据备择假设的方向,在 TT 的分布上划定一个区域 WW(拒绝域),使得当 TT 落入 WW 时,我们拒绝 H0H_0。区域 WW 的边界由显著性水平 α\alpha 决定,满足 PH0(TW)αP_{H_0}(T \in W) \leq \alpha
  5. 做出决策:将样本数据代入计算 TT 的观测值 tt。若 tWt \in W,则拒绝 H0H_0;否则,不拒绝 H0H_0

核心思想——“反证法”与“小概率事件”

  • 反证法:我们先“假定”原假设 H0H_0 成立。
  • 小概率事件:在原假设成立的假定下,检验统计量 TT 有一个已知分布。如果根据样本计算出的 tt 值,落在了这个分布中概率非常小(如 α=0.05\alpha = 0.05)的区域,这意味着在原假设成立的前提下,发生了一件“不太可能”的事情。
  • 做出推断:根据“小概率事件在一次试验中几乎不发生”的原则,我们更倾向于认为最初的假定(H0H_0 成立)是不合理的,从而拒绝 H0H_0。反之,如果 tt 值落在大概率区域,则没有充分证据反对 H0H_0,我们选择不拒绝它。

原假设的“被保护”地位:在许多实际问题中(如产品质量检验、新药有效性检验),原假设 H0H_0 常代表“没有效果”、“过程正常”、“符合标准”等现状或保守结论。除非样本数据提供强有力的、小概率的证据反对它,否则我们维持原假设。这类似于司法中的“无罪推定”:在没有确凿证据证明有罪之前,假定被告无罪。因此,我们通常说“不拒绝 H0H_0”,这比“接受 H0H_0”更为严谨,因为不拒绝可能只是由于证据不足,而非 H0H_0 一定为真。

两类错误与NP理论

  • 第一类错误(弃真)H0H_0 为真时拒绝了它,概率记为 α\alpha
  • 第二类错误(存伪)H0H_0 为假时没有拒绝它,概率记为 β\beta。 在样本量固定的情况下,α\alphaβ\beta 此消彼长。Fisher的显著性检验主要关注控制 α\alpha。而后续的Neyman-Pearson (NP) 理论则追求:在控制第一类错误 α\alpha 不超过某个水平的前提下,寻找使第二类错误 β\beta 最小(即检验功效最大)的检验方法。

单正态总体均值的假设检验

X1,X2,,XnX_1, X_2, \ldots, X_n 是来自正态总体 N(μ,σ2)N(\mu, \sigma^2) 的简单随机样本。我们感兴趣的参数是总体均值 μ\mu。待检验的假设通常围绕 μ\mu 与某个给定值 μ0\mu_0 的关系展开。

情形一:方差 σ2\sigma^2 已知

当总体方差 σ2\sigma^2 已知时,我们使用 U检验(或称Z检验)。检验统计量基于样本均值 Xˉ=1ni=1nXi\bar{X} = \frac{1}{n}\sum_{i=1}^n X_i。我们知道,XˉN(μ,σ2/n)\bar{X} \sim N(\mu, \sigma^2/n)。将其标准化,得到U统计量: U=Xˉμ0σ/nU = \frac{\bar{X} - \mu_0}{\sigma / \sqrt{n}} 在原假设 H0:μ=μ0H_0: \mu = \mu_0 成立的条件下,UN(0,1)U \sim N(0, 1),即服从标准正态分布。

下面针对三种常见的假设形式给出具体的检验方法。

1. 双边检验 H0:μ=μ0vs.H1:μμ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu \neq \mu_0

直观理解:如果 H1H_1 成立,即 μ\mu 不等于 μ0\mu_0,那么样本均值 Xˉ\bar{X} 作为 μ\mu 的估计,与 μ0\mu_0 的差距(绝对值)应该会比较大。因此,当 U|U| 很大时,我们倾向于拒绝 H0H_0

拒绝域的确定:我们需要控制第一类错误 PH0(U>c)=αP_{H_0}(|U| > c) = \alpha。由于 H0H_0UN(0,1)U \sim N(0,1),临界值 cc 应取标准正态分布的 1α/21-\alpha/2 分位数,记为 u1α/2u_{1-\alpha/2}。通常,α=0.05\alpha=0.05 时,u0.9751.96u_{0.975} \approx 1.96

检验结论

  • u>u1α/2|u| > u_{1-\alpha/2},则拒绝 H0H_0
  • uu1α/2|u| \leq u_{1-\alpha/2},则不拒绝 H0H_0

此检验称为水平为 α\alpha 的双边U检验

例题应用(糖厂包装机)

  • 问题:糖厂袋装糖标准质量为100克,已知标准差 σ=1.15\sigma = 1.15 克。随机抽检9袋,测得平均质量 xˉ=99.98\bar{x} = 99.98 克。问机器工作是否正常?(α=0.05\alpha=0.05
  • 假设H0:μ=100vs.H1:μ100H_0: \mu = 100 \quad vs. \quad H_1: \mu \neq 100
  • 计算u=99.981001.15/9=0.020.38330.0522u = \frac{99.98 - 100}{1.15 / \sqrt{9}} = \frac{-0.02}{0.3833} \approx -0.0522 u=0.0522<1.96=u0.975|u| = 0.0522 < 1.96 = u_{0.975}
  • 结论:在0.05显著性水平下,没有充分证据拒绝 H0H_0,即不能认为包装机工作不正常。
import numpy as np
from scipy import stats

# 糖厂包装机检验示例 (方差已知,双边U检验)
mu_0 = 100          # 标准质量
sigma = 1.15        # 已知标准差
x_bar = 99.98       # 样本均值
n = 9               # 样本量
alpha = 0.05        # 显著性水平

# 计算U统计量
u_stat = (x_bar - mu_0) / (sigma / np.sqrt(n))
print(f"U统计量观测值: {u_stat:.4f}")

# 计算临界值
critical_value = stats.norm.ppf(1 - alpha/2)
print(f"双边检验临界值 (α={alpha}): ±{critical_value:.4f}")

# 计算p值 (双边)
p_value = 2 * (1 - stats.norm.cdf(abs(u_stat)))
print(f"检验p值: {p_value:.4f}")

# 做出决策
if abs(u_stat) > critical_value:
    print(f"决策: |{u_stat:.4f}| > {critical_value:.4f}, 拒绝H0。")
else:
    print(f"决策: |{u_stat:.4f}| ≤ {critical_value:.4f}, 不拒绝H0。")

2. 左边检验 H0:μ=μ0vs.H1:μ<μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu < \mu_0

直观理解:如果 H1H_1 成立,即 μ\mu 小于 μ0\mu_0,那么样本均值 Xˉ\bar{X} 倾向于小于 μ0\mu_0,使得 UU 统计量倾向于取负值,且绝对值较大。因此,当 UU 很小时(即负得很多),我们拒绝 H0H_0

拒绝域的确定:控制 PH0(U<c)=αP_{H_0}(U < c) = \alpha。由于 H0H_0UN(0,1)U \sim N(0,1),临界值 cc 应取标准正态分布的 α\alpha 分位数,记为 uαu_{\alpha}。由于分布对称,uα=u1αu_{\alpha} = -u_{1-\alpha}。例如,α=0.05\alpha=0.05 时,u0.051.645u_{0.05} \approx -1.645

检验结论

  • u<uαu < u_{\alpha},则拒绝 H0H_0
  • uuαu \geq u_{\alpha},则不拒绝 H0H_0

此检验称为水平为 α\alpha 的单边(左边)U检验

3. 右边检验 H0:μ=μ0vs.H1:μ>μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu > \mu_0

直观理解:与左边检验相反,如果 H1H_1 成立,UU 统计量倾向于取正值且较大。

拒绝域的确定:控制 PH0(U>c)=αP_{H_0}(U > c) = \alpha。临界值 cc 应取标准正态分布的 1α1-\alpha 分位数 u1αu_{1-\alpha}

检验结论

  • u>u1αu > u_{1-\alpha},则拒绝 H0H_0
  • uu1αu \leq u_{1-\alpha},则不拒绝 H0H_0

此检验称为水平为 α\alpha 的单边(右边)U检验

情形二:方差 σ2\sigma^2 未知

当总体方差 σ2\sigma^2 未知时,我们无法使用U统计量,因为它依赖于未知的 σ\sigma。自然的想法是用样本方差 S2=1n1i=1n(XiXˉ)2S^2 = \frac{1}{n-1}\sum_{i=1}^n (X_i - \bar{X})^2 来估计 σ2\sigma^2。由此构造的统计量服从 t分布

构造 t统计量T=Xˉμ0S/nT = \frac{\bar{X} - \mu_0}{S / \sqrt{n}} 在原假设 H0:μ=μ0H_0: \mu = \mu_0 成立的条件下,Tt(n1)T \sim t(n-1),即自由度为 n1n-1 的 t 分布。

检验的逻辑与U检验完全相同,只是临界值需要从 t 分布中查找。

1. 双边检验 H0:μ=μ0vs.H1:μμ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu \neq \mu_0

  • 拒绝域T>t1α/2(n1)|T| > t_{1-\alpha/2}(n-1)
  • 名称:双边 t 检验

2. 左边检验 H0:μ=μ0vs.H1:μ<μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu < \mu_0

  • 拒绝域T<tα(n1)T < t_{\alpha}(n-1),其中 tα(n1)=t1α(n1)t_{\alpha}(n-1) = -t_{1-\alpha}(n-1)
  • 名称:单边(左边) t 检验

3. 右边检验 H0:μ=μ0vs.H1:μ>μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu > \mu_0

  • 拒绝域T>t1α(n1)T > t_{1-\alpha}(n-1)
  • 名称:单边(右边) t 检验
# 模拟:方差未知时的单样本t检验
np.random.seed(42)  # 固定随机种子
# 假设真实总体为 N(102, 2.5^2),但我们不知道方差
true_mu = 102
true_sigma = 2.5
n = 25
sample = np.random.normal(loc=true_mu, scale=true_sigma, size=n)

# 我们想检验 H0: mu = 100 vs H1: mu > 100 (右边检验)
mu_0 = 100
alpha = 0.05

# 计算样本统计量
x_bar = np.mean(sample)
s = np.std(sample, ddof=1)  # 样本标准差,ddof=1表示除以n-1
print(f"样本均值: {x_bar:.4f}")
print(f"样本标准差: {s:.4f}")

# 计算t统计量
t_stat = (x_bar - mu_0) / (s / np.sqrt(n))
print(f"t统计量观测值: {t_stat:.4f}")

# 计算临界值 (自由度为 n-1)
df = n - 1
critical_value = stats.t.ppf(1 - alpha, df)
print(f"右边t检验临界值 (α={alpha}, df={df}): {critical_value:.4f}")

# 使用scipy内置函数进行单样本t检验,验证结果
# alternative='greater' 对应 H1: mu > mu_0
t_stat_scipy, p_value_scipy = stats.ttest_1samp(sample, popmean=mu_0, alternative='greater')
print(f"\nScipy t检验结果:")
print(f"  t统计量: {t_stat_scipy:.4f}")
print(f"  单边p值 (greater): {p_value_scipy:.4f}")

# 做出决策
if t_stat > critical_value:
    print(f"决策: {t_stat:.4f} > {critical_value:.4f}, 拒绝H0,认为总体均值大于100。")
else:
    print(f"决策: {t_stat:.4f}{critical_value:.4f}, 不拒绝H0。")

关于假设形式的进一步说明

在课件和讲授中,提到了五种假设形式,但最终可归结为上述三种检验:

  1. H0:μ=μ0vs.H1:μμ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu \neq \mu_0 (双边检验)
  2. H0:μ=μ0vs.H1:μ<μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu < \mu_0 (单边检验)
  3. H0:μ=μ0vs.H1:μ>μ0H_0: \mu = \mu_0 \quad vs. \quad H_1: \mu > \mu_0 (单边检验)
  4. H0:μμ0vs.H1:μ>μ0H_0: \mu \leq \mu_0 \quad vs. \quad H_1: \mu > \mu_0 (可归入第3类)
  5. H0:μμ0vs.H1:μ<μ0H_0: \mu \geq \mu_0 \quad vs. \quad H_1: \mu < \mu_0 (可归入第2类)

为什么第4、5类可归入前两类? 以第4类为例,原假设 H0:μμ0H_0: \mu \leq \mu_0。在构造检验时,我们通常考虑对原假设最不利的情况,即 μ=μ0\mu = \mu_0。因为如果在这个边界点上,我们都能控制第一类错误概率不超过 α\alpha,那么对于 μ<μ0\mu < \mu_0 的情况,犯第一类错误的概率只会更小。因此,我们可以直接采用针对 H0:μ=μ0H_0: \mu = \mu_0 的检验方法(拒绝域为 U>u1αU > u_{1-\alpha}),它同时也是水平为 α\alpha 的针对 H0:μμ0H_0: \mu \leq \mu_0 的检验。第5类情况同理。

一个关键要求:原假设 H0H_0 中必须包含等号(=)。这是因为我们需要在 H0H_0 成立的一个确定点上,推导出检验统计量的精确分布,从而计算临界值和p值。如果 H0H_0 只是 μ<μ0\mu < \mu_0,没有等号,则 μ\mu 是一个区间,检验统计量的分布不唯一,无法确定统一的临界值。

📝 动手练一练

  1. 练习题一(方差已知的U检验) 某品牌洗发水标注净含量为500ml。根据长期生产记录,灌装量的标准差稳定在 σ=4\sigma = 4 ml。质监部门从一批产品中随机抽取了36瓶进行测量,得到平均净含量 xˉ=498.5\bar{x} = 498.5 ml。在显著性水平 α=0.01\alpha = 0.01 下,能否认为该批洗发水的平均净含量低于标注值?(提示:这是一个左边检验)

    参考答案: 建立假设:H0:μ=500vs.H1:μ<500H_0: \mu = 500 \quad vs. \quad H_1: \mu < 500。 计算U统计量:u=(498.5500)/(4/36)=1.5/(4/6)=2.25u = (498.5 - 500) / (4 / \sqrt{36}) = -1.5 / (4/6) = -2.25。 查表得 α=0.01\alpha=0.01 的左边临界值 u0.012.326u_{0.01} \approx -2.326。 因为 u=2.25>2.326u = -2.25 > -2.326,所以不拒绝 H0H_0。在0.01水平下,没有充分证据表明该批产品平均净含量低于500ml。

  2. 练习题二(方差未知的t检验) 为研究一种新型肥料对小麦株高的影响,在试验田中随机选取了16株使用该肥料的小麦,测得株高(cm)如下: [82, 85, 88, 86, 84, 87, 90, 83, 89, 85, 86, 84, 87, 88, 86, 85] 已知该品种小麦在常规肥料下的平均株高为84.5cm。假设株高服从正态分布,在 α=0.05\alpha = 0.05 水平下,检验这种新型肥料是否提高了小麦的平均株高。

    参考答案

    import numpy as np
    from scipy import stats
    
    heights = np.array([82, 85, 88, 86, 84, 87, 90, 83, 89, 85, 86, 84, 87, 88, 86, 85])
    mu_0 = 84.5
    alpha = 0.05
    
    # 使用scipy进行单样本右边t检验
    t_stat, p_value = stats.ttest_1samp(heights, popmean=mu_0, alternative='greater')
    print(f"样本均值: {np.mean(heights):.2f}")
    print(f"样本标准差: {np.std(heights, ddof=1):.2f}")
    print(f"t统计量: {t_stat:.4f}")
    print(f"p值 (右边): {p_value:.4f}")
    
    if p_value < alpha:
        print(f"结论: p值 ({p_value:.4f}) < α ({alpha}),拒绝H0,认为新型肥料提高了平均株高。")
    else:
        print(f"结论: p值 ({p_value:.4f}) ≥ α ({alpha}),不拒绝H0。")

    运行代码后,p值约为0.0092,小于0.05,因此拒绝原假设,认为新型肥料显著提高了小麦的平均株高。

本章小结

本节我们深入探讨了单正态总体均值假设检验的完整框架,这是统计推断中最基础、应用最广泛的方法之一。

要点回顾

  1. 检验思想:基于反证法与小概率事件原理,通过构造在原假设下有已知分布的检验统计量,来判断样本数据是否提供了拒绝原假设的充分证据。
  2. 核心要素:检验由检验统计量拒绝域构成,通过控制第一类错误概率 α\alpha 来确定拒绝域的边界。
  3. 两大场景
    • 方差已知:使用 U检验(Z检验),统计量 U=Xˉμ0σ/nN(0,1)U = \frac{\bar{X}-\mu_0}{\sigma/\sqrt{n}} \sim N(0,1)
    • 方差未知:使用 t检验,统计量 T=Xˉμ0S/nt(n1)T = \frac{\bar{X}-\mu_0}{S/\sqrt{n}} \sim t(n-1)
  4. 三种假设:根据备择假设的方向,分为双边检验和单边(左、右)检验,它们决定了拒绝域是双侧还是单侧。
  5. 决策表述:严谨的结论是“拒绝 H0H_0”或“不拒绝 H0H_0”,后者不等同于“接受 H0H_0”,体现了原假设的“被保护”地位。

行动清单

  • 明确场景:面对一个关于均值的检验问题,首先判断总体方差是否已知,以决定使用U检验还是t检验。
  • 正确建立假设:根据研究问题的方向(是否关心特定方向的变化),选择双边或单边假设。牢记原假设必须包含等号。
  • 掌握计算与查表:熟练计算检验统计量的观测值,并会根据显著性水平 α\alpha 和自由度(t检验时)查找对应的临界值,或利用软件计算p值。
  • 理解结论的统计含义:“不拒绝 H0H_0”意味着证据不足,而非证明 H0H_0 为真;结论的可靠性依赖于预先设定的 α\alpha 水平。

— 小象教研组

配套学习资源与课件
  • 第4章课件:假设检验(PDF · 7.6MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问