返回 Skill 列表
extension
分类: 数据与分析无需 API Key

统计假设检验技能

统计假设检验工具;支持正态性检验(Shapiro-Wilk/K-S)、t检验(单样本/独立/配对)、卡方检验(拟合优度/独立性)、ANOVA、Levene检验、Mann-Whitney U检验;自动计算统计量、p值、置信区间与效应量;提供结果解释指南

person作者: u_92a87aa5hubenterprise

假设检验工具

任务目标

  • 本Skill用于:对样本数据进行统计假设检验,判断样本与总体、样本与样本之间是否存在显著差异
  • 能力包含:正态性检验(Shapiro-Wilk/K-S)、t检验(单样本/独立/配对)、卡方检验(拟合优度/独立性)、ANOVA、方差齐性检验、非参数检验
  • 触发条件:用户需要"检验正态性"、"比较两组数据"、"验证比例是否符合预期"、"判断多组均值是否相等"

前置准备

  • 依赖包:numpy, pandas, scipy
  • 数据准备:CSV/TXT/Excel文件或逗号分隔的数值列表

操作步骤

1. 数据准备

确保数据格式符合要求:

  • 数值型数据
  • 缺失值已处理
  • 异常值已检查(可选)

2. 选择检验方法

根据研究问题选择合适的检验:

| 目的 | 检验方法 | |------|----------| | 判断数据是否正态 | Shapiro-Wilk / K-S检验 | | 比较样本均值与总体均值 | 单样本t检验 | | 比较两组独立样本 | 独立样本t检验 / Mann-Whitney U | | 比较配对样本 | 配对样本t检验 | | 检验分类变量关联 | 卡方独立性检验 | | 检验观测与期望频数 | 卡方拟合优度检验 | | 比较三组及以上均值 | 单因素ANOVA | | 检验方差齐性 | Levene检验 |

3. 执行检验

调用脚本进行分析:

python scripts/hypothesis_test.py --test <检验类型> --data1 <数据> [参数]

4. 解读结果

使用示例

示例1:正态性检验

  • 场景:检验某班级数学成绩是否服从正态分布
  • 输入:成绩数据 [85, 90, 78, 92, 88, 76, 95, 82, 89, 91]
  • 命令:
    python scripts/hypothesis_test.py --test shapiro --data1 "85,90,78,92,88,76,95,82,89,91"
    
  • 关键要点:p > 0.05时认为数据服从正态分布,可进一步使用参数检验

示例2:两独立样本t检验

  • 场景:比较实验组与对照组的疗效差异
  • 输入:实验组 [85, 88, 90, 92, 87], 对照组 [78, 82, 80, 76, 79]
  • 命令:
    python scripts/hypothesis_test.py --test two_sample_t --data1 "85,88,90,92,87" --data2 "78,82,80,76,79"
    
  • 关键要点:报告Cohen's d评估效应大小;先做Levene检验验证方差齐性

示例3:卡方拟合优度检验

  • 场景:检验骰子是否公平(期望每个面出现概率相等)
  • 输入:观测频数 [18, 22, 16, 20, 15, 19] (每个面出现次数)
  • 命令:
    python scripts/hypothesis_test.py --test chi_square_goodness --data1 "18,22,16,20,15,19"
    
  • 关键要点:期望频数默认相等;可指定--expected自定义期望分布

示例4:单因素ANOVA

  • 场景:比较三种教学方法的效果
  • 输入:方法A [85, 90, 88], 方法B [78, 82, 80], 方法C [92, 95, 90]
  • 命令:
    python scripts/hypothesis_test.py --test anova --data1 "85,90,88" --data2 "78,82,80;92,95,90"
    
  • 关键要点:ANOVA显著后需进行事后检验(如Tukey HSD)确定具体哪些组有差异

示例5:从文件读取数据

  • 场景:数据存储在CSV文件中
  • 命令:
    python scripts/hypothesis_test.py --test shapiro --data1 ./data/grades.csv
    
  • 关键要点:支持.csv/.txt/.xlsx文件;脚本会读取第一列数据

检验参数说明

| 参数 | 说明 | 默认值 | |------|------|--------| | --test | 检验类型 | 必需 | | --data1 | 第一组数据 | 必需 | | --data2 | 第二组数据(两样本检验) | 可选 | | --alpha | 显著性水平 | 0.05 | | --pop_mean | 总体均值(单样本t检验) | 样本均值 | | --expected | 期望频数(卡方检验) | 均匀分布 | | --output | 输出JSON文件路径 | 输出到stdout |

支持的检验类型

| test值 | 检验名称 | 适用场景 | |--------|----------|----------| | shapiro | Shapiro-Wilk正态性检验 | 小样本(n<5000)正态判断 | | ks | K-S正态性检验 | 大样本正态判断 | | one_sample_t | 单样本t检验 | 与已知总体比较 | | two_sample_t | 独立样本t检验 | 两独立组比较 | | paired_t | 配对样本t检验 | 配对/重复测量比较 | | chi_square_goodness | 卡方拟合优度检验 | 观测vs期望频数 | | chi_square_independence | 卡方独立性检验 | 两分类变量关联 | | anova | 单因素ANOVA | 三组及以上均值比较 | | levene | Levene方差齐性检验 | 方差齐性判断 | | mann_whitney | Mann-Whitney U检验 | 两组非参数比较 |

结果输出说明

脚本输出JSON格式结果,包含:

  • test_name: 检验名称
  • statistic: 检验统计量(t值/F值/χ²值等)
  • p_value: p值
  • df: 自由度
  • alpha: 显著性水平
  • confidence_interval: 置信区间(适用时)
  • effect_size: 效应量(适用时)
  • conclusion: 结论描述
  • interpretation: 解释字符串

资源索引

注意事项

  1. 正态性前提:t检验和ANOVA要求数据近似正态分布;大样本(n>30)时中心极限定理可缓解此要求
  2. 方差齐性:独立样本t检验和ANOVA要求方差齐性;可先做Levene检验
  3. 样本量影响:p值受样本量影响,大样本时需关注效应量
  4. 多重比较:进行多次检验时需校正显著性水平(如Bonferroni校正)
  5. 非参数替代:数据严重偏态或方差不齐时,使用Mann-Whitney U或Wilcoxon符号秩检验
  6. 因果关系:假设检验仅判断差异显著性,不能推断因果关系