逻辑回归系数没有意义

Logistic regression coefficients not making sense

我正在尝试为电信客户流失建立逻辑回归模型。

一些背景:为了预测客户流失,我们的数据集包含 Account_Age、Current_Bill_Amount、Avg_Days_Delinquent(账单未付后的天数)、投诉、Avg_Calls 和还有一些。

我的问题与投诉变量有关。投诉变量已转换为 5 个虚拟变量,因为有 6 个投诉类别,如图所示。创建了 5 个虚拟列,排除了 'pricing' 投诉。

现在,如 'Call Quality' 上的图片投诉所示,'Billing Problem' 具有很高的绝对流失率和百分比流失率,而其他投诉类型对流失率的贡献不大。

图片可能不会显示在你这边,所以相同的链接是:https://imgur.com/88zHamt https://imgur.com/8WR19C0

关于投诉对客户流失的影响,我有 2 个问题。

问题 1:

该算法未将 'Call Quality' 视为重要变量,它的 P 值为 0.527。鉴于 81% 的 'Call Quality' 投诉的客户(参考图片)流失,该算法给出了矛盾的结果。无法理解为什么会这样,通话质量肯定会影响客户流失。请分享您对此的看法。

问题 2:

模型显着变量的系数 (P<0.05) 'Billing Problem'、'Check Account' 和 'Moving' 分别为 -1.0033、-2.5675 和 -2.1132。常识是,当有投诉时,它应该会增加客户流失率,因此系数应该为正。那为什么这3个虚拟变量算法计算的是负系数呢?

如果您需要更多信息或有任何说明,请告诉我。

import statsmodels.api as sm
logReg=sm.Logit(Y_train,X_train)
logistic_regression=logReg.fit() 
logistic_regression.summary()

问题 1 和 2 的答案是预期结果。

问题一:

p 值是系数不为空的概率,而不是特征的重要性,即使它通常被解释为它。 您在这里真正可以得出的结论是,不可能(很有把握地)判断系数不为空。检查您的值的 95% 置信区间,它将很宽并且包括系数的正值。

举个例子,一个可能的解释是这个变量与其他一些变量一起携带了冗余信息,这可以解释为什么算法不能说明它的用处。 尝试向前或向后 selection 迭代 select 相关变量,它可能会改变你的最终 selection.

问题二:

系数为负绝对没有问题

确实,您使用逻辑回归建模的是:

P(流失)= 1/(1+exp(总和(beta_i*x_i))(see on wikipedia as an example

beta_i 是变量 x_i

的系数

您可以看到负系数会降低流失概率。

这里你使用了一组有投诉的用户(我看不到类别'no complain'),根据你链接的图片,其流失概率为 48.5%。

因此 'default' 流失概率为 48.5%, 然而,虚拟变量 'moving' 的流失概率仅为 13.7%。 因此,添加用户投诉类别 'moving' 的信息可以降低流失概率。因此负系数,'Billing Problem' 和 'Check Account'.

相同

现在,如果您添加了整组用户,则可能是任何类型的投诉都会增加流失概率,并且您会得到正系数。