Selector-based point-treatment C-TMLE#
This study validates cleverly’s greedy, ordered, and discrete C-TMLE selectors. The canonical
comparison uses R ctmle 0.1.2 at pinned commit
18de559.
That package is the maintained comparator for these selector entry points. It is not a tlverse
package, and the tlverse comparison applies only to the outcome-adaptive study below. The theory
is van der Laan and Gruber (2010).
What was compared#
setting |
|
R |
|---|---|---|
strategies |
|
|
datasets |
binary-outcome samples generated in Python with their exact ATE |
the identical rows and all three DGP covariates |
selector folds |
unstratified five-fold, taken off the |
the same assignment, asserted to be a partition that holds both arms before selecting |
nuisance regressions |
corresponding logistic GLM |
corresponding logistic GLM |
propensity bounds |
0.025 to 0.975 |
0.025 to 0.975 |
selector loss |
unpenalized |
unpenalized |
cross-fitting |
disabled for the comparison |
not applicable |
variance |
|
|
The two variances differ by the term for estimating the selected candidate’s logistic propensity.
That term is close to zero at the correctly specified outcome regression of this study. The
committed SE ratios of the discrete selector differ by about 0.001 (0.9437 against 0.9427,
summary.csv). logistic_plugin reports R’s calc_varIC(ICg = TRUE) variance at this fit’s
inputs, as collaborative TMLE states. No study regenerates for it.
The fit is not cross-fitted, and it still draws a split. The selector scores its candidate path over five selection folds. That split reads no label here, and the fit asserts the realized partition. R selects against the same assignment, so the two sides compare one split rather than two.
cleverly’s default penalty follows the published trace-plus-bias criterion. It is not presented
as numerical parity with R’s implementation-specific adjustment. The property study exercises a
public nested cross-fit configuration instead: five outer folds, three selection folds, and two
inner folds, with the penalty on. Every property cell is cross-fitted, so every property cell
samples a proportion and declares an outcome support of 0 to 1.
Accuracy against known truth#
law |
estimand |
what was tested |
implementation |
bias (99% interval) |
coverage |
SE ratio |
result |
|---|---|---|---|---|---|---|---|
binary-outcome law, discrete selector |
|
average treatment effect |
|
-0.0021 to 0.0018 |
0.9463 |
0.9437 |
pass |
binary-outcome law, discrete selector |
|
average treatment effect |
R |
-0.0022 to 0.0018 |
0.9437 |
0.9427 |
pass |
binary-outcome law, greedy selector |
|
average treatment effect |
|
-0.0018 to 0.0021 |
0.9563 |
0.9571 |
pass |
binary-outcome law, greedy selector |
|
average treatment effect |
R |
-0.0018 to 0.0021 |
0.9475 |
0.9452 |
pass |
binary-outcome law, ordered selector |
|
average treatment effect |
|
-0.0010 to 0.0028 |
0.9400 |
0.9643 |
pass |
binary-outcome law, ordered selector |
|
average treatment effect |
R |
-0.0011 to 0.0028 |
0.9387 |
0.9596 |
pass |
Agreement with the canonical implementation#
Comparator-backed: a paired comparison with r-ctmle on the same samples. Each row reports estimate equivalence within the declared margin, the RMSE ratio and the coverage difference, and names its comparison kind.
law |
estimand |
what was compared |
paired difference |
share of margin used |
RMSE ratio bound |
coverage difference |
comparison kind |
calibration resolution |
result |
|---|---|---|---|---|---|---|---|---|---|
binary-outcome law, discrete selector |
|
average treatment effect |
0.000055 |
0.0170 |
1.0069 |
0.0025 |
matching implementation |
0.0052 vs 0.0500 |
equivalent |
binary-outcome law, greedy selector |
|
average treatment effect |
0.000039 |
0.0121 |
1.0059 |
0.0088 |
matching implementation |
0.0218 vs 0.0500 |
superior |
binary-outcome law, ordered selector |
|
average treatment effect |
0.000034 |
0.0105 |
1.0034 |
0.0012 |
matching implementation |
0.0118 vs 0.0500 |
equivalent |
Theory properties#
property |
cell |
role |
what was tested |
what must hold |
measured |
result |
|---|---|---|---|---|---|---|
|
|
positive |
both the outcome regression and the treatment mechanism are correctly specified |
bias interval inside the equivalence margin, with the reported standard error on the scale of the empirical spread |
bias -0.0011 to 0.000464, margin 0.0026, SE ratio 0.9848 |
pass |
|
|
control |
both nuisances are misspecified |
bias interval must fall entirely outside the margin, with the reported standard error still on the scale of the empirical spread |
bias 0.0072 to 0.0091, margin 0.0032, SE ratio 0.9940 |
pass |
|
|
positive |
only the outcome regression is correctly specified |
bias interval inside the equivalence margin, with the reported standard error on the scale of the empirical spread |
bias -0.000559 to 0.000978, margin 0.0026, SE ratio 0.9937 |
pass |
|
|
positive |
only the treatment mechanism is correctly specified |
bias interval inside the equivalence margin, with the reported standard error on the scale of the empirical spread |
bias 0.000508 to 0.0017, margin 0.0020, SE ratio 0.9670 |
pass |
|
|
positive |
both nuisances are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9273 to 0.9526, SE ratio 0.9368 to 1.0070 |
pass |
|
|
positive |
the same test applied to a law with a real effect |
rejection lower bound clears the minimum power |
rejection 1, 0.9868 to 1 |
pass |
|
|
positive |
bias, coverage and SE calibration at n = 2,000 |
bias inside the margin, coverage clears the floor, SE ratio inside the sanity band |
bias -0.000184, coverage 0.9165 to 0.9606, SE ratio 0.9746 |
pass |
|
|
positive |
bias, coverage and SE calibration at n = 500 |
bias inside the margin, coverage clears the floor, SE ratio inside the band |
bias 0.000242, coverage 0.9326 to 0.9717, SE ratio 0.9954 |
pass |
|
|
positive |
bias, coverage and SE calibration at n = 8,000 |
bias inside the margin, coverage clears the floor, SE ratio inside the sanity band |
bias -0.000224, coverage 0.9252 to 0.9667, SE ratio 0.9783 |
pass |
|
|
positive |
log empirical spread of the estimates regressed on log n across three sizes |
slope interval inside the root-n band and excluding -1/4 |
slope -0.5314 to -0.4616 |
pass |
|
|
positive |
the same regression applied to the mean reported standard error |
slope interval inside the root-n band and excluding -1/4 |
slope -0.5043 to -0.5021 |
pass |
|
|
positive |
the selector chooses its own mechanism path |
bias interval inside the equivalence margin |
bias 0.0015 to 0.0037, margin 0.0030, RMSE ratio 0.2410 |
fail |
|
|
control |
the selector is forced to stop at an empty path |
bias interval must fall entirely outside the margin |
bias 0.0495 to 0.0511, margin 0.0022, RMSE ratio 0.2410 |
pass |
|
|
positive |
a confounded law whose true contrast is exactly zero |
one-sided rejection bound stays under the declared type-I ceiling |
rejection 0.0700, 0.0412 to 0.1095 |
fail |
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 |
|---|---|---|
|
800 |
replications per selector strategy |
|
2000 |
observations per replication |
|
6 |
implementation-strategy tests against truth |
|
6 |
of those, passing |
|
3 |
paired selector-strategy tests |
|
3 |
of those, passing |
|
14 |
independent property cells |
|
11 |
of those, passing |
|
0.0429 |
largest absolute primary bias in empirical standard deviations |
|
0.9387 |
lowest primary coverage |
|
0.9136 |
lowest exact 99% coverage endpoint |
|
0.8891 |
lowest bootstrap SE-ratio endpoint |
|
1.0348 |
highest bootstrap SE-ratio endpoint |
|
0.0170 |
largest share of the paired similarity margin used |
|
1.0069 |
largest paired RMSE-ratio upper bound |
|
-0.0063 |
smallest paired coverage-difference lower bound |
|
0.0100 |
largest paired SE-calibration-excess upper bound |
|
-0.0301 |
both nuisances correct |
|
0.0203 |
only the outcome nuisance correct |
|
0.1390 |
only the treatment nuisance correct |
|
2000 |
observations that leg needs to resolve its remainder |
|
0.6332 |
both-wrong negative control |
|
0.2410 |
collaborative RMSE divided by the empty-path control RMSE |
|
0.8011 |
reported SE over empirical spread in that cell; see below |
|
0.2173 |
forced-selection bias, in empirical standard deviations |
|
0.0037 |
its 99% upper endpoint, against the margin below |
|
0.0030 |
the equivalence margin that cell answers to |
|
-0.4969 |
fitted empirical-spread rate |
|
-0.5314 |
its 99% lower endpoint, against a band of -0.625 to -0.375 |
|
-0.4616 |
its 99% upper endpoint, which must also exclude -0.25 |
|
-0.5032 |
fitted reported-SE rate |
|
0.9408 |
calibration-cell coverage |
|
0.9711 |
calibration-cell SE ratio |
|
0.9368 |
its 99% lower endpoint, against a band of 0.93–1.07 |
|
1.0070 |
its 99% upper endpoint |
|
0.0700 |
rejection under the confounded sharp null |
|
0.1095 |
its 99% upper endpoint, against 0.05 + 0.05 |
|
0.9300 |
coverage under the confounded sharp null |
|
0.8905 |
its exact 99% coverage endpoint, against a floor of 0.90 |
|
1 |
rejection under the power control |
|
0.9900 |
confidence level of Monte Carlo intervals |
|
0.0500 |
nominal estimator size |
|
0.9500 |
nominal estimator coverage |
|
10000 |
resamples per bootstrap interval |
|
0.2500 |
bias equivalence margin in empirical standard deviations |
|
0.9000 |
validity floor for the exact coverage lower endpoint |
|
0.9900 |
coverage above this is labeled conservative |
|
0.8000 |
primary SE-ratio screen, lower limit |
|
1.2000 |
primary SE-ratio screen, upper limit |
|
0.9300 |
calibration SE-ratio band, lower limit |
|
1.0700 |
calibration SE-ratio band, upper limit |
|
0.9200 |
calibration coverage band, lower limit |
|
0.9800 |
calibration coverage band, upper limit |
|
0.1000 |
one-sided type-I error ceiling |
|
0.1500 |
paired mean-difference margin in pooled SDs |
|
1.1000 |
paired RMSE-ratio upper limit |
|
-0.0250 |
paired coverage-difference lower limit |
|
0.0500 |
paired calibration-excess upper limit |
|
0.8000 |
power-control rejection lower bound |
|
-0.5000 |
predicted root-n slope |
|
-0.6250 |
accepted slope band, lower limit |
|
-0.3750 |
accepted slope band, upper limit |
|
-0.2500 |
slower rate the interval must exclude |
|
0.1000 |
union-model SE-ratio screen, lower limit |
|
10 |
union-model SE-ratio screen, upper limit |
|
0.5000 |
maximum collaborative-to-empty RMSE ratio |
Limitations#
The red-cell ledger lists each red cell of this study with the roadmap ask that owns it.
limitation |
what it means for use |
|---|---|
Two of the three strategies reach the same R entry point |
R |
The two sides select differently even where they agree |
|
No cell asks for calibrated inference while selection is load-bearing |
These cells now measure a diagnostic that the package does not publish as inference. The greedy, ordered, and discrete paths refuse |
One robustness cell is sized differently from its siblings |
|
The forced-selection cell is red |
This row publishes under the |
The null-size cell is red |
On the confounded bounded sharp null the rejection rate is |
The default ordering and two strategies lack their own property evidence |
The |
The property cells need a known outcome support |
Every cell here is cross-fitted, so every cell draws a proportion and declares |
One unstratified split does the selecting |
The selection folds read neither the treatment nor the outcome, and the fit asserts the realized partition. The row does not establish a stratified split, a grouped split, or a supplied plan, and it does not establish that a stranded arm is impossible at another size |
The parity claim is narrow |
It is binary, two-arm, complete-outcome, GLM, non-cross-fitted, unpenalized ATE only. The row does not establish parity for the default penalty or nested cross-fitting, ratios or arm means, missing outcomes, weights, clusters, strata, multi-valued treatment, flexible learner libraries, simultaneous or bootstrap intervals, or severe practical-positivity behaviour |
Reproduction#
The fixture README and manifest record the provenance and the regeneration commands. The replications, paired decisions and property results carry every published row.