【问题标题】:Dummy Variable Trap in Linear Regression线性回归中的虚拟变量陷阱
【发布时间】:2018-08-19 00:23:23
【问题描述】:

我有一个包含分类属性状态的数据集,可以包含纽约、加利福尼亚和佛罗里达。

  • 在虚拟变量中编码这些值后,为什么我们需要删除 一个变量?
  • 谁能解释一下什么是虚拟变量陷阱 线性回归的情况。
  • 为什么我们需要删除 1 个变量到 走出困境?

【问题讨论】:

  • 我需要一个理论上的解释。为什么我们需要删除一个变量?
  • 它被称为虚拟变量陷阱。虚拟变量陷阱是自变量是多重共线性的场景——两个或多个变量高度相关的场景;简单来说,一个变量可以从其他变量中预测出来。因此删除了一个变量。 (取自这里:algosome.com/articles/dummy-variable-trap-regression.html)

标签: machine-learning linear-regression dummy-variable


【解决方案1】:

这并不总是必要的,但想法是,如果分类属性覆盖所有空间(即您的虚拟变量代表该属性的所有可能值),那么最后一个虚拟变量可以由其他 N 完美预测-1 个假人:

last_dummy = 1 if all sum(dummies[:N-1]) == 0 else 0

这会在您的虚拟变量之间引入严重的共线性(这在线性/逻辑回归中是非常不受欢迎的事情),这就是为什么它被称为 虚拟变量陷阱。

通常,解决此问题的方法是删除一个虚拟列(任何都可以,它不必是最后一个)。这消除了共线性的来源,并且由于无论如何其他人都可以预测假人,因此原始数据集中完全没有信息丢失。

【讨论】:

  • 谢谢。那么,如果我在方程中包含所有虚拟变量,那么它是否与常数项有关?我在某处读到,常数项和所有虚拟变量不能放在一个线性方程中。
  • 不,不是。常数项(偏差)应该独立于其他变量。这里的问题是每个虚拟变量都可以被其他人预测,所以你需要拿出一个来“打破循环”。
【解决方案2】:

由于截距,您总是需要在每个级别删除一个虚拟变量 假设您在一周中的某一天有 7 个虚拟变量 参考将是星期一与其他人相比

如果您删除拦截,那么您可以添加星期一。但是只有在非常特殊的情况下才能删除拦截

【讨论】:

  • 为什么我们不能让所有变量都带有截距?有什么具体原因吗?
  • 当你有完美的共线性时,模型是不可解的。当截距与分类变量的总和完全共线时,矩阵是奇异/退化的。
猜你喜欢
  • 2019-05-16
  • 2019-01-25
  • 1970-01-01
  • 2018-05-29
  • 2020-11-30
  • 2020-11-25
  • 2018-11-16
  • 2018-04-17
  • 2019-07-14
相关资源
最近更新 更多