首页/文章/ 详情

RSM算法系列详解二:Stepwise Regression

47分钟前浏览2

上次已经对 Polynomial SVD 做过详细解释——经典的多项式响应面算法。但它有一个众所周知的痛点:项数爆炸。

6 个变量、3 阶多项式,就是 84 项。这些项里大量是"凑数"的,对输出几乎没有贡献,全留着既浪费宝贵的训练点,又容易过拟合。Polynomial SVD 的解法是让工程师在 Term Selection 里手动勾掉没用的项,但这要求我们对问题非常了解,而且项一多,手动挑选本身就是一场灾难。

今天的主角 Stepwise Regression(逐步回归),就是把这个"手动勾选"的过程彻底自动化的算法,如果说 Polynomial SVD 是手动挡,那 Stepwise 就是它的自动挡。

"Stepwise Regression is an efficient and simple RSM algorithm: fully based on polynomial regression, it automatically adds and removes different polynomial terms from the model in a stepwise manner, relieving the user from the cumbersome tasks of manually tailoring a model to the problem at hand."

—— Technical Report 2014-003(Rigoni, 2014)

你只需要选定"算法类型 + 判断标准",它自己逐项尝试,自动找出又精简又准的最优模型。这篇推文把 Stepwise 的完整知识体系一次讲透。

01

核心概念:边际性原理

理解 Stepwise,必须先理解它的底层约束——边际性原理(Marginality Principle):

一句话:如果一个高阶项进了模型,它的所有"低阶组成部分"也必须在模型里。低阶项是高阶项的"地基"。

以两个变量 x₁、x₂ 为例:

如果模型里有…    
就必须还有…    
x₁²(二次项)    
x₁ 和常数 1    
x₁·x₂(交叉项)    
x₁、x₂、常数 1    
x₂²    
x₂、1    

反过来读:你想删掉 x₁(线性项)?不行——除非先把 x₁²、x₁·x₂ 这些"依赖 x₁"的高阶项先删光。

🏢 类比:盖楼

x₁² 是二楼,x₁ 是一楼,常数 1 是地基。你不能抽掉一楼却留着二楼,二楼会塌。同理,你不能删掉 x₁ 却保留 x₁²。

为什么要这么严格?三个理由:

  • 统计可解释性:

    不遵守边际性的模型,没有容易理解的统计意义。  
  • 大幅减少候选模型数量:

    不加约束,84 项"加/删哪些"的组合是天文数字;加了边际性约束,每步只能动"当前最高阶"的项,候选数骤减。  
  • 变量平移不变性:

    把坐标原点挪一下(x 换成 x+常数),原本删掉的项会"重新冒出来",模型形式就变了。遵守边际性后,模型解释不依赖你选的原点。  
02

三种算法类型:加、删、还是双向

算法类型    
只做什么    
大白话    
Forward       
前向选择      
只加项    
从最小模型(只有常数项)开始,一步步加最有用的项    
Backward       
后向消除      
只删项    
从最大模型(全项)开始,一步步删最没用的项    
Stepwise       
双向      
先删再加    
结合两者,先删没用的,再加回有用的    

👥 类比:团队管理

Forward 像招聘——从空团队开始,每次招一个最能干的人;Backward 像裁员——从满员团队开始,每次裁一个最没用的人;Stepwise 双向则像先裁员再补招。

每一轮的迭代过程:从"当前最优模型"出发,① 枚举所有"只加/删一个项(且遵守边际性)"能得到的候选模型 → ② 逐个训练、按你选的准则打分 → ③ 挑最好的作为新的当前模型 → ④ 重复,直到没有项能再改进(或达到最大迭代次数)。

03

四种判断标准:Stepwise 的"裁判"

加哪个项、删哪个项,谁说了算?Stepwise 提供四种判定标准,技术报告明确按能力从弱到强排列:

标准    
判定规则    
特点    
Adjusted R²
越大越好    
最弱(惩罚多余项)    
AIC
越小越好    
中等,兼顾拟合好 + 别太复杂    
BIC
越小越好    
比 AIC 惩罚更狠,更保守    
F-test
看 p-value    
最强    
,但最复杂(需配置显著性水平)    

