具有分类和连续自变量的Logistic回归。 ROC曲线和混淆矩阵

时间:2014-01-07 18:17:39

标签: r glm

我正在尝试使用以下语法执行逻辑回归

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

我有15个分类变量和30个连续变量。通过使用上面的语法,我无法定义连续和分类变量是什么。手动设置它们需要花费很多时间。我还要添加ROC曲线和输出的混淆矩阵。请帮助。

1 个答案:

答案 0 :(得分: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曲线和模型性能测量值(如灵敏度或特异性),则会产生偏差。