为何在回归建模中需舍弃一个虚拟变量?
为什么回归模型中虚拟变量要舍弃一个?
好问题!这本质上是为了避免完全多重共线性的问题,咱们用个接地气的例子就能把这事说透:
假设你的数据集里有个「位置」变量,分为三个类别:城市、郊区、农村。如果你把这三个类别都转换成虚拟变量(比如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
相关产品推荐
相关产品推荐

