I'm trying to decide between bootstrap and cross-validation for thoroughly evaluating predictive model performance.
Bootstrap:
- Samples data with replacement, creating B > 1000 (or more) diverse training sets, where each observation is treated idependently due to sampling with replacement! This means that the empirical distribution function is used as a drop-in replacement for the real world distribution from which the samples are drawn.
- Dynamically Use out-of-bootstrap (out-of-bag) (OOB) observations as holdout sets: This eliminates the need for a separate holdout set and can provide a more reliable estimate of predictive out-of-sample performance.
- Potentially captures more real-world variance (by sampling with replacement, i.e. making use of the emprical distribution function)
If I had to evaluate two different models, I would
- produce B=1000 ... bootstrap resamples of the training dataset
- evaluate the two models on the B different out-of-bag test sample sets
- compute paired model performance differences (performance model 1 - performance model 2, where the difference is taken for an identical OOB test set), pairing would be used for https://en.wikipedia.org/wiki/Variance_reduction
- make a histogram of the paired model performance differences
- if the density of model performances is visibly shifted away from 0, then one of the models outperforms the other one (from this one could also device some test for 95% certainty of improvement ...)
Cross-Validation:
- Splits data into folds, using different folds for training and testing. Can be more efficient, especially with limited data. Might lead to "correlated" training sets, especially in LOOCV (the training sets almost do not change, except for one observation)
For comparing two models, I would do the same as in the bootstrap case (just without having out-of-bag test samples, but having maximally N=number of observations different hold-out sets in the case of LOOCV).
Question:
Given that bootstrap can introduce more variability in training sets (by resampling with replacement) and leverage OOB data for validation, wouldn't it provide a more realistic estimate of out-of-sample performance compared to cross-validation (which essentially is resampling without replacement)? Is especially the potential "correlation" between cross-validation training sets a significant concern?
PS: I tried to search stackoverflow and came up with similar questions, but they do not discuss the potential correlation problem of CV training sets:
- Bootstrap or jack-knife for crossvalidation of predictive model? (no answer)
- Understanding bootstrapping for validation and model selection
- Differences between cross validation and bootstrapping to estimate the prediction error (no definite answer which is more reliable)
- Cross-validation or bootstrapping to evaluate classification performance? (this question seems to be on the spot, but the accepted answer mainly deals with only having one test-train split (a degenerate form of CV, which clearly suffers from not having multiple test-train splits like in k-fold CV), Frank Harell has an answer https://stats.stackexchange.com/a/71189/298651 which links https://hbiostat.org/doc/simval.html having one conclusion "Ordinary bootstrap is better than or equal to all cross-validation strategies tried", but this is not clearly discussed in his answer ...)
- Cross-validation vs bootstrapping for classification test (no clear conclusion, indifferent, but intersting papers? )