控制图基线建立与阶段化监控分析器|SPC实战工具
这个工具解决什么问题
这类分析的结果要能写进报告、经得起追问。因此中间量都会给出,而不是只给结论。
> 把建立基线与日常监控分开做 —— 控制限才不会被异常数据撑宽。
输入数据格式
数据文件 phase_data.csv,列顺序为:子组号、测量1、测量2、测量3、测量4、测量5。
示例首行:1,99.13,98.49,100.29,99.53,101.28
示例输出(真实运行结果节选)
==============================================================================
控制图基线建立与阶段化监控分析器(Phase I / Phase II)
==============================================================================
数据:45 个子组,每组 5 个测量值;基线期 1~32,监控期 33~45
规格限 94.0 ~ 106.0
【阶段一】基线建立(迭代 2 轮,剔除越限子组后收敛)
基线参与子组:30 个(原始 32 个,剔除 2 个)
被剔除子组:#11, #24 <- 建议先查这几组的量测与记录,别急着判工艺
基线中心线 Xbar = 100.165 极差均值 Rbar = 1.996 过程标准差估计 σ = 0.858
Xbar 控制限:LCL = 99.013 UCL = 101.316 (限宽 2.303)
R 控制限:LCL = 0.000 UCL = 4.220
【阶段二】用基线控制限监控 13 组(33~45)
判异命中 32 次;最早异常子组:#33
监控期均值 103.104 相对基线中心线偏移 +2.939(= 3.43 σ)
判读:过程已发生位移,需按最早异常子组回溯(换料 / 换机 / 量测 / 操作)
命中明细(前 8 条):
子组 #33 超控制限 Xbar=103.232
子组 #34 超控制限 Xbar=102.904
子组 #35 超控制限 Xbar=103.266
子组 #36 超控制限 Xbar=103.254
子组 #37 超控制限 Xbar=103.484
子组 #38 超控制限 Xbar=103.148
子组 #39 超控制限 Xbar=102.724
子组 #40 超控制限 Xbar=102.664
【对照】把 45 组数据一次性算控制限(常见误用)
控制限 LCL
适用场景
· 新线体 / 新产品的控制图上线,需要先拿到一套干净的控制限 · 老控制图反应迟钝、异常总在事后才发现,怀疑控制限被污染 · 客户或体系审核问:你的控制限是怎么算出来的 · 月度 SPC 复盘,需要区分基线期问题与监控期问题
怎么用
python phase_control_chart.py
首次运行会自动生成示例数据并输出完整报告。把示例数据换成自己的(保持列名与列顺序一致)后重新运行即可。
输入数据
phase_data.csv:子组号 + 测量1~测量5(自带 45 组示例:基线期含 2 组量测离群,监控期存在 +2.8σ 位移)
输出内容
· 阶段一:迭代剔除越限子组,输出干净基线的中心线、Rbar、σ 估计与控制限,并列出被剔除子组 · 阶段二:用基线控制限监控后续子组,逐条命中判异规则(超限 / 连续 7 点同侧 / 连续 6 点单调 / 2σ 外连 2 点) · 对照:把整段数据一次性算控制限(常见误用),量化它掩盖了多少次异常 · 过程能力:基线期与监控期的 Cp / Cpk 与预计超限 ppm 对照 · 行动建议:回溯起点、加严监控、重建时机
口径与注意事项
· 控制限必须由经阶段一确认的稳定期建立,不能用含异常的全量数据算 · 被剔除的子组要做数据可用性判定:量测错误就修数,真实异常要单独归因 · σ 估计采用 Rbar/d2(子组大小 5 时 d2 = 2.326),不要用全样本标准差代替
其他
· 示例数据中的位移是刻意植入的,用于演示阶段化口径的价值;换成自己的数据时保持列名不变。 · 输出报告为纯文本,可直接归档或作为附件;报告文件名见上方文件说明。 · 全部计算仅依赖 Python 标准库(csv / math / random / os),不需要联网、不需要安装任何包。
附赠提示词怎么用
脚本顶部集中了主要阈值与常量:CSV_NAME="phase_data.csv"、REPORT_NAME="phase_control_report.txt"、SPEC_LSL=94.0、SPEC_USL=106.0。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:phase_data.csv、phase_control_report.txt。
脚本里的主要处理步骤
gen_data():生成示例数据:基线期含 2 个量测离群点,监控期存在 +2.8σ 的持续位移。limits():由给定子组集合算 Xbar-R 控制限。subset: [(idx, [vals]), ...]phase1():迭代剔除越限子组,返回 (干净基线的子组集合, 控制限, 剔除明细, 迭代次数)。rules_xbar():Xbar 图判异(简化 4 条):超控制限 / 连续7点同侧 / 连续6点单调 / 2σ 外连2点。z_ppm():按正态近似估算超限比例(ppm,双侧)。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 生成示例数据:基线期含 2 个量测离群点,监控期存在 +2.8σ 的持续位移。
- 迭代剔除越限子组,返回 (干净基线的子组集合, 控制限, 剔除明细, 迭代次数)。
- 超控制限
- 连续7点在中线同侧(上)
- 连续7点在中线同侧(下)
- 连续6点上升
- 连续6点下降
- 连续2点在2σ外同侧
- 按正态近似估算超限比例(ppm,双侧)。
- 控制图基线建立与阶段化监控分析器(Phase I / Phase II)
- 数据:%d 个子组,每组 %d 个测量值;基线期 1~%d,监控期 %d~%d
- 规格限 %.1f ~ %.1f
- 【阶段一】基线建立(迭代 %d 轮,剔除越限子组后收敛)
- 基线参与子组:%d 个(原始 %d 个,剔除 %d 个)
- 被剔除子组:%s <- 建议先查这几组的量测与记录,别急着判工艺
- R 控制限:LCL = %.3f UCL = %.3f
- 【阶段二】用基线控制限监控 %d 组(%d~%d)
- 判异命中 %d 次;最早异常子组:#%s
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:phase_control_chart.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 6 列:子组号、测量1、测量2、测量3、测量4、测量5。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 阶段一、阶段二、对照、过程能力、行动建议 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
同分类的其它工具
本工具归在 SPC与质量分析工具包,全部工具见 工具资源包下载页。





