返回 Skill 列表
extension
分类: 数据与分析无需 API Key

SPC统计过程控制技能包

统计过程控制(SPC)专业能力 Skill。用于制造业/质量管控场景:自动生成 Shewhart 控制图(Xbar-R、Xbar-S、I-MR、P、NP、C、U)、执行 Nelson 8 条判异规则检测、计算过程能力指数(Cp/Cpk/Pp/Ppk/Cpm/PPM)与正态性检验,并输出 SVG 控制图与 HTML/Markdown/JSON 报告。触发词:SPC、统计过程控制、控制图、均值极差图、单值移动极差图、过程能力、Cp、Cpk、Ppk、判异、Western Electric、质量管控、良率分析、缺陷率。

person作者: user_da753134hubcommunity

SPC 统计过程控制

能力概览

本 Skill 提供端到端的统计过程控制(SPC)分析能力,覆盖从"过程是否稳定"到"过程是否满足规格"的完整判定链:

  1. 变量型控制图:Xbar-R(均值-极差,2≤n≤9)、Xbar-S(均值-标准差,n≥10)、I-MR(单值-移动极差,n=1)
  2. 属性型控制图:P(不良率,样本量可不等)、NP(不良数,样本量恒定)、C(缺陷数,检验面积恒定)、U(单位缺陷数,检验面积可不等)
  3. 判异检测:Nelson 8 条规则(含 Western Electric 等价表述),主图与副图(R/S/MR)均判定
  4. 过程能力分析:Cp / Cpk / Pp / Ppk / Cpm / PPM(百万不良率)/ Anderson-Darling 正态性检验

引擎 scripts/spc.py纯 Python 标准库实现,零第三方依赖,可随 Skill 在任何装了 Python 3.8+ 的环境直接运行。

触发场景

  • 用户要做质量管控、过程稳定性分析、控制图绘制、过程能力评估
  • 用户提供了一批过程测量数据(CSV),希望判断是否受控、是否达标
  • 咨询交付物需要"控制图 + 判异结论 + 能力指数"的质量分析报告
  • 关键词:SPC、控制图、Xbar-R、I-MR、过程能力、Cp/Cpk、判异、良率、缺陷率

数据格式约定

CSV(UTF-8,首行为表头)。脚本自动识别变量型/属性型、宽表/长表;也可用参数显式指定。

变量型 —— 宽表(推荐,每行一个子组)

每行一个子组,数值列即测量值:

S1,S2,S3,S4,S5
9.94,9.93,9.95,10.28,9.95
...

变量型 —— 长表(value + 可选 subgroup)

subgroup,value
1,50.1
2,49.8
...

单值序列(I-MR)可直接用单列 value 的 CSV,或长表每子组仅 1 个值。

属性型 —— 长表

  • P/NP:defects(不良数)+ size(样本量,NP 需恒定)
  • C:defects(缺陷数计数)
  • U:defects(缺陷数)+ size(检验单位数,可不等)
subgroup,defects,size
1,5,100
2,3,100
...

控制图选型决策

| 数据类型 | 子组容量 n | 推荐控制图 | |----------|-----------|------------| | 连续测量(变量) | n = 1 | I-MR | | 连续测量(变量) | 2 ≤ n ≤ 9 | Xbar-R | | 连续测量(变量) | n ≥ 10 | Xbar-S | | 不良/合格(计件) | 样本量不等 | P | | 不良/合格(计件) | 样本量恒定 | NP | | 缺陷数(计点) | 检验面积恒定 | C | | 缺陷数(计点) | 检验面积不等 | U |

不确定时传 --chart auto,脚本按数据形态自动选择。

工作流

调用 scripts/spc.py,三个子命令:chart(仅控制图)、capability(仅能力分析)、analyze(控制图+能力+判异,最常用)。

1) 控制图 + 判异

python SKILL_DIR/scripts/spc.py chart \
  --input data.csv \
  --chart xbar-r \          # auto|xbar-r|xbar-s|i-mr|p|np|c|u
  --out ./out --prefix rpt \
  --report html             # html|md|json|all

变量型长表需补 --value-col value --subgroup-col subgroup;I-MR 单列 CSV 直接 --chart i-mr。 属性型需补 --defects-col defects --size-col size

2) 过程能力分析(变量型)

python SKILL_DIR/scripts/spc.py capability \
  --input data.csv --chart xbar-r \
  --usl 11 --lsl 9 --target 10 \   # target 可选
  --out ./out --prefix cap

能力指数需规格上下限 --usl / --lsl(必填)。脚本自动用 R̄/d2(或 S̄/c4、MR̄/d2)估计组内标准差。

