I have a few questions about using the double bootstrap for the purposes of validating prediction model performance.
- When is the double bootstrap more preferable than the basic bootstrap?
- What is a useful definition of the double bootstrap algorithm?
The double bootstrap seems suitable for two cases: 1) when a bias adjusted estimate of optimism is desired or 2) to both select from competing models and summarize the performance of the selected model (in the manner of nested k-fold cross validation).
Depending on those cases, my best guess at the appropriate double bootstrap algorithms are the following.
Double bootstrap for bias adjusted optimism correction:
- Fit the model to the original data and calculate the apparent performance estimate S_{app}.
- For k = 1, ..., K
- Generate a bootstrapped dataset (with replacement) from the original data.
- Fit the model to resample k.
- Calculate the apparent bootstrapped performance estimate S_{k_{b}}.
- Calculate an additional performance estimate S_{k_{b}:orig} by evaluating the
bootstrapped model on the original data. - For j = 1, ..., J
- Generate a bootstrapped dataset (with replacement) from resample k.
- Fit the model to resample j.
- Calculate the apparent double bootstrapped performance estimate S_{jk_{bb}}.
- Calculate an additional performance estimate S_{jk_{bb}:k_b} by evaluating the double bootstrapped model on resample k.
- Calculate the optimism of the bootstrapped performance estimate.
- O_{b} = \frac{1}{JK} \sum_{1}^{K} \sum_{1}^{J} (S_{jk_{bb}} - S_{jk_{bb}:k_{b}})
- Calculate the optimism of the original performance estimate.
- O_{orig} = \frac{1}{K} \sum_{1}^{K} (S_{k_b} - S_{k_{b}:orig})
- Calculate the bias-corrected optimism.
- Only worth it if the bias of the optimism is large compared to the standard error of the optimism?
- O_{adj} = O_{orig} - (O_{orig} - O_{b})
- Calculate the optimism adjusted performance estimate using the bias-corrected optimism.
- S_{adj} = S_{app} - O_{adj}
- Report the modelās validated performance estimate using S_{adj}.
This seems more of a two-step procedure than ādoubleā bootstrap, but feels appropriate for model selection and summarization.
- For each model i = 1, \dots, I
- Fit model i to the original data.
- Calculate the apparent performance estimate S_{i_{app}}.
- Determine which model has best performance.
- For resamples j = 1, ..., J
- Generate a bootstrapped dataset (with replacement) from the original data.
- For each model i = 1, \dots, I
- Fit model i to resample j.
- Calculate the performance estimate S_{ij_{boot}}.
- Calculate an additional performance estimate S_{ij_{boot:orig}} by evaluating bootstrapped model i on the original data.
- Calculate the optimism of the apparent performance estimate. For each model i,
- O_i = \frac{1}{J} \sum_{1}^{J} (S_{ij_{boot}} - S_{ij_{boot:orig}})
- Calculate the optimism adjusted performance estimate. For each model i,
- S_{i_{adj}} = S_{i_{app}} - O_i
- Determine which model has best prediction performance and proceed using selected model method i.
- For resamples j = 1, ..., J
- Estimate the prediction performance of the selected model.
- For resamples k = 1, ..., K
- Generate a bootstrapped dataset (with replacement) from the original data.
- Fit the selected model to resample k.
- Calculate the performance estimate S_{k_{boot}}.
- Calculate an additional performance estimate S_{k_{boot:orig}} by evaluating the bootstrapped model on the original data.
- Calculate the optimism of the apparent performance estimate.
- O_{top} = \frac{1}{K} \sum_{1}^{K} (S_{k_{boot}} - S_{k_{boot:orig}})
- Calculate the optimism adjusted performance estimate.
- S_{{top}_{adj}} = S_{{top}_{app}} - O_{top}
- Report the modelās validated performance estimate using S_{{top}_{adj}}.
- For resamples k = 1, ..., K
Am I on the right track or are there any fundamental errors here?
Thanks!