3. 描述性统计分析
各位工程师朋友,欢迎来到第三章。前两章我们聊了数据采集和清洗,现在手里终于有了干净的数据。但一堆数字摆在那,你能看出什么门道?
说实话,我刚入行那会儿,看着测试机吐出来的几十万行数据,头都是大的。后来带我的老工程师跟我说了一句话,我一直记着:「别急着算CPK,先看看你的数据长什么样。」
这一章,我们就来聊聊描述性统计。说白了,就是用几个关键数字,把一堆数据的「脾气秉性」给概括出来。
3.1 集中趋势:均值与中位数
先问大家一个问题:一个批次芯片的漏电流,你拿什么值代表它?
大部分人第一反应是「均值」。没错,均值是最直观的。把所有测试值加起来除以样本数,就是均值(Mean)。
均值公式:
μ = (x₁ + x₂ + ... + xₙ) / n
其中 μ 是总体均值,n 是样本量。
但均值有个致命弱点——它怕「极端值」。我记得有一次分析一个高速接口的抖动数据,有个别芯片因为测试接触不良,测出了离谱的数值。均值被这些异常点拉偏了整整 15%。如果当时只看均值,我可能会误判整个批次的良率。
这时候,中位数就派上用场了。
中位数(Median)就是把数据从小到大排好,取中间那个数。如果样本数是偶数,就取中间两个数的平均值。
我的习惯:每次拿到新批次的数据,我第一件事就是算均值和 中位数。如果两者相差超过 5%,我基本可以断定数据里有「脏东西」——要么是异常值,要么是分布严重偏态。
举个例子,某批次 10 颗芯片的功耗数据(单位 mW):
| 芯片编号 | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 | #10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 功耗(mW) | 102 | 105 | 98 | 101 | 103 | 99 | 100 | 104 | 97 | 150 |
算一下:均值 = (102+105+98+101+103+99+100+104+97+150)/10 = 105.9 mW。中位数呢?排序后:97, 98, 99, 100, 101, 102, 103, 104, 105, 150。中间两个是 101 和 102,中位数 = 101.5 mW。
看到了吗?均值被 #10 那颗异常芯片拉高了 4.4 mW,而中位数基本不受影响。所以,当数据分布不对称或有异常值时,中位数比均值更可靠。
3.2 离散程度:标准差
均值和中位数告诉我们数据的「中心」在哪。但芯片的一致性怎么样?是扎堆在一起,还是散得到处都是?这就需要看离散程度了。
标准差(Standard Deviation)是衡量数据离散程度最常用的指标。它表示每个数据点与均值的平均偏离程度。
样本标准差公式:
s = √[ Σ(xᵢ - x̄)² / (n-1) ]
其中 x̄ 是样本均值,n 是样本量。注意分母是 n-1,这叫「贝塞尔校正」,用于无偏估计总体标准差。
标准差越大,说明芯片之间的差异越大,工艺一致性越差。我见过最夸张的一次,某款电源管理芯片的带载电压标准差达到了 35 mV,而规格要求是 ±50 mV。虽然均值在中心,但尾巴已经碰到规格限了。这种批次,CPK 肯定不好看。
避坑指南:我曾经犯过一个错误——直接用 Excel 的 STDEV.P 函数算样本标准差。STDEV.P 是总体标准差公式(分母用 n),而我们的测试数据通常是样本,应该用 STDEV.S(分母用 n-1)。两者在小样本时差异明显,千万别搞混。
3.3 过程能力:CPK 与 PPK
好了,现在有了均值、中位数、标准差,我们基本能描述数据的样子了。但客户问的不是「你的数据长什么样」,而是「你的工艺能不能稳定产出合格芯片」。
这就引出了两个关键指标:CPK 和 PPK。
3.3.1 CPK:短期过程能力指数
CPK 衡量的是「短期」过程能力。它假设过程是稳定的,只考虑组内变异。计算公式如下:
CPK = min( (USL - μ)/3σ, (μ - LSL)/3σ )
其中 USL 是规格上限,LSL 是规格下限,μ 是过程均值,σ 是组内标准差。
CPK 的值可以这样解读:
- CPK ≥ 1.67:过程能力优秀,可以放心量产。
- 1.33 ≤ CPK < 1.67:过程能力良好,但需要持续监控。
- 1.00 ≤ CPK < 1.33:过程能力一般,需要改进。
- CPK < 1.00:过程能力不足,不合格品率已经很高了。
我个人习惯,在工程验证阶段,CPK 至少要达到 1.33 才敢放行。到了量产阶段,目标通常是 1.67 以上。
3.3.2 PPK:长期过程性能指数
PPK 衡量的是「长期」过程性能。它考虑的是总变异,包括组内和组间变异。公式和 CPK 很像,只是标准差换成了总体标准差:
PPK = min( (USL - μ)/3σ_total, (μ - LSL)/3σ_total )
其中 σ_total 是总体标准差(用所有数据算出来的标准差)。
CPK 和 PPK 的差异,能告诉我们很多信息:
| 对比项 | CPK | PPK |
|---|---|---|
| 关注点 | 短期、组内变异 | 长期、总变异 |
| 数据要求 | 需要子组(如每批 5 颗) | 所有数据一起算 |
| 反映问题 | 设备精度、操作一致性 | 工艺漂移、批次差异 |
| 典型关系 | CPK ≥ PPK | PPK ≤ CPK |
如果 CPK 很高但 PPK 很低,说明什么?说明你的短期能力很好,但长期来看,工艺在漂移。比如,同一台测试机测同一批芯片,上午和下午的结果不一样。这就是典型的「组间变异过大」。
我的经验:当 CPK/PPK 比值大于 1.3 时,我基本会怀疑过程存在「分层」现象。这时候我会按时间顺序画个控制图,看看是不是有趋势或周期性变化。
3.4 知识体系总览
为了让大家更直观地理解这些指标之间的关系,我画了一张图:
3.5 实战:一个完整的计算案例
光说不练假把式。我们拿一个真实案例走一遍流程。
假设某款芯片的参考电压规格是 1.20V ± 0.05V,即 LSL=1.15V,USL=1.25V。我们从量产批次中抽取了 20 颗芯片,测试结果如下:
| 样本 | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 | #10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 电压(V) | 1.203 | 1.198 | 1.211 | 1.195 | 1.207 | 1.202 | 1.199 | 1.205 | 1.210 | 1.196 |
| 样本 | #11 | #12 | #13 | #14 | #15 | #16 | #17 | #18 | #19 | #20 |
|---|---|---|---|---|---|---|---|---|---|---|
| 电压(V) | 1.208 | 1.201 | 1.197 | 1.204 | 1.206 | 1.200 | 1.212 | 1.194 | 1.209 | 1.203 |
我们来算一下:
- 均值:把所有 20 个数加起来除以 20,得到 1.203 V。
- 中位数:排序后第 10 和第 11 个数分别是 1.203 和 1.203,中位数 = 1.203 V。均值和 中位数几乎一样,说明数据分布对称,没有明显异常值。
- 标准差:用样本标准差公式算,得到 0.0053 V。
- CPK:假设组内标准差与总体标准差相同(简化处理),CPK = min((1.25-1.203)/(3×0.0053), (1.203-1.15)/(3×0.0053)) = min(2.96, 3.33) = 2.96。
- PPK:同样用总体标准差,PPK = 2.96(因为这里没有分组,CPK=PPK)。
结论:CPK=2.96,远大于 1.67。这个工艺能力非常强,可以放心量产。
但等等,如果 CPK 只有 1.1 呢?那就要小心了。我曾经遇到过一个项目,CPK 算出来 1.15,看着还行。但我仔细一看,均值已经偏到 1.22V 了,离 USL 只有 0.03V。虽然 CPK 勉强及格,但稍微有点工艺漂移就会出废品。后来我建议调整了 trim 值,把均值拉到 1.20V,CPK 直接升到 1.8。
重要提醒:CPK 高不代表没有异常。如果数据分布是双峰的,CPK 可能看起来不错,但实际上工艺存在「分层」。所以,算 CPK 之前,一定要先画直方图看看数据分布形态。