3) 一键完整分析

python SKILL_DIR/scripts/spc.py analyze \
  --input data.csv --chart auto \
  --usl 11 --lsl 9 --target 10 \
  --out ./out --prefix full --report all

输出说明

每次运行在 --out 目录生成:

  • {prefix}.html:集成 SVG 控制图 + 判异结论 + 能力表的自包含报告(默认交付物)
  • {prefix}.md / {prefix}.json--report all 时附加
  • {prefix}_1.svg{prefix}_2.svg…:主图、副图、能力直方图(SVG,可直接嵌入文档/网页)
  • 控制台输出 JSON 摘要:{status, type, ooc_rules, files}

判异结果分主图(ooc)与副图(ooc_secondary),列出触发的 Nelson 规则编号与对应点序号。

一键演示(客户现场)

Skill 内置 examples/ 演示数据集,无需自备数据即可现场演示。每个示例都带"受控 / 失控"对照,便于向客户讲清核心概念。

| 示例文件 | 控制图 | 演示要点 | |----------|--------|----------| | examples/xbar_r_demo.csv | Xbar-R | 含特殊原因(第18子组偏移)→ 失控,讲"判异" | | examples/xbar_r_clean.csv | Xbar-R | 受控 + 能力达标(规格 9~11),讲"正常基线" | | examples/cap_low.csv | Xbar-R | 受控但 Cpk<1.33,讲"受控 ≠ 合格" | | examples/imr_demo.csv | I-MR | 单值序列标准受控对照 | | examples/p_demo.csv | P | 属性型不良率,第10/20子组偏高 → 判异 |

典型演示命令(投屏即用)

# 将 SKILL_DIR 替换为 Skill 实际安装目录,例如:
#   Windows:   C:/Users/Administrator/.workbuddy/skills/spc
#   macOS/Linux: ~/.workbuddy/skills/spc
SKILL_DIR="C:/Users/Administrator/.workbuddy/skills/spc"
SP="$SKILL_DIR/scripts/spc.py"
EX="$SKILL_DIR/examples"

# 1) 失控演示(最抓眼球):轴承内径 Xbar-R,第18子组异常
python $SP analyze --input $EX/xbar_r_demo.csv --chart auto \
  --product "轴承内径" --line "机加线A-3" --analyst "老黄" --date 2026-08-08 \
  --out ./demo --prefix demo_ooc --report all

# 2) 受控 + 能力达标:同产品正常基线
python $SP analyze --input $EX/xbar_r_clean.csv --chart auto \
  --usl 11 --lsl 9 --target 10 \
  --product "轴承内径" --line "机加线A-3" --analyst "老黄" --date 2026-08-08 \
  --out ./demo --prefix demo_ok --report all

# 3) 受控≠合格:Cpk 不足(演示核心认知)
python $SP analyze --input $EX/cap_low.csv --chart auto \
  --usl 11 --lsl 9 --target 10 \
  --product "轴承内径" --line "机加线C" --analyst "老黄" --date 2026-08-08 \
  --out ./demo --prefix demo_low --report all

# 4) 属性型 P 图(不良率判异)
python $SP analyze --input $EX/p_demo.csv --chart p \
  --defects-col defects --size-col size \
  --product "焊接不良" --line "焊装线B" --analyst "老黄" --date 2026-08-08 \
  --out ./demo --prefix demo_p --report all

生成的 demo/demo_ooc.html 等即带元信息卡 + 综合结论横幅(稳定性 / 能力双维度)+ 改进建议的投屏级报告,浏览器直接打开即可讲解。

关键说明与边界

  • 受控 ≠ 合格:控制图说明"过程稳定",能力指数说明"是否满足规格",二者需联合解读。
  • 正态性前提:Cp/Cpk 基于正态假设;若 Anderson-Darling A² ≥ 0.752(α=0.05)提示非正态,结论需谨慎,建议先做数据变换。
  • 属性型不做经典能力指数:P/NP/C/U 输出平均质量水平(p̄/c̄/ū)与不良率,不计算 Cp/Cpk。
  • 控制限基准:基于当前数据估计;量产后宜用历史数据建立控制限,再监控新数据。
  • 详细公式与常数见 references/formulas.mdreferences/constants.md;判异规则释义见 references/we_rules.md

交付建议(面向咨询场景)

analyze 生成的 HTML 报告作为客户交付物主干,配合一段结论性文字:先陈述"过程是否统计受控"(判异结果),再给出"过程能力等级"(Cp/Cpk 与 PPM),最后给出改进建议(如 Cpk<1.33 需降低变异或调整中心)。