定义:用于通过样本数据对总体参数的某种假设进行验证的方法。

其核心思想是:

  • 提出假设:原假设H0,备择假设H1
  • 构造检验统计量:基于样本数据计算一个统计量,用于衡量与原假设的偏离程度
  • 决策规则:根据统计量的分布和显著性水平α,决定是否拒绝原假设

通俗就是:这次产品的功能上线之后效果是好的(+10%点击率),然后对测试结果进行统计,发现【不好是小概率事件】,也就是【拒绝了原假设】

原理:

1. 原假设与备择假设

  • 原假设H0:希望拒绝的假设(如总体均值 μ=μ0​)
  • 备择假设H1:希望验证的假设(如总体均值 μμ0)
    • ​单侧检验:方向明确的假设(如 μ>50),新策略是否提升转化率,是明确的检验
    • 双侧检验:方向不明确(μ不等于50),新旧策略有差异,但不知提升还是下降

2. 检验统计量的构建

核心是构造一个服从特定分布的统计量(将分布的均值作为一个标准分布)。以均值检验为例:

Z检验统计量(已知总体方差或n>=30)

3. 显著性水平(α)与拒绝域

  • 显著性水平α:允许犯第一类错误(错误拒绝 H0​)的最大概率,通常取0.05或0.01
  • 拒绝域:根据 α 和备择假设方向,确定统计量的临界值范围
    • 双侧检验:拒绝域分布在分布的两侧(如 ∣Z∣>/2​)
    • 单侧检验:拒绝域分布在单侧(如 Z>​)
  • 例如:当α=0.05,双侧检验的Z临界值为 ±1.96,若计算出的 ∣Z∣>1.96,则拒绝 H0

4. P值的计算

  • P值:在原假设成立时,观测到当前结果或更极端结果的概率。
  • 若p值<α,则拒绝H0

5. 两类错误

  • 第一类错误:错误拒绝 H0​(概率为 α)。(本来没事,说成有事(虚惊一场)
  • 第二类错误:错误接受 H0​(概率为 β)。(本来有事,却认为没事(漏掉了真相)
  • 功效(Power):正确拒绝 H0​ 的概率,即 1−β

注意:拒绝了原假设也不代表100%接受备择假设,只能提供“统计学证据”来反驳零假设的合理性,存在第一类错误的风险。

代码案例:

H0:A组和B组比例相等

H1:B组比例更大(单侧检验)

import numpy as np
import statsmodels.stats.proportion as smp

# 设置随机种子确保结果复现
np.random.seed(42)

# 定义模拟参数
n_A = 1000   # A组访问人数
n_B = 1000   # B组访问人数
p_A = 0.10   # A组假定点击率
p_B = 0.13   # B组假定点击率

# 模拟点击次数:服从 Binomial(n, p)
clicks_A = np.random.binomial(n_A, p_A)  # A组点击人数
clicks_B = np.random.binomial(n_B, p_B)  # B组点击人数

print("A组模拟点击人数 =", clicks_A)
print("B组模拟点击人数 =", clicks_B)



# 两组样本比例检验(单侧:检验 B组比例是否更大)
count = [clicks_A, clicks_B]      # 成功次数(点击次数)
nobs = [n_A, n_B]                 # 实验次数(访问次数)
stat, p_value = smp.proportions_ztest(count, nobs, alternative='smaller')

print(f"Z统计量 = {stat:.3f}")
print(f"单侧 p值 = {p_value:.3f}")

结论:拒绝H0,B组比例更大

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