我正在尝试建立电信流失的逻辑回归模型。
一些背景:为了预测客户流失,我们的数据集包含 Account_Age、Current_Bill_Amount、Avg_Days_Delinquent(账单未付天数)、投诉、Avg_Calls 等变量的数据。
我的问题与投诉变量有关。如图所示,投诉变量有 6 个投诉类别,因此已转换为 5 个虚拟变量。创建了 5 个虚拟列,将“定价”投诉排除在外。
现在,如“通话质量”上的图片投诉所示,“计费问题”的绝对流失率和百分比都很高,而其他投诉类型对流失的影响不大。
图像可能不会在您的终端显示,因此相同的链接是:https://imgur.com/88zHamt https://imgur.com/8WR19C0
关于投诉对客户流失的影响,我有两个问题。
问题 1:
该算法不将“通话质量”视为重要变量,其 P 值为 0.527。鉴于 81% 因“通话质量”投诉而流失的客户(参见图片),该算法给出了矛盾的结果。无法理解为什么会发生这种情况,通话质量肯定会影响客户流失率。请分享您对此的想法。
问题2:
模型重要变量 (P<0.05)“账单问题”、“支票帐户”和“移动”的系数分别为 -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 的答案是预期结果。
最佳答案
问题 1:
p 值是系数不为空的概率,而不是特征的显着性,即使它经常被解释为空。 您在这里真正可以得出的结论是,不可能(很有把握地)判断系数不为空。检查您的值的 95% 置信区间,该区间很宽,并且包含系数的正值。
例如,一个可能的解释可能是该变量与其他一些变量携带冗余信息,这可以解释为什么算法无法说明其有用性。 尝试向前或向后选择来迭代选择相关变量,它可能会改变您的最终选择。问题2:
系数为负绝对没有问题。
事实上,您使用逻辑回归建模的是:
P(流失率) = 1/(1+exp(sum(beta_i*x_i)) ( see on wikipedia as an example )
beta_i 是变量 x_i 的系数
您可以看到负系数会降低流失概率。
在这里,您使用了已报告投诉的用户集(我看不到“无投诉”类别),根据您链接的图片,其流失概率为 48.5%。
因此“默认”流失概率为 48.5%, 然而,虚拟变量“移动”的流失概率仅为 13.7%。 因此,添加用户提示类别“移动”的信息可以降低流失概率。因此系数为负,对于“计费问题”和“检查帐户”也是如此。
现在,如果您添加整组用户,则任何类型的投诉都可能会增加流失概率,并且您将获得正系数。
关于python-3.x - 逻辑回归系数没有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55902599/