正态性检验工具|SPC实战工具
这个工具解决什么问题
质量工具的价值在于让不同人算同一批数据能得到同一个答案,而不是算得更花哨。
本工具用于检验工艺数据是否符合正态分布,是 SPC 控制图分析的先决条件。 仅使用 Python numpy 标准库,实现偏度/峰度检验 + 简化 Shapiro-Wilk 检验 + Q-Q 图。
正态性检验工具 - FAB工程师工具 ================================
适用场景
· SPC 控制图分析前先检验正态性假设 · 判断工艺波动是否为随机正常波动 · 检测工艺异常(双峰、右偏等非正态分布) · 验证改善措施后分布是否改善
内置三组示例数据
1. 正常分布: FAB Oxide 厚度 (n=50, μ=21.0nm, σ=0.35nm) 2. 右偏分布: 模拟刻蚀速率右偏(刻蚀不均匀性导致) 3. 双峰分布: 工艺异常时的膜厚双峰(两台设备差异导致)
核心公式
1. 偏度 (Sample Skewness): g1 = n * Σ(xi-x̄)^3 / ((n-1)(n-2)σ^3) 偏度标准误: SE_g1 = sqrt(6n(n-1) / ((n-2)(n+1)(n+3))) t_skew = g1 / SE_g1
2. 峰度 (Sample Excess Kurtosis): g2 = n(n+1)m4 / ((n-1)(n-2)(n-3)σ^4) - 3(n-1)^2/((n-2)(n-3)) 峰度标准误: SE_g2 = sqrt(24n(n-1)^2 / ((n-3)(n-2)(n+5)(n+7))) t_kurt = g2 / SE_g2
3. Shapiro-Wilk W 统计量 (简化版): W = (Σai*xi_sorted)^2 / Σ(xi-x̄)^2 ai 为 Shapiro-Wilk 经验权重系数 W > 0.935 (n<=50) 认为近似正态
4. Q-Q 图原理: 样本排序 x(i) vs 理论分位数 z(i) = Φ^(-1)((i-0.5)/n) 若近似正态,数据点应紧贴 y = μ + σ*z 直线
判定规则
· 偏度: |g1| < 2*SE_g1 → 对称 · 峰度: |g2| < 2*SE_g2 → 正态峰度 · Shapiro-Wilk: W >= 0.935 → 正态 · 综合: 三项全部通过 → 正态分布
非正态数据处理建议
· 右偏数据: 尝试对数变换 Box-Cox · 左偏数据: 尝试指数变换 · 双峰数据: 调查是否存在两个子过程/设备差异 · 均匀分布: 调查是否存在人为截断
使用说明
1. 运行 python normality_test.py 启动工具 2. 选择示例数据集观察三种不同分布的 Q-Q 图 3. 或选择手动输入粘贴自己的数据 4. 点击 [正态性检验] 查看详细结果 5. Q-Q 图点越贴近直线越接近正态
依赖
Python 3.8+ numpy matplotlib tkinter (Python标准库)
可调参数与计算口径
脚本顶部集中了主要阈值与常量:FONT_NAME="SimHei"、BUILTIN_NORMAL=np.random.normal(21.0, 0.35, 50)、BUILTIN_BIMODAL=np.concatenate([、FONT_NAME=safe_font()。改完直接重跑即可,不必改动计算逻辑。
脚本里的主要处理步骤
norm_ppf():逆标准正态 CDF (probit),用 numpy 数值近似skewness():偏度 (Sample Skewness): g1 = n*Σ(xi-x̄)^3 / ((n-1)(n-2)σ^3)kurtosis():峰度 (Sample Excess Kurtosis): g2 = n(n+1)*m4 / ((n-1)(n-2)(n-3)σ^4) - 3(n-1)^2 / ((n-2)(n-3se_skewness():偏度标准误: sqrt(6n(n-1) / ((n-2)(n+1)(n+3)))se_kurtosis():峰度标准误: sqrt(24n(n-1)^2 / ((n-3)(n-2)(n+5)(n+7)))shapiro_wilk_simple():简化版 Shapiro-Wilk W 统计量qq_data():生成 Q-Q 图数据
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 逆标准正态 CDF (probit),用 numpy 数值近似
- 单值逆 CDF,Brent 迭代逼近
- 偏度标准误: sqrt(6n(n-1) / ((n-2)(n+1)(n+3)))
- 生成 Q-Q 图数据
- 近似对称
- 严重偏斜
- 近似正态峰度
- 轻微异常
- 严重偏离正态峰度
- 正态性检验工具 - FAB工程师工具
- 正态性检验工具
- 偏度/峰度检验 + Shapiro-Wilk W + Q-Q 图
- 选择示例数据集
- 正常分布数据 (FAB Oxide 厚度)
- 右偏分布数据 (刻蚀速率)
- 双峰分布数据 (工艺异常)
- 手动输入数据
- 数据序列 (逗号/空格分隔, >=5个):
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:normality_test.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
示例数据能直接跑吗?
可以。示例数据与主程序在同一压缩包内,解压后直接运行即可看到完整输出,确认无误再替换成自己的台账。
同分类的其它工具
所属分类 SPC与质量分析工具包,也可回到 工具资源包下载页 按分类查找。





