You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在回归建模中需舍弃一个虚拟变量?

为什么回归模型中虚拟变量要舍弃一个?

好问题!这本质上是为了避免完全多重共线性的问题,咱们用个接地气的例子就能把这事说透:

假设你的数据集里有个「位置」变量,分为三个类别:城市、郊区、农村。如果你把这三个类别都转换成虚拟变量(比如city=1表示住在城市,否则为0;suburb=1表示住在郊区,否则为0;rural=1表示住在农村,否则为0),你会发现一个铁定成立的等式:city + suburb + rural = 1。

而咱们常用的回归模型里一般都会包含一个常数项(截距项),这个常数项的含义其实是「所有虚拟变量都为0时的基准值」——但在这个例子里,三个虚拟变量根本不可能同时为0,而且它们的和刚好等于常数项对应的那个“1”,这就造成了变量之间存在完全的线性依赖关系。

这会带来什么问题呢?

  • 回归模型的参数估计(比如OLS普通最小二乘法)依赖于对一个矩阵求逆操作,一旦存在完全多重共线性,这个矩阵就不可逆,模型根本算不出有效的参数值,就像解方程组时遇到了重复的方程,没法得到唯一解。

那舍弃一个虚拟变量为啥就能解决问题?

  • 比如咱们舍弃rural这个虚拟变量,剩下的city和suburb就可以和常数项配合,清晰表达每个类别的效应:常数项代表农村的基准值,city的系数就是「城市相对于农村的差异」,suburb的系数就是「郊区相对于农村的差异」。这时候所有变量之间没有了线性依赖,模型就能正常估计出有意义的参数了。

补充一句:也有少数情况会去掉模型的常数项,这时候可以保留所有虚拟变量,但这种做法会让参数解释变得复杂,所以绝大多数场景下,大家还是会选择保留常数项并舍弃一个虚拟变量。

内容的提问来源于stack exchange,提问作者Mithun Sarker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:52:04