Based on https://journals.sagepub.com/doi/abs/10.1177/0272989X15582210. Fits a Beta(a, 1) distribuiton on positive examples and an Beta(1, b) distribution on negative examples.

find_matching_a1_1b(
  modelPredictions,
  yValues,
  ...,
  yTarget = TRUE,
  step_size = 0.001
)

find_ROC_matching_ab1(
  modelPredictions,
  yValues,
  ...,
  yTarget = TRUE,
  step_size = 0.001
)

Arguments

modelPredictions

numeric predictions (not empty), ordered (either increasing or decreasing)

yValues

truth values (not empty, same length as model predictions)

...

force later arguments to bind by name.

yTarget

value considered to be positive.

step_size

size of steps in curve drawing

Value

beta curve shape parameters

Examples

d <- rbind( data.frame(x = rbeta(1000, shape1 = 6, shape2 = 4), y = TRUE), data.frame(x = rbeta(1000, shape1 = 2, shape2 = 5), y = FALSE) ) find_ROC_matching_ab1(modelPredictions = d$x, yValues = d$y)
#> shape1_pos shape2_pos shape1_neg shape2_neg a b #> 4.664314 1.000000 1.000000 1.619383 4.664314 1.619383
# should be near # shape1_pos shape2_pos shape1_neg shape2_neg a b # 3.985017 1.000000 1.000000 1.746613 3.985017 1.746613 # # # How to land what you want as variables # unpack[a, b] <- # find_matching_a1_1b(modelPredictions = d$x, yValues = d$y)