【问题标题】:Logistic Regression with categorically and Continuous independent variables. ROC Curve and confusion matrix具有分类和连续自变量的逻辑回归。 ROC 曲线和混淆矩阵
【发布时间】:2014-01-07 18:17:39
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以使用例如sapply(quant, is.numeric)sapply(quant, class) 检查变量类型,quantsub &lt;- subset(quant, ...) 使用要嵌入第一个模型的变量构建一个子集。

标签: r glm


【解决方案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 曲线和模型性能度量(例如灵敏度或特异性)是根据从用于拟合模型的同一数据集得出的预测响应计算得出的,则会有偏差。

【讨论】:

  • 感谢 christopher 和 luke 的指导。它的信息量很大,很有帮助
猜你喜欢
  • 2014-09-03
  • 2018-12-26
  • 2018-09-23
  • 2023-04-05
  • 2018-06-02
  • 2019-05-26
  • 2016-01-15
  • 2018-07-09
  • 2022-06-15
相关资源
最近更新 更多