2014-01-07 48 views
0

我尝试使用下面的语法来执行逻辑回归,具有分类和连续自变量的Logistic回归。 ROC曲线和混淆矩阵

logregmodel <- glm(Y ~., data = quant, family = binomial()) 

我有使用上述语法15个分类变量和30连续variables.By我不能确定是什么连续和分类变量。手动对它们进行分类会花费很多时间。我还想将ROC曲线和混淆矩阵添加到输出中。请帮助。

+1

您可以使用例如'sapply(quant,is.numeric)'或'sapply(quant,class)'来检查变量类型,'quantsub < - subset(quant,...)'用你想要的变量构建一个子集嵌入你的第一个模型。 – lukeA

回答

1

如果在quant中,分类变量是非数字,glm将正确处理它们作为分类变量。

为了得到混淆矩阵,使用predict功能:

# This will give you probabilities. 
fitted <- predict(logregmodel, quant, type="response") 

# Use a cut point to divide into classes 
cutpoint <- 0.5 
estimated.class <- ifelse(fitted > cutpoint, 'Class 1', 'Class 2') 

# Calculate the confusion matrix 
table(estimated.class, actual.class) 

可以使用ROCR包来获得ROC曲线。 Here is a good explination。您必须向下滚动一下ROC曲线部分,但整个事情都是非常重要的。

ROCR包(特别是prediction函数)也可以用来得到混淆矩阵。

我只想指出,如果ROC曲线和模型性能的度量(例如灵敏度或特异性)是根据从用于拟合模型的相同数据集中导出的预测响应计算得出的,则会产生偏差。

+0

谢谢克里斯托弗和卢克的指导。它非常丰富和有益的 – user3045652