良率学习曲线与提升目标测算器|SPC实战工具
这个工具解决什么问题
良率从 55% 爬到 93% 之后就开始「磨」——每周涨 0.1 个点,眼看离 94%/95% 目标还差一截, 但没人说得清「照这个速度还要多久」,也没人分得清「是正常的学习放缓,还是学习已经停了」。 本工具把「剩余不良率」当作学习对象,用 Wright 学习曲线 在双对数坐标下拟合, 给出学习率、放缓起点、以及达到目标良率所需的累计产量与时间。
输入数据格式
数据文件 yield_learning.csv,列顺序为:week、weekly_starts、cum_starts、yield_pct。
示例首行:1,500,500,55.1
示例输出(真实运行结果节选)
良率学习曲线与提升目标测算报告
==============================================================================
数据区间:第 1 周 ~ 第 20 周|良率 55.10% → 93.36%|累计投产 112000 片
模型:剩余不良率 R(x) = R0 · x^(−b)(x = 累计投产片数),双对数坐标下最小二乘拟合
学习率 LR = 2^(−b):累计产量每翻一倍,剩余不良率降为 LR 倍(LR 越小,学得越快)
【一、整体学习曲线拟合】
拟合式:ln(R) = 1.2354 -0.35393 × ln(x) (R² = 0.9677)
学习指数 b = 0.3539 ;学习率 LR = 0.7824
判定:LR = 0.7824 → 学习健康(参考:≤0.85 健康,≥0.93 停滞)
含义:累计产量从 112000 片翻倍到 224000 片时,剩余不良率从 0.0562 降到 0.0439
拟合残差(对数尺度):
第 1 周 良率 55.10% 对数残差 +0.16347
第 2 周 良率 65.38% 对数残差 +0.11150
第 3 周 良率 72.62% 对数残差 +0.05768
第 4 周 良率 77.74% 对数残差 +0.01701
第 5 周 良率 81.58% 对数残差 -0.02884
第 6 周 良率 84.24% 对数残差 -0.05465
第 7 周 良率 86.50% 对数残差 -0.09425
第 8 周 良率 88.15% 对数残差 -0.11550
第 9 周 良率 89.70% 对数残差 -0.15567
第 10 周 良率 90.71% 对数残差 -0.16393
第 11 周 良率 91.32% 对数残差 -0.14059
第 12 周 良率 91.51% 对数残差 -0.07737
第 13 周 良率 91.98% 对数残差 -0.05534
第 14 周 良率 92.17% 对数残差 -0.00646
第 15 周 良率 92.57% 对数残差 +0.00837
第 16 周 良率 92.64% 对数残差 +0.06116
第 17 周 良率 92.9
解决什么问题
· 「按现在的改善速度,95% 良率什么时候能到?」→ 近期段模型给出 36 周 / 45 万片。 · 「为什么最近几周良率涨幅越来越小?」→ 前后两段学习率对比,量化放缓程度。 · 「再多投点货,良率是不是自然就上去了?」→ 学习率告诉你边际收益衰减得多快。 · 「97% 良率该怎么达成?」→ 模型外推失效(>200 周)就是答案:靠产量堆不出来,必须换打法。
使用方法
python yield_learning.py # 示例数据(20 周爬坡,55.1% → 93.36%)
输入格式(CSV,UTF-8)
· cum_starts 为累计投产量(片/台/批次均可,口径要统一) · yield_pct 为周良率百分数;口径(测试程序、分级规则)必须前后一致
输出说明
· yield_learning.csv:示例数据(首次运行自动生成) · yield_learning_report.txt: · 整体学习曲线拟合(学习指数 b、学习率 LR、R²、残差逐周列出) · 分阶段学习率(识别放缓起点,区分「正常放缓」与「学习停滞」) · 目标良率预测(整体模型 vs 近期段模型 双口径对照 + 需追加产量 + 需周数) · 良率提升的产出补偿估算 · 结论与行动建议
适用场景
新品/新线良率爬坡计划制定、良率例会看板、改善项目收益测算、产能爬坡与交期联动。
注意事项
· 整体模型会高估当前进度:如果学习率前后不一致(本例 0.732 → 0.885), 用全部数据拟合出的曲线会「偏乐观」,所以报告同时给出近期段模型(以当前实际不良率为锚点), 取两者中更保守的结果作为预测依据。 · 学习率 LR = 0.80 的含义是:累计产量翻一倍,剩余不良率只降到 80%。LR 越接近 1,越接近停滞; LR ≥ 0.93 时基本可判定为学习停滞,继续投入产量不会自动改善。 · 更换测试程序、分级规则或产品结构后必须重新拟合,否则口径变化会造成假的「学习停滞」。 · 建议把 LR 放进良率例会看板:LR 变差往往比良率绝对值下降更早暴露问题。
常见误用与排错
· 自变量用「周产量」而不是「累计产量」:学习曲线是累计量驱动的,用周产量会算出错误的学习率。 · 只拟合后半段:早期快速爬坡数据会显著抬高学习率,预测偏乐观。建议全段拟合 + 分段对比。 · 把良率口径变更(测试程序升级、分级规则调整)当成学习重启,会得出虚假的「学习停滞」。 · 把 LR 当 KPI 考核:LR 只反映「产量驱动的改善」,专项攻关带来的台阶式提升不会体现在 LR 上。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:CSV_NAME="yield_learning.csv"、REPORT_NAME="yield_learning_report.txt"、TARGETS=[0.94, 0.95, 0.97]、WEEKS=[。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:yield_learning.csv、yield_learning_report.txt。
脚本里的主要处理步骤
fit_loglog():拟合 log(1-y) = a + s*log(cum),返回 (a, s, r2);b = -s。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 良率学习曲线与提升目标测算报告
- 【一、整体学习曲线拟合】
- 学习指数 b = %.4f ;学习率 LR = %.4f
- 学习健康
- 正常放缓
- 学习停滞 ▲
- 判定:LR = %.4f → %s(参考:≤%.2f 健康,≥%.2f 停滞)
- 拟合残差(对数尺度):
- 第 %2d 周 良率 %6.2f%% 对数残差 %+8.5f
- 【二、分阶段学习率(识别放缓起点)】
- 前半段(第 %d~%d 周):b=%.4f,LR=%.4f,R²=%.4f
- 后半段(第 %d~%d 周):b=%.4f,LR=%.4f,R²=%.4f
- ⚠ 后半段斜率为非负:近期良率不再随产量改善,属于**学习停滞**,
- 继续投产量不会自动带来良率提升,必须找新的改善来源(缺陷机制、设备匹配、设计规则)。
- 剩余不良来自少数难啃的机制,需要换打法(专项缺陷工程)。
- 前后两段学习率接近(%.4f vs %.4f):学习节奏稳定,
- 按现有改善机制继续推进即可。
- 【三、达到目标良率的预测(整体模型 vs 近期段模型)】
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:yield_learning.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 4 列:week、weekly_starts、cum_starts、yield_pct。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 一、整体学习曲线拟合、二、分阶段学习率(识别放缓起点)、三、达到目标良率的预测(整体模型 vs 近期段模型)、五、结论与行动建议 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
同分类的其它工具
本工具归在 SPC与质量分析工具包,全部工具见 工具资源包下载页。





