I have a dataframe with two columns : score1
which is numeric
and truth1
which is boolean
.
I want to predict truth1
using score1
. To do that, I want a simple linear model, and then ask for a good threshold, i.e., a threshold which gives me 75% of sensitivity in my ROC curve. Hence, I do :
roc_curve = roc(truth1 ~ score1 , data = my_data)
coords(roc=roc_curve, x = 0.75, input='sensitivity', ret='threshold')
My problem is that coords return 'NA', because the sensitivty of 0.75 does not appear in the ROC curve. So here is my question: how can I get the threshold which gives me a sensitivity of at least 0.75, with max specificity?
Option 1: you filter the results
my.coords <- coords(roc=roc_curve, x = "all", transpose = FALSE)
my.coords[my.coords$sensitivity >= .75, ]
Option 2: you can trick pROC
by requesting a partial AUC between 75% and 100% of sensitivity:
roc_curve = roc(truth1 ~ score1 , data = my_data, partial.auc = c(1, .75), partial.auc.focus="sensitivity")
All of pROC's methods will follow this request and give you results only in this area of interest:
coords(roc=roc_curve, x = "local maximas", ret='threshold', transpose = FALSE)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With