使用Python statsmodel进行Logistic回归

时间:2020-06-08 16:47:53

标签: python logistic-regression data-analysis statsmodels dummy-variable

我是Google Analytics(分析)领域的新手,对此我毫不怀疑。 我希望我能在这里得到答案。

我正在使用python实现Logistic回归。 如果我们需要对分类变量应用逻辑运算,我已经为此实现了get_dummies。假设列名称是房屋类型(海滩,山地和平原)。 在这种情况下,我们要做的是创建三个虚拟变量并删除其中一个,因为我们可以使用其他两个虚拟变量来推断Plain。

但是当我对数据实施RFE时。我是否需要包括所有3个变量? (我在一些博客上看到了这一点,其中虚拟对象没有掉下来并感到困惑)

此外,我还需要添加一个拦截列,就像我使用statsmodel一样(它本身不会添加拦截)。因此,在这种情况下,如果存在多个类别变量(并且我们为每个变量都删除了一个虚拟对象),将不会有任何问题吗?

1 个答案:

答案 0 :(得分:1)

您最终应该会看到多重线性,因为第三虚拟列始终与前两个和之和相反(如果它们等于0,则为1;如果它们等于1,则为0)。

应在选择功能(例如RFE)之前将其删除。

如果不这样做,则statsmodel将在摘要中发出警告,并且如果在拟合后检查要素的VIF,则会看到不可接受的分数,暗示了共线性要素。

无论如何,一旦完成,就可以使其中一个虚拟列实际上是一个常数,例如,如果您的数据集中没有海滨别墅。当常量存在时,statsmodel的默认行为将忽略add_constant语句。为了解决这个问题,您可以考虑使用has_constant参数,传递“ add”以表示即使已有常量列,您也希望得到拦截。

X = sm.add_constant(X, has_constant='add'