如何处理线性回归虚拟变量的共线性?

How to deal with co-linearity of dummy variables for linear regression?

我在家庭特征数据集上使用 scikit-learn LogisticRegression 并试图了解如何准备自变量。

我创建了二进制虚拟变量来代替分类变量。 例如具有 3 个可能值 DetachedHouseSemiDetachedApartment 的变量 DWELLING_TYPE 已被替换为 3 个二进制变量 DWELLING_TYPE_DetachedHouseDWELLING_TYPE_SemiDetached 和 DWELLING_TYPE_Apartmentthat each has the value1or0`.

显然这 3 个变量是相互依赖的(共线性?),因为如果其中一个变量是 1,那么另外两个变量必须是 0。我的理解是逻辑回归应该最小化共线性,所以我应该从输入矩阵中省略这些变量之一吗?

是的。这是一个很好的做法。当您将分类变量转换为虚拟变量时,您可以删除其中一个虚拟变量。它将减少输入特征的冗余。

在 python 中,您可以使用 pd.get_dummies

pd.get_dummies(df, columns=categorical_columns, drop_first=True)

drop_first 参数设置为 True 将对您有效。