首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么r中logistic回归的预测函数不返回二进制向量?

为什么r中logistic回归的预测函数不返回二进制向量?
EN

Stack Overflow用户
提问于 2016-04-29 21:09:27
回答 3查看 2.5K关注 0票数 0

当响应变量是"Chan“时,我尝试使用逻辑回归。我使用了预测函数,但函数返回的向量不是布尔值,有人知道问题出在哪里吗?

代码语言:javascript
复制
example of my data:
x1 x2 x3 x4 Chan
3 4 5 6 1 1
4 4 4 4 1 1 
5 5 3 2 3 0
3 4 3 4 2 0

mimic_matrix$Chan<-(mimic$Chan==1)
training<-mimic_matrix[1:5000,]
test<-mimic_matrix[-(1:5000),-ncol(mimic_matrix)]
tag<-mimic_matrix[-(1:5000),ncol(mimic_matrix)]

mimic_regression <- glm(Chan ~ .,data = training,family = "binomial")
step_backward<-step(mimic_regression, direction="backward")

predict_backward<-predict(step_backward, newdata = test, type="response")
predict_backward<-(predict_backward==1)
EN

回答 3

Stack Overflow用户

发布于 2016-04-29 21:28:29

逻辑回归给出了介于0和1之间的输出,它表示因变量等于1的概率(或TRUE,或您的因变量是什么)。在大多数情况下,只要逻辑回归的结果大于0.5,您就会“预测”值为1。然而,假设0.5是最好的分界点是危险的,因为将TRUE错误分类为FALSE的成本一定不能与将FALSE错误分类为TRUE的成本相同。考虑logistic回归分类问题的目标,并确定一个合适的阈值(关键词: ROC曲线)。

票数 4
EN

Stack Overflow用户

发布于 2016-04-30 01:22:04

logistic回归函数glm()的输出是一个概率。但是我们可以通过使用阈值将它们转换为预测值(0或1)。阈值的选择基于您的偏好,即错误更好。如果你没有偏好,0.5就可以了。正如Ken提到的,ROC曲线将帮助您找到更好的阈值。您可以为此安装ROCR包。

票数 2
EN

Stack Overflow用户

发布于 2016-04-29 21:16:25

它返回给定协变量的每个结果的概率。来自R的帮助:

所需的预测类型。默认值是线性预测器的尺度;另一个“响应”是响应变量的尺度。因此,对于缺省的二项式模型,缺省预测是对数赔率(对数尺度上的概率),类型=“”给出预测的概率。terms选项返回一个矩阵,给出线性预测尺度上模型公式中每个项的拟合值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36939253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档