内容性质:可复现示例。文中示例为教学用途,不包含真实企业数据;方法与配置请结合实际条件验证。

先明确这张图回答什么

假设每个时点只得到一个按时间顺序记录的测量值,可以用单值图观察过程变化。本例用 20 个模拟基线值计算控制限,再添加一个新的观察值;数据仅用于展示计算步骤,不足以代表任何生产过程。

控制图关注相对于基线的变化。规格限来自产品或工艺要求,控制限来自过程数据的统计估计。点在控制限内,不自动意味着产品满足规格;点超出控制限,也应先调查原因而不是直接删除。

计算中心线与控制限

对相邻两个观测值计算绝对差 MR,再求平均移动极差。按相邻两点移动极差的单值图方法,用 MR 均值除以 1.128 估计过程标准差,控制限为均值上下各三倍该估计值。公式来源链接见文末。

MR[i] = abs(x[i] - x[i-1])
sigma_estimate = mean(MR) / 1.128
CL = mean(x)
LCL = CL - 3 * sigma_estimate
UCL = CL + 3 * sigma_estimate

运行示例并查看图形

下载 Python 脚本,使用 Python 3 运行即可,不需要安装第三方库。脚本打印中心线、上下控制限和新观察值是否超限,同时在当前目录生成 control-chart.svg。CSV 文件提供相同的输入数据。

示例只用基线估计控制限,新观察值不参与计算。这样可以避免把待监控的新变化立刻混入基线,造成控制限跟着变化。脚本也保留了输入顺序,没有把数据按大小排序。

python spc_individuals.py
# 输出 control-chart.svg;用浏览器打开查看
模拟单值控制图:20 个基线值与第 21 个超出上控制限的观察值
模拟数据生成的图;最后一个点不参与基线控制限计算。

看到信号之后应记录什么

如果新观察值超限,先确认测量记录、单位、设备状态与采样条件是否正确,再记录当时的材料、人员、方法和环境变化。不能为了让图变好看而删除点;若确认有可解释的特殊原因,应保留原始数据和处理依据。

本例仅实现单点超出三倍标准差控制限的提示,没有实现连串、趋势等规则,也没有据此计算过程能力。实际应用还需要检查测量系统、数据相关性、分布特点、基线稳定性及合适的分组方式。

练习:只改变一个条件

可以把最后一个模拟观察值改为靠近中心线的数值,再运行一次。比较图形与提示是否一致。也可以把某个基线值改得很大,观察估计控制限如何变化,理解为什么基线需要有代表性。

若记录存在漏测或采样间隔变化,不应默默填零。先定义如何处理缺失以及哪些观测之间适合计算移动极差,再讨论计算结果。

示例下载

参考资料