# performance_roc: Simple ROC curve In performance: Assessment of Regression Models Performance

 performance_roc R Documentation

## Simple ROC curve

### Description

This function calculates a simple ROC curves of x/y coordinates based on response and predictions of a binomial model.

### Usage

``````performance_roc(x, ..., predictions, new_data)
``````

### Arguments

 `x` A numeric vector, representing the outcome (0/1), or a model with binomial outcome. `...` One or more models with binomial outcome. In this case, `new_data` is ignored. `predictions` If `x` is numeric, a numeric vector of same length as `x`, representing the actual predicted values. `new_data` If `x` is a model, a data frame that is passed to `predict()` as `newdata`-argument. If `NULL`, the ROC for the full model is calculated.

### Value

A data frame with three columns, the x/y-coordinate pairs for the ROC curve (`Sensitivity` and `Specificity`), and a column with the model name.

### Note

There is also a `plot()`-method implemented in the see-package.

### Examples

``````library(bayestestR)
data(iris)

set.seed(123)
iris\$y <- rbinom(nrow(iris), size = 1, .3)
folds <- sample(nrow(iris), size = nrow(iris) / 8, replace = FALSE)
test_data <- iris[folds, ]
train_data <- iris[-folds, ]

model <- glm(y ~ Sepal.Length + Sepal.Width, data = train_data, family = "binomial")
as.data.frame(performance_roc(model, new_data = test_data))

roc <- performance_roc(model, new_data = test_data)
area_under_curve(roc\$Specificity, roc\$Sensitivity)

if (interactive()) {
m1 <- glm(y ~ Sepal.Length + Sepal.Width, data = iris, family = "binomial")
m2 <- glm(y ~ Sepal.Length + Petal.Width, data = iris, family = "binomial")
m3 <- glm(y ~ Sepal.Length + Species, data = iris, family = "binomial")
performance_roc(m1, m2, m3)

# if you have `see` package installed, you can also plot comparison of
# ROC curves for different models
if (require("see")) plot(performance_roc(m1, m2, m3))
}
``````

performance documentation built on Nov. 2, 2023, 5:48 p.m.