在 R 中使用逻辑回归预测概率等于 1
predicted probability using logistic regression in R equals 1
我有一个简单的 glm 模型如下所示:
glm.fit=glm(Retention2~Email+Pay.method, data=train, family = binomial)
所有 DV 和 IV 都是具有两个水平的分类变量。
glm
的结果是:
当我计算谓词概率时,当Pay.Method为0时概率值为1.000。语法和输出如下所列:
glm.fit.prob=predict(glm.fit, newdata = test2, type="response")
好像每当pay.method ="EZ PAY"
的时候,概率都是0。我认为数学上的原因是Email的coeff
比拦截和Pay.method小很多。我想知道我的理解是否正确,如果正确,请问您对如何解决这个问题有什么见解吗?
此案称为明确分离案。当你有 pay.method ="EZ PAY"
时查看你的数据然后几乎观察可能为零或几乎所有都为 1。所以理想情况下你不需要模型来预测因为你可以说没有模型的结果是 0 还是 1(现在如果它的真实情况或由于缺乏数据是另一个问题)。最好从训练数据中删除这些案例,然后训练模型(在您的情况下,使用 pay.method ="EZ PAY"
删除所有观察值)。
现在为什么会有这种行为。逻辑回归最大似然估计不太好处理分离明确的情况;要获得良好的覆盖率,请参阅 Hastie Tibshirani 的统计学习书籍。他们还建议使用判别分析,因为它更适合处理此类情况。
我有一个简单的 glm 模型如下所示:
glm.fit=glm(Retention2~Email+Pay.method, data=train, family = binomial)
所有 DV 和 IV 都是具有两个水平的分类变量。
glm
的结果是:
当我计算谓词概率时,当Pay.Method为0时概率值为1.000。语法和输出如下所列:
glm.fit.prob=predict(glm.fit, newdata = test2, type="response")
好像每当pay.method ="EZ PAY"
的时候,概率都是0。我认为数学上的原因是Email的coeff
比拦截和Pay.method小很多。我想知道我的理解是否正确,如果正确,请问您对如何解决这个问题有什么见解吗?
此案称为明确分离案。当你有 pay.method ="EZ PAY"
时查看你的数据然后几乎观察可能为零或几乎所有都为 1。所以理想情况下你不需要模型来预测因为你可以说没有模型的结果是 0 还是 1(现在如果它的真实情况或由于缺乏数据是另一个问题)。最好从训练数据中删除这些案例,然后训练模型(在您的情况下,使用 pay.method ="EZ PAY"
删除所有观察值)。
现在为什么会有这种行为。逻辑回归最大似然估计不太好处理分离明确的情况;要获得良好的覆盖率,请参阅 Hastie Tibshirani 的统计学习书籍。他们还建议使用判别分析,因为它更适合处理此类情况。