前三者做的是同一件事:在"拟合好(RSS 小)"和"别太复杂(项少)"之间找平衡。区别只在惩罚强度——BIC 对复杂度的惩罚比 AIC 更狠。

F-test 的特殊性:它是成对比较(比较"加这个项之前 vs 之后"有没有显著变好),不是给全局打分。因为它本质是统计假设检验,所以最"严谨",但需要你额外设置显著性水平。

04

F-test 的两个显著性水平

选了 F-test 作为标准,会出现两个额外参数:

参数    
用途    
门槛    
Significance level for adding a term    
加项    
p-value 低于此值才接受    
Significance level for removing a term    
删项    
p-value 高于此值才接受    

⚠️ 官方铁律:删项的显著性水平必须大于加项的,设反了直接报错。原因:加项要"严格"(证明它真有用),删项要"宽松"(证明它真没用)——这是统计上的保守策略,防止模型来回震荡。

📎 细节要点:两个显著性水平,仅当 Algorithm type 选 Stepwise(双向)时成立。如果你用的是 Forward,面板上只会有 adding 水平(它只加项);用的是 Backward,则只会有 removing 水平(它只删项)。

05

统计基础:p-value 与显著性水平

 

p-value 是什么?一句话:在"假设这事本来没有"的前提下,观察到当前这么极端结果的概率。越小,说明结果越"不可能是巧合"。

🎲 骰 子例子

原假设 H₀:骰 子是公平的(默认"没异常")。结果你连续掷出 5 个 6。如果骰 子真公平,出现"5 个 6"这么极端结果的概率是 p = (1/6)⁵ ≈ 0.00013——这就是 p-value。p 值极小 → "公平骰 子几乎不可能出这种事" → 骰 子八成有问题 → 拒绝原假设。

最容易错的地方:p-value 不是"原假设成立的概率"。它是:先假定原假设成立,然后看数据有多离谱。数据越离谱,p 值越小,越有理由推翻原假设。

显著性水平 α 是什么?它是预先定好的"门槛",用来判断 p-value 算不算"够小",最常用 α = 0.05:

比较    
结论    
大白话    
p < α(如 0.00013 < 0.05)    
显著,拒绝 H₀    
"太巧了,肯定有事"    
p > α(如 0.3 > 0.05)    
不显著,接受 H₀    
"纯属正常波动,没证据"    

α 越小 = 门槛越严 = 越保守。α = 0.01 比 α = 0.05 更难"证明有事"。

06

加项 vs 删项:怎么记不反

很多人在这里绕晕:加项和删项的 p-value 判断,方向是不是相反的?记住一个核心心法:

加项和删项的原假设 H₀ 始终相同,都是"这项没用",不要换。p 值含义也不变(p 小 = 有用,p 大 = 没用),区别只在最后的动作方向。

场景    
原假设 H₀    
p < α(拒绝 H₀)    
p > α(接受 H₀)    
加项
这项没用    
有效果 → 加 ✅    
没效果 → 不加 ❌    
删项
这项没用    
有效果 → 不能删 ❌    
没效果 → 可以删 ✅    

⚠️ 常见错误:给删项换一个不同的原假设(比如"假设删除项有效果")会导致逻辑混乱。正确做法:原假设永远"这项没用"。加项 = "证明有用才加"(要 p 小);删项 = "证明没用才删"(要 p 大)。

📌 记忆口诀

加项要"证据充分才信它有用"(p 小);删项要"证据充分才信它没用"(p 大)。加项像录取(要高分),删项像开除(要铁证)。

07

为什么会有"迭代"与最大迭代次数

Stepwise 不是"一次性把所有项都定好",而是"每轮只动一个项,慢慢逼近最优"。"stepwise"这个词本身就是"一步步"的意思。

⛰️ 类比:雾中爬山

雾大看不到山顶,你每走一步看看哪个方向更高、往那边挪一步,重复直到四面都比自己低。Stepwise 同理——每轮只试"加/删 1 个项",选最好的,一步步贪心逼近。

