Full-refit bootstrap and derived contrasts#
This study measures four post-fit outputs against known truth. The outputs are the log-scale ratio
of two regimen levels (LongitudinalResult.ratio), the RMST and its contrast
(LongitudinalResult.rmst), the percentile interval of the LTMLE full-refit bootstrap, and the
percentile interval of the point-treatment TMLE bootstrap.
No canonical implementation is compared. No pinned comparator ships these outputs, so the empty
equivalence artifact records the absence of a comparator.
The ratio and RMST are exact delta-method and linear functionals of shipped influence curves.
tests/unit/test_contrast_conveniences.py checks their arithmetic on exact laws. Their
log-scale small-sample coverage is a simulation claim, so this study measures it. The bootstrap
has no source for this estimator. The study measures its percentile interval with correctly
specified nuisances at \(n = 1000\). No result covers a data-adaptive nuisance, and Cai and van der
Laan (2020) is the warning for that case.
What was tested#
setting |
declaration |
|---|---|
primary scenario |
the log risk ratio and log odds ratio of always versus never on the two-node end-of-study law, 1,000 replications at \(n = 2000\) |
laws |
the two-node end-of-study law of |
learners |
saturated cell means on the end-of-study and point laws. On the four-node law, cell means over the columns each true conditional reads. Every learner is correctly specified |
bootstrap |
200 full-refit replicates per study replicate. Each cell reads the shipped |
clustered draw |
60 clusters of 25 rows. A cluster’s latent sign moves the outcome probability by \(\pm 0.1 (A_1 + A_2 - 1)\), which leaves every regimen mean unchanged |
replications |
4,000 per property cell, chosen before the run so that a cell whose reported standard error is 2% short passes the calibration rule with probability of at least 0.95 ( |
verdicts |
every cell is an |
failed-replicate cap |
a bootstrap cell whose mean failed share of bootstrap replicates exceeds 1% reports |
The cells and their sizes are the table.
cells |
law |
folds |
n |
replications |
|---|---|---|---|---|
log risk and odds ratio, end of study |
end of study |
1 |
2,000 |
4,000 |
log risk ratio and log survival ratio at t = 4, RMST and RMST contrast up to t = 5 |
four-node survival |
1 |
2,000 |
4,000 |
RMST and RMST contrast up to t = 5 |
four-node survival |
5 |
2,000 |
4,000 |
bootstrap of the always mean and the contrast |
end of study |
1 and 5 |
1,000 |
4,000 each |
bootstrap of the risks at t = 2 and 4 and the RMST |
four-node survival |
1 |
1,000 |
4,000 |
cluster bootstrap of the always mean and the contrast |
clustered |
1 |
1,500 |
4,000 |
bootstrap of the point ATE |
point |
1 |
1,000 |
4,000 |
The end-of-study ratios appear twice. The primary table measures bias and coverage against the shared floor at 1,000 replications. The property cells measure calibration at 4,000. The grid row cites the property cells for the calibration claim.
Red-cell policy#
The policy was declared before the run, in RED_CELL_POLICY of
tests/studies/canonical_full_refit_bootstrap.py.
rule |
when it applies |
what happens |
|---|---|---|
1 |
always |
the study publishes under |
2 |
a red ratio or RMST cell |
the exact-law tests are checked first. A defect is fixed and the study is regenerated once. A red cell that the exact tests cannot explain is published red with owner |
3 |
a longitudinal bootstrap cell |
a design kind enters |
4 |
a red point-TMLE bootstrap cell |
the cell is published red with owner |
5 |
a control that does not fail |
the control is reported as underpowered by design, and its positive cell claims no verdict |
Accuracy against known truth#
law |
estimand |
what was tested |
implementation |
bias (99% interval) |
coverage |
SE ratio |
result |
|---|---|---|---|---|---|---|---|
two-node end-of-study law, saturated cell-mean learners |
|
odds ratio, with inference on the log scale, between the plans “treat at both times” against “treat at neither time” |
|
-0.0176 to 0.0214 |
0.9660 |
1.0171 |
pass |
two-node end-of-study law, saturated cell-mean learners |
|
risk ratio, with inference on the log scale, between the plans “treat at both times” against “treat at neither time” |
|
-0.0104 to 0.0060 |
0.9640 |
1.0202 |
pass |
Theory properties#
property |
cell |
role |
what was tested |
what must hold |
measured |
result |
|---|---|---|---|---|---|---|
|
|
positive |
cluster-bootstrap percentile interval of the contrast, 60 clusters: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9123 to 0.9342, SE ratio 0.9496 to 1.0065 |
fail |
|
|
positive |
bootstrap percentile interval of the contrast, five folds: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9741 to 0.9857, SE ratio 1.2019 to 1.3336 |
fail |
|
|
positive |
bootstrap percentile interval of the always-never contrast: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9254 to 0.9456, SE ratio 0.9443 to 1.0028 |
pass |
|
|
control |
bootstrap percentile interval of the always-never contrast: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.7920 to 0.8243, SE ratio 0.6606 to 0.7022 |
pass |
|
|
positive |
bootstrap percentile interval of the point-treatment ATE: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9273 to 0.9472, SE ratio 0.9518 to 1.0077 |
pass |
|
|
positive |
cluster-bootstrap percentile interval of the always mean, 60 clusters: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9219 to 0.9426, SE ratio 0.9618 to 1.0199 |
pass |
|
|
positive |
bootstrap percentile interval of the always mean, five folds: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9730 to 0.9848, SE ratio 1.1663 to 1.3066 |
fail |
|
|
positive |
bootstrap percentile interval of the always mean, end-of-study law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9208 to 0.9416, SE ratio 0.9423 to 1.0034 |
pass |
|
|
control |
bootstrap percentile interval of the always mean, end-of-study law: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.7938 to 0.8260, SE ratio 0.6592 to 0.7009 |
pass |
|
|
positive |
bootstrap percentile interval of the always risk at t = 2: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9307 to 0.9502, SE ratio 0.9695 to 1.0289 |
pass |
|
|
positive |
bootstrap percentile interval of the always risk at t = 4: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9289 to 0.9486, SE ratio 0.9601 to 1.0178 |
pass |
|
|
positive |
bootstrap percentile interval of the always RMST up to t = 5: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9240 to 0.9444, SE ratio 0.9594 to 1.0192 |
pass |
|
|
positive |
log odds ratio of always versus never, end-of-study law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9367 to 0.9553, SE ratio 0.9477 to 1.0046 |
pass |
|
|
control |
log odds ratio of always versus never, end-of-study law: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.8067 to 0.8380, SE ratio 0.6629 to 0.7030 |
pass |
|
|
positive |
RMST contrast up to t = 5, four-node law, five folds: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9456 to 0.9628, SE ratio 1.0070 to 1.0655 |
pass |
|
|
positive |
RMST contrast of always versus never up to t = 5, four-node law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9369 to 0.9555, SE ratio 0.9767 to 1.0349 |
pass |
|
|
positive |
RMST of always up to t = 5, four-node law, five folds: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9434 to 0.9610, SE ratio 1.0084 to 1.0685 |
pass |
|
|
positive |
RMST of always up to t = 5, four-node survival law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9394 to 0.9575, SE ratio 0.9704 to 1.0256 |
pass |
|
|
positive |
log risk ratio of always versus never, end-of-study law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9391 to 0.9573, SE ratio 0.9536 to 1.0105 |
pass |
|
|
control |
log risk ratio of always versus never, end-of-study law: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.8059 to 0.8373, SE ratio 0.6673 to 0.7080 |
pass |
|
|
positive |
log risk ratio of always versus never at t = 4, four-node survival law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9364 to 0.9550, SE ratio 0.9659 to 1.0246 |
pass |
|
|
control |
log risk ratio of always versus never at t = 4, four-node survival law: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.8188 to 0.8494, SE ratio 0.6760 to 0.7166 |
pass |
|
|
positive |
log ratio of the survival probabilities of always versus never at t = 4, four-node law: all four required nuisance functions are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9372 to 0.9557, SE ratio 0.9637 to 1.0236 |
pass |
Result#
Every ratio and RMST cell passed, and every shrunken control fell below the band. The
in-sample end-of-study, in-sample survival and point-treatment bootstrap cells passed. So
the support rows G01, G11.nodes4 and T01.binary list the bootstrap kind. The point cell is an
in-sample TMLE fit, so the row covers the in-sample point TMLE fit only. A cross-fitted point
bootstrap, a clustered bootstrap and every DRTMLE bootstrap keep the interval names and carry the
label experimental. CTMLE prints every bootstrap as a diagnostic. tests/unit/test_ltmle_bootstrap.py
checks each setting. This study measured only correctly specified nuisances, and roadmap F2
holds the data-adaptive case.
The table above is the policy declared before the run. LICENSED_BOOTSTRAP_DESIGNS, the set rule 3 names, no longer exists. The bootstrap kind of a support row now plays its role, as the paragraph above states.
Three cells are red, and rule 3 applies to each. The two cross-fitted end-of-study cells
over-cover, with SE ratios near 1.25. The cluster contrast covers 0.924, with a 99% interval below
the band, while the cluster mean passes. So end_of_study/cross_fit and end_of_study/cluster
stay diagnostic, and the roadmap owner X20-bootstrap holds the three cells.
A diagnostic reading, which is not a registered result, explains the cross-fitted cells. On this
cell the cross-fitted estimator is heavy-tailed. Its 4,000 committed estimates have excess kurtosis
6.7, against 0.1 in sample. About 5% of them lie at the probability boundary, because
g_bounds=(1e-8, 1) with saturated cell means leaves sparse training cells unbounded. A bootstrap
resample holds about 63% unique units, so more replicates reach the boundary, and the replicate
spread exceeds the sampling spread. A probe that kept each unit’s copies in one fold raised the SE
ratio to about 1.65, so the split of copies across folds is not the cause.
The cluster contrast has a calibrated SE ratio of 0.977, so its shortfall reads as a finite-sample limit of the percentile interval at 60 clusters.
Measured values#
Names beginning margin: are thresholds declared before the run. Everything else is measured
from the committed results and checked at the precision printed.
quantity |
value |
source |
|---|---|---|
|
1000 |
primary replications |
|
2000 |
observations per primary replication |
|
2 |
primary ratio tests against truth |
|
2 |
of those, passing |
|
0 |
external comparisons declared |
|
0 |
external comparisons passing |
|
23 |
repeated-sampling property cells |
|
20 |
cells whose own and family verdicts pass |
|
0.0219 |
largest absolute primary bias in empirical standard deviations |
|
0.9640 |
lowest measured primary-study coverage |
|
0.9460 |
lowest exact 99% primary coverage endpoint |
|
0.9609 |
lowest bootstrap primary SE-ratio endpoint |
|
1.0809 |
highest bootstrap primary SE-ratio endpoint |
|
0.9900 |
confidence level of every Monte Carlo interval |
|
0.0500 |
nominal size of the reported intervals |
|
0.9500 |
nominal coverage those intervals claim |
|
10000 |
resamples behind every bootstrap interval |
|
0.2500 |
bias equivalence margin, in empirical standard deviations |
|
0.9000 |
validity floor the coverage lower endpoint must clear |
|
0.9900 |
above this, coverage is conservative rather than invalid |
|
0.8000 |
SE-ratio screen, lower limit |
|
1.2000 |
SE-ratio screen, upper limit |
|
0.9300 |
calibration-cell SE-ratio band, lower limit |
|
1.0700 |
calibration-cell SE-ratio band, upper limit. A control must rise above it |
|
0.9200 |
calibration-cell coverage band, lower limit |
|
0.9800 |
calibration-cell coverage band, upper limit |
|
0.1000 |
largest size a one-sided type-I bound may establish |
|
0.1500 |
paired similarity margin, in pooled empirical standard deviations |
|
1.1000 |
largest external-comparison RMSE ratio bound |
|
-0.0250 |
smallest external-comparison coverage difference bound |
|
0.0500 |
largest external-comparison calibration excess bound |
|
0.8000 |
rejection lower bound a power control must clear |
|
-0.5000 |
contraction rate root-n asymptotics predict. No cell of this study reads it |
|
-0.6250 |
accepted root-n slope band, lower limit |
|
-0.3750 |
accepted root-n slope band, upper limit |
|
-0.2500 |
slower rate a root-n interval must exclude |
|
1.2310 |
SE ratio, cross-fitted bootstrap of the always mean |
|
1.2652 |
SE ratio, cross-fitted bootstrap of the contrast |
|
0.9805 |
coverage, cross-fitted bootstrap of the contrast |
|
0.9237 |
coverage, cluster bootstrap of the contrast |
|
0.9123 |
its 99% lower endpoint |
|
0.0025 |
mean failed share of bootstrap replicates, survival |
|
0.9377 |
coverage, point-treatment bootstrap of the ATE |
Limits#
limit |
what it means |
|---|---|
correctly specified nuisances only |
the bootstrap interval is measured with known-form learners. No result covers a data-adaptive nuisance |
one size per cell |
each bootstrap cell runs at one \(n\). A licensed kind is licensed by design, and the study does not measure it at other sizes |
unmeasured compositions |
a working model, competing risks, weights, a dynamic rule, a Gaussian outcome and a cross-fitted survival fit have no licensed kind, so their bootstrap prints as a diagnostic |
finite laws |
every law has binary nodes and finite support |
static regimens |
the study fits never and always. A dynamic rule is not measured by these cells |
node units |
RMST is measured in node units on an equal grid |
Reproduction#
uv run --extra dev python -m tests.canonical.full_refit_bootstrap.regenerate