变异源分析与方差分量分解器|SPC实战工具
这个工具解决什么问题
这类分析的结果要能写进报告、经得起追问。因此中间量都会给出,而不是只给结论。
「这批数据波动大」只是现象。真正要回答的是波动来自哪一层:机台之间?批次之间?片与片之间?还是片内与测量本身?答错了就会把资源花在错误的地方——比如整机台间差异其实很小,却去做机台匹配。
输入数据格式
数据文件 multivari_sample.csv,列顺序为:machine、batch、wafer、position、value。
示例首行:M1,M1-B1,M1-B1-W1,1,49.481
示例输出(真实运行结果节选)
============================================================================================================ 变异源分析与方差分量分解报告(嵌套随机效应模型) ============================================================================================================ 设计:3 台机台 × 每台 4 个批次 × 每批 3 片 × 每片 2 次测量,合计 72 个数据;总均值 52.4734 一、方差分析表 ------------------------------------------------------------------------------------------------------------ 变异来源 自由度 平方和 SS 均方 MS F 值 p 值 显著性 机台间 2 196.5056 98.2528 10.8304 0.0040 ✅ 显著 批次间(机台内) 9 81.6472 9.0719 7.4636 0.0000 ✅ 显著 晶圆间(批次内) 24 29.1717 1.2155 6.7353 0.0000 ✅ 显著 片内/测量 36 6.4968 0.1805 — — (误差项) 二、方差分量(占总变异百分比) ------------------------------------------------------------------------------------------------------------ 变异来源 方差分量 标准差 占比 累计占比 机台间 3.7159 1.9277 64
一句话
把总波动拆到机台/批次/晶圆/片内四层,锁定主导变异源。
运行环境与快速开始
纯 Python 标准库,零第三方依赖,Python 3.8+ 开箱即跑。
python multivari_variance.py # 首次运行会用同目录的示例数据跑出报告 python multivari_variance.py 你的数据.csv # 需要时可在脚本内改成读取自己的文件
运行后在控制台打印完整中文报告,并写出 示例输出报告.txt。
输入数据格式
CSV 列为:machine(机台)、batch(批次,含机台前缀)、wafer(晶圆,含批次前缀)、position(片内重复序号)、value(测量值)。示例为 3 机台 × 4 批次 × 3 片 × 2 次 = 72 点
同目录的 multivari_sample.csv 即为可直接运行的示例数据。
输出说明
① 方差分析表(自由度、平方和、均方、F 值、p 值、显著性);② 方差分量表(分量、标准差、占比、累计占比,含条形图);③ Multi-Vari 分层摘要(机台均值/极差、批次极差排序、平均片内极差);④ 自检(估计值与生成真值对照);⑤ 主导变异源结论与抽样策略
算法口径(关键公式)
三层嵌套随机效应模型。期望均方反解各层方差分量:σ²_E = MS_E;σ²_C = (MS_C − MS_E)/n;σ²_B = (MS_B − MS_C)/(n·c);σ²_A = (MS_A − MS_B)/(n·c·b);负估计截断为 0。F 检验:F_A = MS_A/MS_B、F_B = MS_B/MS_C、F_C = MS_C/MS_E,p 值由不完全贝塔函数给出。
参数与调整点
· A/B/C/N 四个常量按你的实际设计改(机台数、每机台批次数、每批片数、每片重复数)。 · 数据需保持平衡(每格样本数一致),不平衡设计会让 EMS 反解失效。 · group 前缀(M1-B2-W3)只是标识,工具按字段分组,不解析字符串。
常见误判与注意事项
1. 每层自由度建议 ≥10,否则方差分量估计抽样误差很大(常见偏高或偏低)。 2. 负的方差分量已被截断为 0,说明该层变异小于当前样本量能分辨的水平,需要加样本。 3. F 检验不显著的分量不要去「优化」,那是在噪声上做文章。 4. 片内变异主导时,先把测量系统变差从过程变差里剥出来(同一位置重复测量)。 5. 示例数据带真值自检;换成自己的数据后该节会自动跳过。
附赠
· 附赠提示词.txt:3 条同主题 AI 提示词,可直接投喂给任意大模型继续扩展分析。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:CSV_NAME="multivari_sample.csv"、TRUTH_NAME="_multivari_truth.json"、REPORT_NAME="示例输出报告.txt"。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:multivari_sample.csv、_multivari_truth.json、示例输出报告.txt。
脚本里的主要处理步骤
f_pvalue():F 分布上尾概率 P(F > f)make_sample():按已知方差分量生成嵌套数据:σ_机台=2.0、σ_批次=1.2、σ_片=0.8、σ_片内=0.4,总均值 50。anova_nested():三层嵌套随机效应方差分析(机台 / 批次 / 晶圆 / 片内)
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- F 分布上尾概率 P(F > f)
- 三层嵌套随机效应方差分析(机台 / 批次 / 晶圆 / 片内)
- 晶圆间(批次内)
- 片内/测量
- 批次间(机台内)
- 变异源分析与方差分量分解报告(嵌套随机效应模型)
- 一、方差分析表
- 变异来源
- 平方和 SS
- 均方 MS
- ✅ 显著
- ⚠️ 边缘
- (误差项)
- 二、方差分量(占总变异百分比)
- 方差分量
- 累计占比
- 三、多变异(Multi-Vari)分层摘要
- 机台层:
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:multivari_variance.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 5 列:machine、batch、wafer、position、value。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
示例数据能直接跑吗?
可以。示例数据与主程序在同一压缩包内,解压后直接运行即可看到完整输出,确认无误再替换成自己的台账。
同分类的其它工具
本工具归在 SPC与质量分析工具包,全部工具见 工具资源包下载页。