为什么必须"一轮只动一个项"?因为项一多(比如 84 项),"该留哪些、该删哪些"的组合是天文数字,没法一次算完。一次动一个项,每步只需比较有限的候选,简单高效。停止条件有两个,满足任一即停:

停止条件    
说明    
A. 收敛
再怎么加/删项都变不好 → 自然停(理想情况)    
B. 达到最大迭代次数
强制停(防失控)    

为什么可能不收敛?两种情况:① 收敛慢(项多,加了删、删了加来回磨);② 震荡(尤其 F-test,几个差不多好的模型间来回跳)。达到上限就停,哪怕结果不是最优的。

核心结论:在 Design Space 手动训练的场景里,Stepwise 的"刹车"只有一个——Maximum number of polynomial SVD trainings(最大迭代轮数,达到即停)。


08

"一次动一个项" vs "几个候选"

一个经典疑问:"每轮动一个项,不也就增加一个候选吗,怎么是几个候选?"这里混淆了两个不同的"一"——"一次动一个项"说的是每个候选的变化幅度;"几个候选"说的是候选的数量。

具体例子:Forward selection,当前模型含 3 项(1, x₁, x₂),还剩 81 项可加。这一轮是把 81 个项分别加进去试:

  • 候选 1:1, x₁, x₂, +x₃
  • 候选 2:1, x₁, x₂, +x₁²
  • 候选 3:1, x₁, x₂, +x₂²
  • …… 共 81 个候选

每个候选都只加了 1 个项(变化幅度 +1),但"加哪一个"有 81 种选择,所以候选有 81 个。为什么一次不多加几个?因为候选数会爆炸:

  • 一次加 1 项 → 81 个候选
  • 一次加 2 项 → C(81,2) = 3,240 个候选
  • 一次加 3 项 → C(81,3) = 85,320 个候选

所以 Stepwise 刻意"一次只动一个项",把候选数压到线性量级,避免指数爆炸。

09完整配置清单  

参数      
说明      
Training data(训练数据)      
Training set      
选择用于训练的设计集,上限 5,000 个设计      
Exclude error designs      
排除计算出错的设计      
Remove repeated designs      
剔除重复的设计      
Basic configuration(基本配置)      
Starting polynomial degree      
起始阶数(从几阶开始)      
Maximum polynomial degree      
最高阶数;Backward 模式下禁用;阶数范围外的项不参与训练      
Advanced configuration(高级配置)      
Algorithm type      
Forward / Backward / Stepwise 三选一      
Criterion type      
Adjusted R² / AIC / BIC / F-test 四选一      
Significance level for adding / removing a term      
仅 F-test 启用;删项值必须 > 加项值;Forward 只出现 adding,Backward 只出现 removing      
Maximum number of polynomial SVD trainings      
最大迭代轮数上限,达到即停      
Variables normalization      
变量归一化(同 Polynomial SVD)      
Leave-one-out errors(留一法误差)      
Compute leave-one-out errors      
计算留一法(LOO)交叉验证误差,用于评估模型泛化能力      
10

与 Polynomial SVD 的对比

 
维度    
Polynomial SVD    
Stepwise Regression    
关系    
基础算法    
它的"自动挡"变体    
选项方式    
手动 Term Selection    
自动加/删    
核心约束    
无    
边际性原理    
裁判    
手动看指标    
自动按 Adjusted R²/AIC/BIC/F-test    
适合    
你懂问题、知道哪些项有用    
不懂、或项太多不想手动挑    

一句话记住:Stepwise Regression = Polynomial SVD + 自动选项 + 边际性约束。不用在项里手动挑,它自己按你指定的标准找出"又精简又准"的多项式模型。


Stepwise Regression 在 modeFRONTIER 的 RSM 家族中属于"经典但实用"的一档:它不改变多项式回归的本质,却用边际性约束 + 贪心搜索 + 统计判据三件套,把模型选择这件最折磨人的事自动化了。下次面对一堆设计变量、不知道该保留哪些项时,不妨试试这个"自动挡"。

更多算法内容,持续更新中...



来源:艾迪捷
UM爆炸
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-22
最近编辑:47分钟前
艾迪捷
MBD CAE解决方案专家
获赞 23粉丝 47文章 634课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