非参数检验分析器|SPC实战工具
这个工具解决什么问题
颗粒数、缺陷数、尺寸偏移这类数据天生右偏,长尾在右侧。此时用均值+t 检验会高估显著性, 得出「改造有效」的假结论。秩检验只比较数据的秩序,对偏态与极端值稳健,是这类数据 唯一站得住的口径。本工具一次给出配对检验、两独立样本检验与多组检验三种场景。
输入数据格式
数据文件 nonparam_sample.csv,列顺序为:组别、改造前颗粒数、改造后颗粒数。
示例首行:设备A,39.6,46.0
示例输出(真实运行结果节选)
============================================================================== 非参数检验分析报告(Wilcoxon 符号秩 / Mann-Whitney U / Kruskal-Wallis H) ============================================================================== 一、数据概览 样本:3 台设备改造前后的颗粒数(每台 20 次采样),共 60 组观测。 检验口径:显著性水平 alpha = 0.05;全部为双尾检验。 组别 改造前 中位数(IQR) 改造后 中位数(IQR) 降幅(中位数) ------------------------------------------------------------------------ 设备A 39.6 ( 34.0, 45.7) 25.2 ( 19.8, 33.2) 36.4% 设备B 35.5 ( 33.0, 42.3) 27.1 ( 20.4, 35.2) 23.4% 设备C 43.5 ( 35.6, 61.3) 36.6 ( 31.6, 45.7) 15.8% 正态性快速判断(改造后全样本):偏度 = 1.95,峰度 = 6.95。 偏度明显大于 0(右偏),且直方图长尾在右侧 —— 这类数据用均值+t 检验 会高估显著性,因此改用秩检验(不依赖分布形状,只比较秩序)。 二、Wilcoxon 符号秩检验(配对样本,改造前 vs 改造后) H0:改造前后颗粒数的差值中位数 = 0;H1:差值中位数 != 0。 有效配对数 n = 60(剔除差值为 0 的配对) 正秩和 W+ = 1492.5,负秩和 W- = 337.5(W+ 越小说明下降越普遍) 正态近似 z = -4.251,双尾 p = 2.160e-05 效应量 r = |z| / sqrt(2n) = 0.388 结论:拒绝 H0 —— 改造后颗粒数显著下降。 三、Mann-Whitney U 检验(两独立样本,改造后组间对比) 检验 U z p 效应量r 结论 ---------------
一句话
数据不服从正态分布时,别再用均值+t 检验;用秩检验得到不依赖分布形状的显著性结论。
运行环境与快速开始
python nonparam_test_analyzer.py
输入数据格式(换成你的数据即可)
nonparam_sample.csv:列 = 组别 / 改造前颗粒数 / 改造后颗粒数。 自有数据替换同名文件即可;脚本顶部可调 ALPHA 显著性水平。
输出说明
数据概览与正态性快判、Wilcoxon 符号秩(配对)、Mann-Whitney U(两两对比,含效应量)、 Kruskal-Wallis H(多组整体)与 Bonferroni 事后比较、结论与建议。
算法口径(关键公式)
· 秩变换:并列值取平均秩;方差含并列校正项 Sigma(t^3-t) · Wilcoxon:W+ / W-,正态近似 z,效应量 r = |z| / sqrt(2n) · Mann-Whitney:U = min(U1, U2),连续性校正,效应量 r = |z| / sqrt(N) · Kruskal-Wallis:H 并列校正后按卡方(自由度 k-1)求 p,卡方上尾用不完全伽马函数实现
判定标准说明
p < ALPHA 判显著;多组事后比较用 Bonferroni 校正(单次门槛 ALPHA / 比较次数)。 示例数据为自动生成的三台设备改造前后颗粒数,结论(整体有效、设备C 落后)即为真实结论。
常见问题
· 样本量很小(n<8)能用吗? 可以,但正态近似的 p 值会偏保守,建议配合精确检验复核。 · 能只跑两组吗? 能,改 pairs 列表即可。 · 为什么报告里还有偏度/峰度? 那是给你判断「到底该不该用非参数」的第一眼依据。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:REPORT=os.path.join(BASE, "示例输出报告.txt")。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:nonparam_sample.csv、示例输出报告.txt。
脚本里的主要处理步骤
chi2_sf():卡方分布上尾概率 P(X > x),自由度 k。rankdata():平均秩(并列取秩均值)。tie_sum():并列校正项 Σ(t^3 - t)。wilcoxon_signed_rank():配对样本:H0 为差值中位数 = 0。返回 (W+, z, p, n_eff, 效应量)。mann_whitney():两独立样本:H0 为两总体分布位置相同。返回 (U, z, p, r_eff)。kruskal_wallis():多独立样本:H0 为各组分布位置相同。返回 (H_c, df, p)。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 卡方分布上尾概率 P(X > x),自由度 k。
- 平均秩(并列取秩均值)。
- 并列校正项 Σ(t^3 - t)。
- 两独立样本:H0 为两总体分布位置相同。返回 (U, z, p, r_eff)。
- 多独立样本:H0 为各组分布位置相同。返回 (H_c, df, p)。
- 改造前颗粒数
- 改造后颗粒数
- 一、数据概览
- 样本:%d 台设备改造前后的颗粒数(每台 %d 次采样),共 %d 组观测。
- 检验口径:显著性水平 alpha = %.2f;全部为双尾检验。
- 正态性快速判断(改造后全样本):偏度 = %.2f,峰度 = %.2f。
- 偏度明显大于 0(右偏),且直方图长尾在右侧 —— 这类数据用均值+t 检验
- 会高估显著性,因此改用秩检验(不依赖分布形状,只比较秩序)。
- 二、Wilcoxon 符号秩检验(配对样本,改造前 vs 改造后)
- H0:改造前后颗粒数的差值中位数 = 0;H1:差值中位数 != 0。
- 有效配对数 n = %d(剔除差值为 0 的配对)
- 正秩和 W+ = %.1f,负秩和 W- = %.1f(W+ 越小说明下降越普遍)
- 正态近似 z = %.3f,双尾 p = %.3e
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:nonparam_test_analyzer.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 3 列:组别、改造前颗粒数、改造后颗粒数。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
示例数据能直接跑吗?
可以。示例数据与主程序在同一压缩包内,解压后直接运行即可看到完整输出,确认无误再替换成自己的台账。
同分类的其它工具
所属分类 SPC与质量分析工具包,也可回到 工具资源包下载页 按分类查找。





