
假设检验一句话定义假设检验是先对总体参数提出假设再通过样本数据判断该假设是否成立的统计推断方法。核心逻辑逻辑框架反证法 概率约束 1. 假设没有差异/没有效果原假设 H₀ 2. 用样本数据计算如果 H₀ 为真观察到当前结果或更极端结果的概率 3. 概率很小 α→ H₀ 不太可能成立 → 拒绝 H₀ → 差异/效果显著 概率不够小≥ α→ 无法拒绝 H₀ → 证据不足两种假设H₀原假设没有差异、没有效果、没有关联 → 新药和安慰剂一样 男女消费无差异 变量不相关 H₁备择假设有差异、有效果、有关联 → 新药比安慰剂好 男女消费有差异 变量相关检验方向H₀H₁示例双侧检验μ μ₀μ ≠ μ₀新旧方案转化率是否不同左侧检验μ ≥ μ₀μ μ₀新方案是否更差右侧检验μ ≤ μ₀μ μ₀新方案是否更好两类错误H₀实际为真 H₀实际为假 ┌────────────────┬────────────────┐ 拒绝H₀ │ 第Ⅰ类错误(α) │ 判断正确 ✓ │ 不拒绝H₀ │ 判断正确 ✓ │ 第Ⅱ类错误(β) │ └────────────────┴────────────────┘ 第Ⅰ类错误假阳性没差异却说有差异 → 误报 没病被判有病 → 冤枉好人 第Ⅱ类错误假阴性有差异却没检测出 → 漏报 有病被判没病 → 错过真相 α 通常设为 0.05 → 容忍 5% 的假阳性 β 通常设为 0.20 → 容忍 20% 的假阴性 统计功效 1 - β 0.80检验流程① 提出假设 H₀: 两组转化率无差异p₁ p₂ H₁: 两组转化率有差异p₁ ≠ p₂ ② 选择检验方法 比较两组比例 → Z 检验 ③ 设定显著性水平 α 0.05 ④ 计算检验统计量 z (p₁ - p₂) / SE SE √(p̂(1-p̂)(1/n₁ 1/n₂)) ⑤ 计算 p-value p P(|Z| |z_obs|) ⑥ 做出决策 p 0.05 → 拒绝 H₀ → 差异显著 p ≥ 0.05 → 不能拒绝 H₀ → 证据不足常用检验方法1. 单样本检验 — 和已知标准比较fromscipyimportstats# 某产品重量标准 500g抽测25个均值498g标准差4g# H₀: μ 500 H₁: μ ≠ 500t_stat,p_valuestats.ttest_1samp([498,501,496,499,...],# 样本数据popmean500# 标准值)# p 0.05 → 生产线偏轻需要调整2. 两独立样本检验 — 两组比较# 男女用户日均消费是否有差异male_spend[85,92,78,90,88,...]female_spend[78,85,72,80,76,...]# H₀: μ_male μ_female H₁: μ_male ≠ μ_femalet_stat,p_valuestats.ttest_ind(male_spend,female_spend,equal_varFalse)# Welch t 检验不假设方差相等更稳健# p 0.03 0.05 → 消费有显著差异3. 配对样本检验 — 前后对比# 同一批用户优化前后的满意度评分before[3.2,4.1,3.5,2.8,3.9,...]after[3.8,4.5,4.0,3.3,4.2,...]# H₀: μ_diff 0 H₁: μ_diff ≠ 0t_stat,p_valuestats.ttest_rel(before,after)# p 0.05 → 优化后满意度显著提升4. 比例检验 — 转化率比较fromstatsmodels.stats.proportionimportproportions_ztest# A/B测试A组1000人转化120人B组1000人转化150人# H₀: p_A p_B H₁: p_A ≠ p_Bconversions[120,150]totals[1000,1000]z_stat,p_valueproportions_ztest(conversions,totals)# p 0.04 → B组转化率显著更高5. 卡方检验 — 分类变量关联性# 用户地区和购买偏好是否关联# 偏好A 偏好B 偏好C# 华东 120 80 50# 华南 90 110 70# 华北 60 40 80observednp.array([[120,80,50],[90,110,70],[60,40,80]])chi2,p_value,dof,expectedstats.chi2_contingency(observed)# p 0.001 → 地区和偏好显著关联6. 方差分析ANOVA— 多组比较# 四个推广渠道的用户质量是否有差异channel_a[85,90,78,...]channel_b[72,68,75,...]channel_c[91,88,95,...]channel_d[80,82,79,...]# H₀: μ_A μ_B μ_C μ_D# H₁: 至少有一组不同f_stat,p_valuestats.f_oneway(channel_a,channel_b,channel_c,channel_d)# p 0.05 → 渠道间有显著差异# 进一步哪几组之间有差异→ 事后检验fromstatsmodels.stats.multicompimportpairwise_tukeyhsd tukeypairwise_tukeyhsd(all_data,group_labels)print(tukey)# A vs B: p0.01 → 显著# A vs C: p0.85 → 不显著# B vs C: p0.03 → 显著7. 非参数检验 — 不假设分布# 数据严重偏斜不满足 t 检验的正态假设# 两独立样本Mann-Whitney Uu_stat,p_valuestats.mannwhitneyu(group_a,group_b)# 配对样本Wilcoxonw_stat,p_valuestats.wilcoxon(before,after)# 多组比较Kruskal-Wallish_stat,p_valuestats.kruskal(group_a,group_b,group_c)方法选择速查数据类型 ├── 连续型 │ ├── 两组比较 │ │ ├── 独立样本 → t 检验 / Welch t │ │ └── 配对样本 → 配对 t 检验 │ ├── 三组及以上 │ │ ├── 满足正态方差齐 → ANOVA 事后检验 │ │ └── 不满足 → Kruskal-Wallis │ └── 不满足参数检验条件 │ ├── 两组独立 → Mann-Whitney U │ └── 两组配对 → Wilcoxon │ ├── 分类型比例 │ ├── 两组比例 → Z 检验 / 卡方检验 │ ├── 多组比例 → 卡方检验 │ └── 关联性 → 卡方独立性检验 │ └── 排序型 ├── 两组 → Mann-Whitney U └── 多组 → Kruskal-Wallis在数据分析中的实际应用1. A/B 测试场景两个推荐算法哪个点击率更高 方法比例 Z 检验 H₀: 两个算法点击率无差异 结论: p0.02 → 新算法显著提升点击率 1.5%2. 特征筛选# 判断特征与目标变量是否有关联# 数值特征 vs 分类目标 → 分组 t 检验 / ANOVA# 例不同付费等级用户的活跃天数是否有差异f_stat,pstats.f_oneway(df[df[level]free][active_days],df[df[level]basic][active_days],df[df[level]pro][active_days])# p 0.05 → 活跃天数对付费等级有区分力 → 保留特征# 分类特征 vs 分类目标 → 卡方检验chi2,p,_,_stats.chi2_contingency(pd.crosstab(df[city],df[churn]))# p 0.05 → 城市与流失相关 → 保留特征3. 异常检测# Grubbs 检验判断单个异常值fromscipy.statsimporttdefgrubbs_test(data,alpha0.05):meannp.mean(data)stdnp.std(data,ddof1)g_maxmax(abs(data-mean))/std nlen(data)t_critt.ppf(1-alpha/(2*n),n-2)g_crit(n-1)/np.sqrt(n)*np.sqrt(t_crit**2/(n-2t_crit**2))returng_maxg_crit# True 存在异常值4. 质量控制# 产品重量是否偏移标准值t_stat,pstats.ttest_1samp(batch_weights,popmean500)ifp0.05:alert(生产线偏移需要校准)5. 因果判断场景促销活动是否真的提升了销量 朴素对比活动期销量比上个月高 20% → 促销有效 问题可能只是季节性因素 假设检验思路 H₀: 促销组和非促销组的销量无差异 控制其他变量只看促销与否的影响 → 排除混杂因素更接近因果判断6. 模型效果验证# 两个模型的准确率差异是否显著frommlxtend.evaluateimportpaired_ttest_5x2cv t,ppaired_ttest_5x2cv(estimator1model_a,estimator2model_b,XX_test,yy_test)# p 0.05 → 模型B显著优于A# p ≥ 0.05 → 差异不显著选简单模型常见误区1. p 值不是 H₀ 为真的概率✗ p 0.03 → H₀ 为真的概率是 3% ✓ p 0.03 → 如果 H₀ 为真观察到当前结果的概率是 3% p 值回答的是数据有多意外 不是回答假设有多正确2. 不显著 ≠ 没有差异p 0.06 → 不能拒绝 H₀ 可能原因 ① 真的没有差异 ② 样本量不够功效不足 ③ 差异存在但小于 MDE → 不显著不等于没有只是证据不足 → 关注置信区间和效应量3. 显著 ≠ 重要p 0.001但差异只有 0.1% → 统计显著但业务上可能无意义 大样本下任何微小差异都能检验出显著 → 必须同时看效应量和业务意义4. 多次检验不校正同时检验 20 个特征 每个检验 α 0.05 至少一个假阳性概率 1 - 0.95²⁰ 64% 校正方法 Bonferroniα_adjusted 0.05 / 20 0.0025 FDRBenjamini-Hochberg控制假发现率5. 忽略前提假设t 检验要求正态分布、方差齐性 → 不满足时用非参数检验或做变换 忽视前提 → p 值不可靠 → 结论不可信总结假设检验的核心是用样本数据对总体假设做出概率性判断先设定 H₀无差异计算 p 值观察结果有多意外p α 则拒绝 H₀。关键应用包括 A/B 测试判断方案优劣、特征筛选识别有效变量、异常值检测、质量控制监控偏移、模型对比验证提升。核心误区p 值不是 H₀ 为真的概率、不显著≠没差异、显著≠重要必须结合效应量和业务意义综合判断。