【问题标题】:Stepwise Regression with ROCROC 逐步回归
【发布时间】:2019-01-05 18:44:36
【问题描述】:

我正在 DataCamp 上使用 R 学习数据科学。在一个练习中,我必须建立一个逐步回归模型。即使我成功创建了逐步模型,roc() 函数也不接受响应,它会给出如下错误:“'response' 有两个以上的级别。考虑明确设置 'levels' 或使用 'multiclass.roc' "

我想学习如何处理这个问题,所以我在下面写了我的代码。

# Specify a null model with no predictors
null_model <- glm(donated ~ 1, data = donors, family = "binomial")

# Specify the full model using all of the potential predictors
full_model <- glm(donated ~ ., data = donors, family = "binomial")

# Use a forward stepwise algorithm to build a parsimonious model
step_model <- step(null_model, scope = list(lower = null_model, upper = full_model), direction = "forward")

# Estimate the stepwise donation probability
step_prob <- predict(step_model, type = "response")
# Plot the ROC of the stepwise model
library(pROC)
ROC <- roc( step_prob, donors$donated)
plot(ROC, col = "red")
auc(ROC)

【问题讨论】:

  • 试试这个:roc(step_prob, factor(donors$donated)),另外,你也可以检查library('caTools')。这意味着您有两个以上的类别,如果不是预期的,那么您必须检查您的数据。从某种意义上说,因素很奇怪,即使您从数据集中删除它们的值,它们的旧参考仍然存在,用factor 命令包装会重置它们。一切顺利。此外,如果您可以dput 和/或str(dataframe) 让人们了解您的数据包含什么,那就太好了,否则这将永远是一个猜测工作。谢谢
  • 请提供数据

标签: r regression auc


【解决方案1】:

我改变了roc函数的参数顺序,错误解决了。

library(pROC)
ROC <- roc( donors$donated, step_prob)
plot(ROC, col = "red")
auc(ROC) 

【讨论】:

    猜你喜欢
    • 2014-05-19
    • 2013-03-04
    • 1970-01-01
    • 2021-10-06
    • 2018-08-31
    • 1970-01-01
    • 2021-04-01
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多