【发布时间】:2020-05-07 07:17:29
【问题描述】:
谁能详细解释一下虚拟变量陷阱是什么意思?为什么我们要删除一列以避免该陷阱?请提供一些链接或解释一下。我不清楚这个过程。
【问题讨论】:
标签: pandas dummy-variable
谁能详细解释一下虚拟变量陷阱是什么意思?为什么我们要删除一列以避免该陷阱?请提供一些链接或解释一下。我不清楚这个过程。
【问题讨论】:
标签: pandas dummy-variable
在回归分析中,经常会谈到多重共线性问题,您可能已经很熟悉了。虚拟变量陷阱只是两个或多个变量之间的完美共线性。如果对于一个二元变量,包含两个虚拟变量,则可能会出现这种情况;假设您有一个变量x,当某事物为True 时,它等于1。如果在回归模型中包含x,以及另一个变量z,这将与x相反(即1,当相同的东西是False),在你的回归模型中,你将有两个完美的负相关变量。
这是一个简单的演示。假设您的x 是True/False 数据框中的True/False 值的一列。看看当你在下面使用pd.get_dummies(df.x) 时会发生什么。创建的两个虚拟对象相互镜像,因此其中一个是多余的。简单来说,您只需要其中一个,因为您总是可以根据您拥有的那个来猜测另一个的值。
import pandas as pd
df = pd.DataFrame({'x': [True, False]})
pd.get_dummies(df.x)
False True
0 0 1
1 1 0
如果您有一个可以取两个以上值的分类变量,这同样适用。无论是否是二元的,总有一个“基本场景”可以通过其他情况的变化来定义。因此,这个“基本场景”是多余的,如果包含,只会在模型中引入完美的共线性。
那么多重共线性/线性相关的问题是什么?简短的回答是,如果您的解释变量之间存在不完美的多重共线性,您的估计系数可能会失真/有偏差。如果存在完美的多重共线性(虚拟变量陷阱就是这种情况),您根本无法估计您的模型;可以这样想,如果你有一个变量可以用另一个变量完美解释,这意味着你的样本数据只包含一个有价值的信息,而不是两个真正唯一的变量。因此,不可能为同一变量获得两个单独的系数估计值。
【讨论】: