I am using test-set (percentile) bootstrapping to quantify the uncertainty of various model performance metrics, such as AUROC, AUPR, etc.
To avoid any confusion, the approach is simply:
- bootstrap the test set
- compute the target metric on each bootstrapped test set, giving me a distribution of metric values
- compute percentiles of the metric distribution, giving me a CI.
(Yes I know that more efficient ways to obtain CIs are available for various specific metrics; I am using this in a toolbox as a catch-all UQ approach that works for any/all metrics I can throw at it.)
Now to my question: especially in smaller test sets or with strong class imbalance, it often happens that there are either no positives or no negatives in a bootstrapped sample, prompting various metrics to divide by zero.
One approach to address this issue that I have seen suggested on stats.SE and that the pROC package implements apparently for exactly this reason would be to simply use stratified bootstrapping, i.e., keeping the number of positives (or whatever the relevant number in the denominator of the metric) constant throughout the bootstrapped samples. Are there any important drawbacks to this approach? Why is this not the/a default approach? Or is it?