我试图在R中绘制一条ROC曲线并找到它下面的面积(AUC),只给出一个回归方程。
通常,当我有GLM时,我会使用命令predict
来执行此操作。例如:
library("pROC")
lin_mod <- glm(y ~ p + q, family = "...", data = dat_sd)
prob <- predict(lin_mod, type = c("response"))
模型的系数是0.3(截距), - 0.07(p)和0.11(q)。为了绘制ROC并找到AUC,我使用
plot(roc(dat_sd$y, prob), print.auc = TRUE)
但是,当我只有方程时,命令不起作用:
library("pROC")
lin_mod <- 0.3 - 0.07 * dat_sd$p + 0.11 * dat_sd$q
predict(lin_mod, type = c("response"))
输出
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "c('double', 'numeric')"
如何成功绘制曲线(并找到区域)?
以下行是您已预测的数据响应:
lin_mod <- 0.3 - 0.07 * dat_sd$p + 0.11 * dat_sd$q
只需将响应变量直接传递给pROC:
plot(roc(dat_sd$y, lin_mod), print.auc = TRUE)