关键因子分析:从几十个参数里筛出真正相关的那几个
一条产线能采到的参数常有几十上百个,但真正影响质量的通常只有三五个。问题是哪几个。这一章讲三条互相独立的筛选路径,以及为什么只有一条路指向的因子不能信。
筛因子的目的不是建出最准的模型
数据科学里做特征选择,目标通常是提升模型预测精度。六西格玛项目里做因子筛选,目标不一样——是为了把后续试验的范围缩小到可承受。
原本要验证 20 个参数,每个参数试三个水平,全因子试验要跑几万组;筛到 4 个之后,一轮试验几十组就能覆盖。省下的是真金白银的试验成本和产线时间。
这个目标差异带来两个直接后果。第一,可解释性优先于预测精度——一个 AUC 0.95 但说不清为什么的模型,在这里不如一个 AUC 0.82 但每个因子都能对上工艺原理的模型。第二,宁可多留一个也不要漏掉一个,因为漏掉的因子在后续试验里根本没有机会出现。
三条路各走一遍,看结果重不重合
三条路的假设完全不同,因此能互相检验。
相关与检验
最经典的一条,假设是线性关系或组间差异。
- 连续参数对连续结果:相关系数
- 分类参数对连续结果:方差分析
- 分类参数对不良率:卡方检验
- 多参数同时:多元线性回归
优点:结论有统计依据,便于汇报。局限:看不到非线性关系与参数之间的交互作用。
特征重要度
用树模型或正则化回归给参数排序,不预设关系形式。
- 随机森林或梯度提升的重要度排序
- 置换重要度(打乱某列看精度掉多少)
- 正则化回归自动把无关项压到零
- 单笔归因看某个具体样本受什么影响
优点:能捕捉非线性与交互。局限:排序结果受共线性影响大,而且给的是相关不是因果。
工艺原理与经验
工程师根据物理化学机理和现场经验列出的怀疑对象。
- 因果图梳理人机料法环测
- 历史异常的根因记录
- 设备原理上的直接影响链
- 老师傅说的「这个一变就出问题」
优点:基于真实的因果机制。局限:可能带有经验偏见,也可能漏掉没人想到的因素。
这三条路的价值不在于哪条更准,而在于它们的错误方式不一样。统计方法会漏掉非线性关系,模型方法会被共线性误导,工程经验会有盲区。三条路都指向的因子,同时被三种方式误判的可能性很低。
交叉结果怎么解释
| 重合情况 | 可信度 | 建议动作 |
|---|---|---|
| 三条路都指向 | 高 | 直接进入下一步试验验证,优先级最高 |
| 统计 + 模型指向,工程说不通 | 中,需查 | 很可能是共线性或混杂变量。去查这个参数和哪个已知因子高度相关,真正起作用的可能是后者 |
| 工程指向,数据里看不出 | 中,不要排除 | 常见原因是该参数在历史数据里基本没变过——没有变异就测不出影响。需要在试验里主动改变它 |
| 只有模型给了高重要度 | 低 | 先查数据泄漏。这个参数是不是结果的衍生物,或者是在结果产生之后才记录的 |
| 只有统计显著 | 低 | 参数多的时候,总有几个会偶然显著。结合差异幅度判断,不要只看 p 值,参见第 4 章 |
第三行值得特别注意。历史数据里没变过的参数,任何数据方法都发现不了它的影响,但它可能恰恰是最关键的那个——因为它一直被控制得很好。这类因子只能靠工程经验提出,并在试验设计中主动设置不同水平来验证。
这五种情况会让筛选结果完全错掉
把结果的衍生物当成了输入参数。比如用「返修工时」预测不良率——返修是因为不良才发生的,模型当然找得准,但这个因子没有任何改善价值。
怎么查:对每个高重要度的参数问一句「它是在结果产生之前就确定了,还是之后才有的」。时间顺序理清楚,泄漏基本就排除了。
两个高度相关的参数(比如「设定温度」和「实测温度」),模型会把重要度在两者之间随机分配,结果可能是两个都排名中等,反而被漏掉;也可能一个排第一另一个接近零,让人误以为后者无关。
怎么查:先算参数之间的相关矩阵,把高度相关的成组处理,每组只留一个代表进入模型,或者用对共线性不敏感的方法。
A 和 B 都在变,而且同步变。数据上看 A 与结果强相关,实际起作用的是 B。最常见的混杂是时间——设备状态、原料批次、环境温湿度都随时间变化。
怎么查:把时间、批次、班次这类变量作为分层因素纳入分析,看在同一层内部 A 与结果是否还相关。层内相关消失,说明原来那个相关是混杂造成的。
历史数据里温度只在 180 到 190 度之间变化,模型学到的规律只在这个区间成立。拿它去推断 200 度会怎样,没有任何依据。
怎么查:把每个候选因子的历史取值范围列出来,和你打算调整的范围对照。超出历史范围的部分,只能靠试验,不能靠模型。
这是最根本的一条。所有从观测数据里得到的因子排序,给出的都是相关性。只有主动改变参数并观察结果的试验,才能建立因果。
怎么办:把筛选结果定位成「值得做试验验证的候选清单」,而不是「已确认的影响因素」。汇报时的措辞也要准确,这一点在向管理层要试验预算时尤其重要。
在数据平台里怎么搭这条流程
准备宽表并检查数据质量
从第 1 章的口径流程接过来,一行一个观测单位,一列一个参数,最后一列是质量结果。先看每列的缺失率与取值范围,缺失太多或几乎不变的列直接剔除并记录原因。
先算相关矩阵,识别成组的参数
这一步在建模之前做,目的是提前发现共线性。把高度相关的参数分组记录下来,后面解读重要度时要参照这份分组。
统计路与模型路各跑一遍
统计侧做相关分析、方差分析或回归;模型侧训练随机森林或梯度提升模型并输出特征重要度。注意训练时要划分训练集与测试集,在测试集上确认模型确实有预测能力——一个测试集上表现很差的模型,它给的重要度排序不值得看。
把三条路的结果并排放
做一张表:一行一个参数,三列分别是统计结论、模型排名、工程判断。工程判断那一列需要工艺工程师填,这一步必须有人参与,不能省。表做出来之后,按上一节的规则判读。
输出候选清单,交给下一步
最终输出是一份带优先级的候选因子清单,每个因子附上:三条路的判断、历史取值范围、建议在试验中考察的水平范围。这份清单是试验设计或参数寻优的输入。
这份清单交出去之前确认六件事
- 每个入选因子都能讲出工艺机理。讲不出来的不是不能留,但要在清单里标注为「机理待确认」,提醒试验时重点观察。
- 数据泄漏已经逐个排查过。按时间顺序问一遍,这一步花不了十分钟,但能避免整轮试验白做。
- 共线性成组已经标注。同组里选了哪一个作为代表、为什么选它,要写清楚。
- 模型在测试集上确实有预测能力。把评估指标一并写进报告,不要只给重要度排名。
- 历史取值范围已列出。并明确标出哪些因子的试验范围会超出历史数据覆盖。
- 措辞是「候选」不是「确认」。观测数据给的是相关,因果要靠试验。这句话应该出现在报告结论里。
六西格玛数据分析 · 本系列六章
- 数据从哪来、口径谁说了算
- 过程能力 Cp/Cpk 怎么算、怎么自动重算
- 控制图与判异规则怎么落到数据上
- 质量分析里怎么选假设检验方法
- 从几十个工艺参数里筛出关键因子当前章节
- 参数寻优:能做什么、不能做什么
先把工程师那一列填上
三条路里最容易被跳过的是工程经验那一条,因为它要占用工艺工程师的时间。但恰恰是它决定了模型给出的排序能不能信。下次做因子筛选,先拿一小时和工程师过一遍怀疑清单,再去跑数据。