那家厂做汽车线束,端子压接是关键工序,全检拉力加外观。检验量跟着订单走,波动很大:小批车型一天四五百根,主力车型能干到一千二。
老周学过一点 SPC,知道要画图。可他手上那份模板是 np 图,模板明确写着子组必须恒定。于是他自作主张:每天只取前 500 件的数据,超出的不计。他跟我说:"反正也是抽样嘛,前 500 件还代表不了?"
那三个月的图,点子平平稳稳,一个报警都没出。客户端却连着三次投诉端子拉脱。我们坐下来复盘,把原始检验记录全调出来一比对,事情就露馅了:问题集中在大批量的日子——一到一千二的产量,压接机连续运转发热,模具间隙变化,不合格率会从 2% 一路蹿到 5%。而那些坏件,绝大部分出现在第 500 件之后。
说白了,他把最能说明问题的那段数据,亲手扔进了废纸篓。
其实解法特别简单:n 不固定,就别硬凑,直接画 p 图。p 图天生就是给"子组大小不一"准备的。
p 图(proportion chart,不合格品率控制图)画在纵轴上的,是每个子组的不合格品率:
``` p = D / n ```
其中 D 是这一子组里的不合格品件数,n 是这一子组的检验总数。
关键在这个除法。因为每个点都被自己的 n 除过一遍,所以哪怕今天检 470 件、明天检 640 件,画出来的点都在同一个"比率"标尺上,可比。这就是 p 图能容忍 n 变动的根本原因。
中心线是全体的加权平均率,注意不是各子组 p 的简单平均:
``` p̄ = Σ D_i / Σ n_i ```
我见过不少人图省事,把每天的 p 拿来直接求算术平均。子组一样大时无所谓,子组不一样大时就偏了——检 1200 件那天的分量,跟检 400 件那天的分量,本来就该不一样重。

p 图背后是二项分布。一个子组里有 n 件产品,每件独立地以概率 p 为不合格,那么不合格品数服从 B(n, p),率 p̂ 的标准差是:
``` σ_p = √( p̄ (1 − p̄) / n ) ```
控制限照 3σ 走:
``` UCL = p̄ + 3 √( p̄ (1 − p̄) / n ) CL = p̄ LCL = p̄ − 3 √( p̄ (1 − p̄) / n ) (算出负数就取 0) ```
公式里 n 在分母的根号下,n 越大,σ 越小,限越窄。所以 p 图的控制限天然是阶梯形的:检得多的那天限收紧,检得少的那天限放宽。第 36 篇会专门把这条"曲线限"掰开讲。
工程上有个偷懒但合规的做法:如果各子组的 n 都落在平均 n̄ 的 ±25% 以内,可以直接用 n̄ 算一组固定限,画成两条直线,不用一天一算。超出这个范围的个别子组,再单独补算它自己的限。这一招在班组手工画图的场合非常实用。
二项分布本身是离散、偏斜的,只有当 n 足够大时才近似成正态,3σ 限才靠谱。经验门槛是:
``` n · p̄ ≥ 5 (更稳的要求是同时 n(1 − p̄) ≥ 5) ```
反推一下就有意思了。假如你的过程不合格率只有 0.2%,那 n 至少要 5 / 0.002 = 2500 件,一个子组才够画一个点。你要是每班只检 50 件,绝大多数子组的 D 都是 0,图上一排贴地的点,LCL 又被截断在 0,等于这张图永远不会向下报警——只能等 D 突然跳到 2、3 才响一次。这种"睡着的 p 图",车间里到处都是。第 38 篇专门收拾这个坑。
还是端子压接。按老周的新做法,每天一个子组,n 就是当天实检数,D 是当天判废数。取连续 10 天:
| 子组 | n(检验数) | D(不合格品数) | p = D/n |
|---|---|---|---|
| 1 | 520 | 13 | 0.0250 |
| 2 | 480 | 10 | 0.0208 |
| 3 | 610 | 16 | 0.0262 |
| 4 | 550 | 12 | 0.0218 |
| 5 | 500 | 11 | 0.0220 |
| 6 | 640 | 15 | 0.0234 |
| 7 | 470 | 9 | 0.0192 |
| 8 | 580 | 14 | 0.0241 |
| 9 | 530 | 26 | 0.0491 |
| 10 | 620 | 15 | 0.0242 |
| 合计 | 5500 | 141 | — |
第一步,算中心线。
``` p̄ = ΣD / Σn = 141 / 5500 = 0.02564 (2.56%) ```
第二步,把公式里跟 n 无关的部分先算出来,省事。
``` √( p̄(1−p̄) ) = √( 0.02564 × 0.97436 ) = √0.024982 = 0.15806 ```
后面每个子组,只要拿 0.15806 除以 √n,再乘 3 就行。
第三步,逐子组算限。挑三个有代表性的:
子组 7(n = 470,最小): ``` σ = 0.15806 / √470 = 0.15806 / 21.68 = 0.007291 3σ = 0.02187 UCL = 0.02564 + 0.02187 = 0.04751 LCL = 0.02564 − 0.02187 = 0.00377 ```
子组 6(n = 640,最大): ``` σ = 0.15806 / √640 = 0.15806 / 25.30 = 0.006248 3σ = 0.01874 UCL = 0.02564 + 0.01874 = 0.04438 LCL = 0.02564 − 0.01874 = 0.00690 ```
子组 9(n = 530): ``` σ = 0.15806 / √530 = 0.15806 / 23.02 = 0.006866 3σ = 0.02060 UCL = 0.04624 , LCL = 0.00504 ```
第四步,判。子组 9 的实际 p = 26/530 = 0.0491,超过它自己的 UCL = 0.04624,出界,报警。其余 9 个点都在各自的限内。
查下去,第 9 天正好换了一批新到的端子料,线径公差偏上限,压接高度没跟着调,拉力值整体下滑。调了压接高度 0.05 mm,第 11 天的 p 回到 0.023。
再补一句刚才说的偷懒法:n̄ = 5500/10 = 550,最小 470 是 n̄ 的 85.5%,最大 640 是 116.4%,都在 ±25% 里。所以现场完全可以用 n̄ = 550 算一组固定限(UCL = 0.0459,LCL = 0.0054)画成两条直线,结论一样是子组 9 出界。班组白板上就这么画,够用。

p 图的价值,就在于它把"检了多少"这个变量正正经经地放进了公式里。子组不一样大不是麻烦,是常态——硬凑固定子组去迁就一张 np 图,才是真麻烦。记住三件事:中心线用加权率、限随 n 变、n 要撑得起 np̄ ≥ 5。
互动提问:翻一下你手上正在用的那张属性图,各子组的 n 波动有多大?如果最大的 n 超过平均值的 1.25 倍,你现在画的还是一条直线限吗?
如需配套互动练习、培训课件或软件试用,可搜索「东方大易」或访问大易官网 www.eastdayi.com(苏州东方大易管理咨询有限公司,电话 0512-65561989)联系客服获取。