计数型控制图与不合格率显著性检验器|SPC实战工具
这个工具解决什么问题
计量型控制图(如 IMR、XbarR、EWMA、CUSUM)只能管「连续测量值」,但产线每天更常见的是「这批检了 200 个、不良 12 个」「这块板子数出 30 个缺陷点」这类计数数据。很多工程师拿计量型工具硬套,口径全错。本工具专做计数型:p 图看不合格品率、np 图看不合格品数、c 图看单位缺陷数、u 图看单位面积/台缺陷密度,并内置三种判异规则(超 3σ、连续 7 点同侧、连续 7 点单调)。此外,当怀疑「最新这批是不是比平时差」,工具用两比例 z 检验给出可量化的显著性结论,避免凭感觉拍板,也便于在评审会上用数据说话。
输入数据格式
数据文件 attribute_spc_sample.csv,列顺序为:lot、inspect_n、nonconforming_n、defects_n、note。
示例首行:L01,200,18,28,
示例输出(真实运行结果节选)
============================================================================== 【计数型控制图】p / np / c / u 四图 + 不合格率两批显著性检验报告 ============================================================================== 样本文件:attribute_spc_sample.csv 批次总数:30 总检验数 Σn=6040 总不合格品数 Σnp=662 总体不良率 p̄ = Σnp/Σn = 662/6040 = 10.96% ------------------------------------------------------------------------------ 【一、p 图(不合格品率,逐点控制限,LCL 截断 0)】 ------------------------------------------------------------------------------ 批次 n 不合格数 p UCL LCL 判定 L01 200 18 9.00% 17.59% 4.33% 受控 L02 220 25 11.36% 17.28% 4.64% 受控 L03 180 17 9.44% 17.95% 3.97% 受控 L04 200 22 11.00% 17.59% 4.33% 受控 L05 220 19 8.64% 17.28% 4.64% 受控 L06 180 17 9.44% 17.95% 3.97% 受控 L07 200 20 10.00% 17.59% 4.33% 受控 L08 200 62 31.00% 17.59% 4.33% 超限 L09 180 21
一句话
对不合格品数、缺陷数这类计数型(属性值)质量数据,一键画出 p/np/c/u 四张控制图并做两批不合格率的显著性检验,快速判定过程稳不稳、最新批是不是真的变差了。
运行环境与快速开始
纯 Python 标准库,零第三方依赖,Python 3.8+ 即可运行。首次运行自动生成示例 CSV 与报告。
python attribute_chart.py
输入数据格式
CSV 逐行表示一批次,列名如下: · lot:批次号(文本,如 L01) · inspect_n:本批检验数(整数,样本量) · nonconforming_n:本批不合格品数(整数,≤ inspect_n) · defects_n:本批缺陷/不良点数(整数,可大于 nonconforming_n) · note:备注(可空,用于标注异常批)
输出说明
报告含七部分:① p 图逐批判定 ② np 图(含不等样本量提示)③ c 图 ④ u 图 ⑤ 三种判异规则结果 ⑥ 末批与基线两比例 z 检验 ⑦ 结论与建议。同时打印控制台并写入 示例输出报告.txt。
算法口径(关键公式)
· p̄ = Σnp / Σn;p 图限 = p̄ ± 3√(p̄(1-p̄)/n_i),LCL 截断 0 · np 图:n 全等时直接用 n·p̄;不等则取最小 n0,限 = n0·p̄ ± 3√(n0·p̄(1-p̄)) · c̄ = Σc / k(k 为批数);c 图限 = c̄ ± 3√c̄ · ū = Σc / Σn;u 图限 = ū ± 3√(ū/n_i) · 两比例 z 检验:z = (p1-p2)/√(p̄(1-p̄)(1/n1+1/n2)),p = erfc(|z|/√2)
参数与调整点
SEED = 20261002 # 示例数据随机种子 BASELINE_N = 7 # 基线批次数(取前 N 批与末批做 z 检验) N_LOTS = 30 # 示例批次数 K_SIGMA = 3 # 控制限倍数(默认可改 2 或 3.5)
常见误判与注意事项
1. p 图控制限随 n 变化,n 差异大时应逐点画限,不能套用一条水平线。 2. np 图要求各批样本量相等;样本量不等时本工具改用最小 n 基准,限偏保守,宜优先改用 p 图。 3. 连续 7 点同侧/单调只是「预警」,须先查特殊原因,再决定是否调整控制限。 4. z 检验用正态近似,单批样本量过小时 p 值不准,建议每批 n ≥ 30 再下结论。
附赠
附赠提示词.txt 提供 3 条可直接投喂大模型的配套提示词,用于把控制图结论转化为异常排查清单、质量周报与供应商整改要求。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:SEED=20261002、CSV_NAME="attribute_spc_sample.csv"、N_LOTS=30。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:attribute_spc_sample.csv。
脚本里的主要处理步骤
gen_sample_csv():固定随机种子生成示例数据,并刻意植入:2 个超 3σ 失控批、7 点递增趋势、末批显著异于基线。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 趋势段:不合格数持续上升
- 各批 n 相等(n={n0}),np 图直接使用统一控制限。
- 各批 n 不等(最小 n0={n0}),np 图取最小样本量作统一基准,控制限偏保守。
- 【计数型控制图】p / np / c / u 四图 + 不合格率两批显著性检验报告
- 样本文件:{CSV_NAME} 批次总数:{R[
- ]} 总检验数 Σn={R[
- ]} 总不合格品数 Σnp={R[
- 总体不良率 p̄ = Σnp/Σn = {R[
- 【一、p 图(不合格品率,逐点控制限,LCL 截断 0)】
- p 图越限批:偏高 {[data[i][
- ]]};偏低 {[data[i][
- 【二、np 图(不合格品数)】
- 统一基准 n0={R[
- ]},中心线 n0·p̄={R[
- np 图越限批:{np_ooc}
- 【三、c 图(缺陷数,单位=批)】
- c 图越限批:{c_ooc}
- 【四、u 图(单位缺陷数,逐点控制限)】
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:attribute_chart.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 5 列:lot、inspect_n、nonconforming_n、defects_n、note。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 计数型控制图、二、np 图(不合格品数)、三、c 图(缺陷数,单位=批)、四、u 图(单位缺陷数,逐点控制限)、五、判异规则(基于 p 序列) 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
同分类的其它工具
分类归属:SPC与质量分析工具包;完整清单在 工具资源包下载页。





