1. SPC数据工程全景
统计过程控制(Statistical Process Control,SPC)的核心目标,是判断一个制造或服务过程是否处于“统计受控状态”,并在过程出现异常时尽早报警。它并不直接告诉你产品是否合格,而是回答一个更基础的问题:过程输出的波动,是仅由普通原因造成的,还是已经混入了可查明原因?理解这一点,是后续所有数据清洗与异常值治理工作的出发点。
一、SPC的三个核心概念
SPC建立在三个相互支撑的概念之上。第一是过程波动:任何过程输出都存在变异,变异分为普通原因(固有、随机、稳定)和特殊原因(突发、可查明、不稳定)。第二是控制限:控制限由过程自身数据计算得出,通常取均值±3倍标准差,它描述的是“过程当前实际能力范围”,而不是规格限。第三是判稳与判异:通过控制图上的点是否超出控制限、是否呈现连续上升、连续同侧等模式,判断过程是否受控。
需要特别强调:控制限(UCL/LCL)与规格限(USL/LSL)是两套完全不同的参照系。规格限来自客户或设计要求,控制限来自过程数据。一个过程可能“受控但不合格”,也可能“合格但不受控”。混淆二者,是SPC落地中最常见的错误之一。
二、控制图原理:为什么3σ能工作
以最常用的Xbar-R控制图为例。假设某注塑件关键尺寸目标为50.00 mm,每30分钟抽取5件组成一个子组,连续采集25个子组。对每个子组计算均值X̄和极差R,再计算总均值X̄̄与平均极差R̄。Xbar图的控制限为:
UCL = X̄̄ + A2 · R̄
LCL = X̄̄ − A2 · R̄
(n=5 时,A2 = 0.577)
R图的控制限为:
UCL = D4 · R̄
LCL = D3 · R̄
(n=5 时,D4 = 2.114,D3 = 0)
若示例中X̄̄ = 50.02 mm,R̄ = 0.08 mm,则Xbar图UCL ≈ 50.066 mm,LCL ≈ 49.974 mm。当某子组均值落在控制限之外,或连续7点递增、连续7点在中心线同侧,就应触发异常调查。3σ之所以被广泛采用,是因为在正态假设下,普通原因造成点超出控制限的概率约为0.27%,即约370次中出现1次,属于小概率事件,一旦发生更可能是特殊原因所致。
三、数据清洗与异常值治理在SPC中的定位
控制图的有效性完全依赖输入数据的质量。如果原始数据中混入了录入错误、传感器漂移、重复记录、单位不一致或非过程原因造成的极端值,那么计算出的X̄̄、R̄和控制限都会被污染,导致两种后果:一是控制限被异常值“撑宽”,真实异常被掩盖;二是异常值本身被误判为过程失控,造成误报警。
因此,数据清洗与异常值治理在SPC中不是附属步骤,而是控制图可信度的前置保障。它要解决的不是“把数据改好看”,而是区分三类情况:
- 数据错误:如小数点错位、单位混用、重复上传,应修正或剔除;
- 过程异常:如设备故障、换料、换模造成的真实偏移,应保留并触发调查;
- 正常极端波动:属于普通原因范围内的尾部数据,不应随意删除。
治理顺序通常是:先做完整性、重复性、单位一致性检查,再做基于物理量程和业务规则的硬边界过滤,最后才用统计方法(如3σ、IQR、MAD)识别可疑点,并结合时间戳、设备号、批次号回溯判断其性质。统计方法只负责“标记可疑”,是否剔除必须由工程判断决定。
四、课程项目与数据环境搭建
本课程将围绕一个贯穿始终的示例项目展开:某注塑车间关键尺寸SPC监控。项目数据环境包含三部分:
- 原始数据层:CSV文件,字段包括时间戳、设备号、批次号、子组号、样本序号、测量值、量具编号、操作员;
- 清洗规则层:用Python或Excel实现单位统一、重复剔除、量程过滤、缺失标记;
- 分析输出层:计算X̄̄、R̄、控制限,绘制Xbar-R图,输出异常点清单与判异原因。
建议的初始环境为Python 3.10 + pandas + numpy + matplotlib,或使用Minitab/JMP等统计软件。数据文件建议按“日期_设备号.csv”命名,便于按设备分别建立控制图。示例数据中可故意植入少量错误值(如50.00误录为500.0)、重复行和单位不一致(mm与cm混用),用于练习清洗与治理流程。