如何在仅给出线性回归方程的情况下绘制 R 中的 ROC 曲线
How to plot ROC curve in R given only a linear regression equation
我正在尝试在 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)
我正在尝试在 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)