Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在r';t返回二进制向量?_R_Regression - Fatal编程技术网

为什么在r';t返回二进制向量?

为什么在r';t返回二进制向量?,r,regression,R,Regression,当反应变量为“Chan”时,我尝试使用逻辑回归。 我使用了预测函数,但函数返回的向量不是布尔值,有人知道问题出在哪里吗 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

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

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)
我的数据示例:
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

模拟矩阵$Chan返回给定协变量的每个结果的概率。在R的帮助下:


所需的预测类型。默认值为线性预测量表;另一种“响应”是响应变量的尺度。因此,对于默认二项模型,默认预测的概率为对数概率(logit标度上的概率),type=“response”给出预测概率。术语选项返回一个矩阵,给出线性预测量表上模型公式中每个项的拟合值。

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

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

如果你想将其二进制化,你可以使用
ifelse
语句。为什么不在你的答案中添加一个例子,而不是做这个注释呢?换句话说,你需要定义一个将概率分割为0/1的截止值。没有数学方法可以做到这一点。通常使用0.5,但可能适用于您的情况,也可能不适用于您的情况。