工程变更良率显著性检验器|工程效率工具
这个工具解决什么问题
工程数据整理的时间成本,往往超过分析本身。这工具压的就是这一段。
工艺变更后良率从 88.0% 变成 90.2%,这 2.2 个百分点是变更的功劳还是正常的批次波动? 工程上最常见的两个错误:看到数字涨了就宣布成功(事后发现只是运气), 或要求「再多跑几个月才能判断」(错失验证窗口)。 正确做法是假设检验:算出差异的置信区间与 p 值,并回答「这批数据到底够不够得出结论」。
输入数据格式
数据文件 ab_result.csv,列顺序为:group、sample_id、good_die、total_die、yield_pct。
示例首行:变更前,变更前-W01,2656,3000,88.5333
示例输出(真实运行结果节选)
====================================================================================
工程变更前后良率显著性检验报告
对比组:变更前 vs 变更后 显著性水平 α=0.050 业务门槛:1.0 个百分点
====================================================================================
【一、总体良率对比】
组别 片数 投入 die 良品 die 良率
变更前 16 48000 42168 87.850%
变更后 16 48000 43292 90.192%
差异 - 0 1124 +2.342 pt
【二、主检验:两比例 z 检验(以 die 为独立单位)】
z = 11.6038 双侧 p 值 = < 1e-16
差异的 95% 置信区间:+1.946 ~ +2.737 个百分点
→ 【显著】在 α=0.050 水平下,变更前 与 变更后 的良率差异不是抽样噪声。
卡方检验(等价口径):χ² = 134.6481,df = 1,p = < 1e-16
【三、稳健性检验:逐片良率 Welch t 检验】
变更前 逐片良率:均值 87.850%(片间标准差 0.597%,n=16)
变更后 逐片良率:均值 90.192%(片间标准差 0.882%,n=16)
Welch t = 8.7930,df ≈ 26.3,双侧 p = 2.56454e-09 → 显著
⚠ 两种口径的意义不同:
· 两比例 z 检验把每颗 die 当独立样本,检验力最高,但若同一片内 die 的失效相关
(存在片级聚类效应),会高估显著性,p 值偏小;
· 逐片 t 检验把「片」当独立单位,更保守、更贴近工程现实,片数少时容易不显著。
两个都显著 → 结论可靠;只有 z 检验显著 → 提示差异可能主要由少数片驱动,建议扩样。
【四、检验力与样本量(回答「这批数据够不够」)】
当前样本:每组 16 片(约 48,000 die/组,3000 die/片);
工程变更前后良率显著性检验器
> 半导体工程验证 Python 实战工具 · 核心功能零第三方依赖
文件内容
· yield_ab_significance.py:主程序(Python 3.8+,零第三方依赖,含正态/t 分布算法) · ab_yield.csv:示例数据(变更前 16 片 vs 变更后 16 片,各 3000 die/片) · ab_report.txt / ab_result.csv:中文报告与逐片良率明细(便于绘图) · 附赠提示词.txt:同主题 AI 提示词 1 套
运行方法
python yield_ab_significance.py python yield_ab_significance.py 我的数据.csv
输入数据格式
ab_yield.csv:group, sample_id, good_die, total_die group 取两组(如「变更前」「变更后」),工具自动取前两个出现的组做对比。
输出说明
1. 总体良率对比:片数、投入 die、良品 die、良率、差异 2. 主检验——两比例 z 检验:z 值、p 值、差异的 95% 置信区间、是否显著; 附卡方检验(等价口径)结果 3. 稳健性检验——逐片良率 Welch t 检验:两种口径都显著结论才可靠 4. 检验力与样本量:当前样本量的 MDE(最小可检出差异)、 各目标提升(0.5/1.0/1.5/2.0/3.0 pt)所需样本量(含约合片数) 5. 结论与建议:统计结论 + 业务门槛判定 + 工程纪律提醒
可调参数(文件顶部)
· ALPHA:显著性水平(默认 0.05) · POWER:目标检验力(默认 0.80,用于 MDE 与样本量计算) · MIN_BUSINESS_PT:业务门槛,良率提升至少达到该百分点才值得立项/结案(默认 1.0)
结果怎么读
· 两种口径的意义不同:两比例 z 检验把每颗 die 当独立样本,检验力最高, 但同一片内 die 失效相关时会高估显著性;逐片 t 检验把「片」当独立单位,更保守更贴近工程现实。 两个都显著 → 结论可靠;只有 z 检验显著 → 提示差异可能由少数片驱动,建议扩样 · MDE 是回答「跑够了没有」的关键:观测到的差异 < MDE,说明样本量不足以证明,不是「变更无效」 · 对比必须保证可比性(同期机台、同类产品、相同测试程序),否则观测到的是批次差异而非变更效果
可调参数与计算口径
脚本顶部集中了主要阈值与常量:DATA_CSV=os.path.join(BASE, "ab_yield.csv")、REPORT_TXT=os.path.join(BASE, "ab_report.txt")、OUT_CSV=os.path.join(BASE, "ab_result.csv")。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:ab_yield.csv、ab_report.txt、ab_result.csv。
脚本里的主要处理步骤
phi():标准正态分布累积概率two_prop_z():两比例 z 检验(pooled),返回 (p1, p2, diff, z, p_two_sided, ci_lo, ci_hi)fmt_p():p 值显示:极小值避免打印成 0mde_for():给定每组样本量与基线良率,反解可检出的最小差异(80% 检验力)n_needed():要达到给定差异的检出所需每组样本量gen_demo():生成变更前 16 片 / 变更后 16 片数据:良率约 88.0% → 90.2%(真实提升)。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 再多跑几个月才能判断
- 这批数据够不够得出结论
- 标准正态分布累积概率
- p 值显示:极小值避免打印成 0
- 给定每组样本量与基线良率,反解可检出的最小差异(80% 检验力)
- 要达到给定差异的检出所需每组样本量
- 未提供数据文件,已生成示例数据:%s(变更前/后各 16 片)
- 需要至少两个组(例如「变更前」「变更后」)才能做对比,当前只有 %d 组
- 工程变更前后良率显著性检验报告
- 【一、总体良率对比】
- 投入 die
- 良品 die
- 【二、主检验:两比例 z 检验(以 die 为独立单位)】
- z = %.4f 双侧 p 值 = %s
- 差异的 95%% 置信区间:%+.3f ~ %+.3f 个百分点
- → 【显著】在 α=%.3f 水平下,%s 与 %s 的良率差异不是抽样噪声。
- → 【不显著】现有数据无法证明两组良率存在真实差异(差异可能来自随机波动)。
- 卡方检验(等价口径):χ² = %.4f,df = 1,p = %s
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:yield_ab_significance.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 5 列:group、sample_id、good_die、total_die、yield_pct。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 一、总体良率对比、显著、不显著、三、稳健性检验:逐片良率 Welch t 检验、四、检验力与样本量(回答「这批数据够不够」) 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。





