【发布时间】: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