Canonical point-treatment TMLE#
This study validates ordinary, non-cross-fitted point-treatment TMLE in cleverly. The canonical
comparison uses R tmle3 0.2.0 at pinned commit
ed72f8a. The
independent claims come from the parameter oracles and from the properties in van der Laan and
Rubin’s original TMLE paper.
The row is deliberately named ordinary TMLE. The public default cross-fits its nuisances. The
comparison disables cross-fitting in cleverly because tmle3’s ordinary specs are not CV-TMLE.
Cross-fitted and CV-TMLE constructions are separate methods and do not inherit this result.
What was compared#
setting |
|
R |
|---|---|---|
estimator |
ordinary TMLE, cross-fitting disabled |
ordinary |
datasets |
generated in Python |
the identical rows and all DGP covariates |
nuisance regressions |
GLM |
corresponding GLM |
treatment contrast |
1 versus 0 |
1 versus 0 |
overlap |
comfortable, no active bound |
the same law |
intervals |
pointwise 95% Wald |
pointwise 95% Wald |
RR and OR scale |
log, exponentiated |
log, exponentiated |
PAF scale |
identity, from the PAF influence curve |
negative-log-complement, transformed by |
ATT and ATC updater |
default |
the constrained one-dimensional updater the package’s own tests exercise |
Both laws are point-treatment laws with complete outcomes. The bounded continuous-outcome law with
effect modification covers ey1, ey0, ate, att, atc, ey_obs, and par. The
binary-outcome law covers those plus paf, rr, and or.
Accuracy against known truth#
law |
estimand |
what was tested |
implementation |
bias (99% interval) |
coverage |
SE ratio |
result |
|---|---|---|---|---|---|---|---|
binary-outcome law |
|
average effect on the untreated |
|
-0.0026 to 0.0013 |
0.9506 |
0.9997 |
pass |
binary-outcome law |
|
average effect on the untreated |
R |
-0.0026 to 0.0013 |
0.9544 |
1.0049 |
pass |
binary-outcome law |
|
average treatment effect |
|
-0.0026 to 0.0012 |
0.9494 |
1.0067 |
pass |
binary-outcome law |
|
average treatment effect |
R |
-0.0026 to 0.0012 |
0.9487 |
1.0066 |
pass |
binary-outcome law |
|
average effect on the treated |
|
-0.0028 to 0.0012 |
0.9506 |
1.0088 |
pass |
binary-outcome law |
|
average effect on the treated |
R |
-0.0028 to 0.0012 |
0.9500 |
1.0141 |
pass |
binary-outcome law |
|
counterfactual mean under no treatment |
|
-0.000802 to 0.0020 |
0.9531 |
1.0102 |
pass |
binary-outcome law |
|
counterfactual mean under no treatment |
R |
-0.000802 to 0.0020 |
0.9531 |
1.0101 |
pass |
binary-outcome law |
|
counterfactual mean under treatment |
|
-0.0016 to 0.0013 |
0.9425 |
0.9861 |
pass |
binary-outcome law |
|
counterfactual mean under treatment |
R |
-0.0016 to 0.0013 |
0.9425 |
0.9861 |
pass |
binary-outcome law |
|
observed outcome mean under the natural course |
|
-0.000858 to 0.0012 |
0.9450 |
0.9919 |
pass |
binary-outcome law |
|
observed outcome mean under the natural course |
R |
-0.000858 to 0.0012 |
0.9450 |
0.9919 |
pass |
binary-outcome law |
|
marginal odds ratio, reported on the log scale |
|
-0.0095 to 0.0064 |
0.9500 |
1.0074 |
pass |
binary-outcome law |
|
marginal odds ratio, reported on the log scale |
R |
-0.0095 to 0.0064 |
0.9500 |
1.0074 |
pass |
binary-outcome law |
|
population attributable fraction |
|
-0.0030 to 0.0013 |
0.9494 |
1.0118 |
pass |
binary-outcome law |
|
population attributable fraction |
R |
-0.0029 to 0.0026 |
0.9487 |
1.0114 |
pass |
binary-outcome law |
|
population attributable risk |
|
-0.0014 to 0.000586 |
0.9469 |
1.0082 |
pass |
binary-outcome law |
|
population attributable risk |
R |
-0.0014 to 0.000587 |
0.9469 |
1.0081 |
pass |
binary-outcome law |
|
marginal risk ratio, reported on the log scale |
|
-0.0053 to 0.0033 |
0.9556 |
1.0117 |
pass |
binary-outcome law |
|
marginal risk ratio, reported on the log scale |
R |
-0.0053 to 0.0033 |
0.9556 |
1.0116 |
pass |
bounded continuous-outcome law with effect modification |
|
average effect on the untreated |
|
-0.000400 to 0.000508 |
0.9463 |
0.9893 |
pass |
bounded continuous-outcome law with effect modification |
|
average effect on the untreated |
R |
0.000387 to 0.0013 |
0.9475 |
0.9957 |
pass |
bounded continuous-outcome law with effect modification |
|
average treatment effect |
|
-0.000459 to 0.000392 |
0.9481 |
1.0015 |
pass |
bounded continuous-outcome law with effect modification |
|
average treatment effect |
R |
-0.000442 to 0.000406 |
0.9500 |
1.0125 |
pass |
bounded continuous-outcome law with effect modification |
|
average effect on the treated |
|
-0.000602 to 0.000314 |
0.9394 |
0.9706 |
pass |
bounded continuous-outcome law with effect modification |
|
average effect on the treated |
R |
-0.0013 to -0.000431 |
0.9400 |
0.9726 |
pass |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under no treatment |
|
-0.000147 to 0.000743 |
0.9531 |
1.0146 |
pass |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under no treatment |
R |
-0.000147 to 0.000742 |
0.9537 |
1.0149 |
pass |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under treatment |
|
-0.000260 to 0.000788 |
0.9519 |
1.0107 |
pass |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under treatment |
R |
-0.000244 to 0.000802 |
0.9519 |
1.0122 |
pass |
bounded continuous-outcome law with effect modification |
|
observed outcome mean under the natural course |
|
-0.000234 to 0.000779 |
0.9506 |
0.9908 |
pass |
bounded continuous-outcome law with effect modification |
|
observed outcome mean under the natural course |
R |
-0.000234 to 0.000779 |
0.9506 |
0.9908 |
pass |
bounded continuous-outcome law with effect modification |
|
population attributable risk |
|
-0.000327 to 0.000276 |
0.9344 |
0.9451 |
pass |
bounded continuous-outcome law with effect modification |
|
population attributable risk |
R |
-0.000325 to 0.000277 |
0.9375 |
0.9526 |
pass |
Agreement with the canonical implementation#
Comparator-backed: a paired comparison with tmle3 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 |
|
average effect on the untreated |
0.000023 |
0.0050 |
1.0066 |
-0.0037 |
different estimator |
0.0107 vs 0.0500 |
equivalent |
binary-outcome law |
|
average treatment effect |
-6.992e-07 |
0.000157 |
1.0000 |
0.000625 |
matching implementation |
0.000096 vs 0.0500 |
equivalent |
binary-outcome law |
|
average effect on the treated |
-0.000022 |
0.0049 |
1.0067 |
0.000625 |
different estimator |
0.0115 vs 0.0500 |
equivalent |
binary-outcome law |
|
counterfactual mean under no treatment |
9.290e-08 |
0.000029 |
1.0000 |
0 |
matching implementation |
0.000010 vs 0.0500 |
equivalent |
binary-outcome law |
|
counterfactual mean under treatment |
-4.085e-10 |
1.216e-07 |
1.0000 |
0 |
matching implementation |
0.000071 vs 0.0500 |
equivalent |
binary-outcome law |
|
observed outcome mean under the natural course |
-8.722e-12 |
3.654e-09 |
1.0000 |
0 |
matching implementation |
5.378e-10 vs 0.0500 |
equivalent |
binary-outcome law |
|
marginal odds ratio, reported on the log scale |
-5.723e-07 |
0.000014 |
1.0000 |
0 |
matching implementation |
0.000006 vs 0.0500 |
equivalent |
binary-outcome law |
|
population attributable fraction |
-6.674e-07 |
0.000132 |
1.0002 |
0.000625 |
related target |
n/a |
equivalent |
binary-outcome law |
|
population attributable risk |
-2.965e-07 |
0.000126 |
1.0002 |
0 |
matching implementation |
0.000105 vs 0.0500 |
equivalent |
binary-outcome law |
|
marginal risk ratio, reported on the log scale |
-2.861e-07 |
0.000019 |
1.0000 |
0 |
matching implementation |
0.000007 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
average effect on the untreated |
-0.000783 |
0.7445 |
1.0088 |
-0.0012 |
different estimator |
0.0033 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
average treatment effect |
-0.000016 |
0.0161 |
1.0062 |
-0.0019 |
matching implementation |
0.0239 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
average effect on the treated |
0.000744 |
0.6995 |
1.0019 |
-0.000625 |
different estimator |
0.0033 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under no treatment |
-6.584e-08 |
0.000064 |
1.0030 |
-0.000625 |
matching implementation |
0.0019 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
counterfactual mean under treatment |
-0.000015 |
0.0122 |
1.0032 |
0 |
matching implementation |
0.0040 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
observed outcome mean under the natural course |
-5.672e-13 |
4.814e-10 |
1.0000 |
0 |
matching implementation |
1.179e-10 vs 0.0500 |
equivalent |
bounded continuous-outcome law with effect modification |
|
population attributable risk |
-0.000001 |
0.0020 |
1.0045 |
-0.0031 |
matching implementation |
0.0020 vs 0.0500 |
equivalent |
Theory properties#
The double-robustness cells use a bounded nonlinear confounded law with exact ATE 1.75.
Its treatment mechanism stays between 0.076 and 0.924, so the configured bounds do not clip it.
The wrong main-effects outcome regression imposes a constant contrast, while the true contrast
varies with W1 and I(W2 > 0). The treatment-correct cell uses n = 2,000. The other three cells
use n = 700. Each cell uses 1,200 replications and the existing predeclared margin.
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.0043 to 0.0087, margin 0.0218, SE ratio 0.9982 |
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.3017 to -0.2835, margin 0.0306, SE ratio 0.9811 |
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.0058 to 0.0077, margin 0.0226, SE ratio 0.9250 |
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.0094 to 0.0024, margin 0.0199, SE ratio 0.9974 |
pass |
|
|
positive |
both nuisances are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9420 to 0.9645, SE ratio 0.9678 to 1.0384 |
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.000513, coverage 0.9194 to 0.9627, SE ratio 0.9777 |
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.000770, coverage 0.9223 to 0.9647, SE ratio 0.9913 |
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.000285, coverage 0.9297 to 0.9698, SE ratio 1.0077 |
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.5374 to -0.4725 |
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.4998 to -0.4974 |
pass |
|
|
positive |
a confounded law whose true contrast is exactly zero |
one-sided rejection bound stays under the declared type-I ceiling |
rejection 0.0325, 0.0141 to 0.0627 |
pass |
Measured values#
Every figure this section quotes is resolved by name and checked at the precision it is printed to.
Names beginning margin: are thresholds declared before the run. Everything else is measured from
the committed results. Both resolve the same way, so moving a threshold in the code changes this
table rather than leaving it asserting a rule the study never applied.
quantity |
value |
source |
|---|---|---|
|
1600 |
replications per law |
|
1000 |
observations per replication |
|
34 |
implementation-estimand tests against truth |
|
34 |
of those, passing |
|
17 |
scenario-estimand cells compared with |
|
17 |
of those, passing |
|
12 |
repeated-sampling property cells |
|
12 |
of those, passing |
|
0.1254 |
largest bias, in empirical standard deviations |
|
0.9344 |
lowest measured coverage of a nominal 95% interval |
|
0.9168 |
lowest exact 99% coverage endpoint, against a floor of 0.90 |
|
0.9040 |
lowest bootstrap SE-ratio endpoint, against a band of 0.80–1.20 |
|
1.0649 |
highest bootstrap SE-ratio endpoint |
|
0.0960 |
how far from 1.0 the widest SE-ratio interval still reaches |
|
0.7445 |
largest share of the paired similarity margin used |
|
1.0088 |
largest one-sided RMSE-ratio bound, against a margin of 1.10 |
|
-0.0081 |
smallest one-sided coverage-difference bound, against -0.025 |
|
0.0129 |
largest comparable SE-calibration-excess bound, against 0.05 |
|
34 |
summary cells over both laws and both implementations |
|
13 |
of those, reporting a standard error below the empirical spread |
|
17 |
of those, covering below 95% |
|
0.9344 |
the study’s lowest coverage, cleverly |
|
0.9375 |
the same cell in |
|
-0.000144 |
continuous ATT bias against known truth, cleverly |
|
-0.000888 |
the same, |
|
0.000054 |
continuous ATC bias against known truth, cleverly |
|
0.000837 |
the same, |
|
14 |
continuous-law summary cells, both implementations |
|
8 |
of those, reporting a standard error below the empirical spread |
|
7 |
of those, covering below 95% |
|
0.0022 |
bias with both nuisances correct |
|
0.000949 |
bias with only the outcome regression correct |
|
-0.0035 |
bias with only the treatment mechanism correct |
|
-0.2926 |
bias with both nuisances wrong; this is the negative control |
|
0.3167 |
coverage of the same control |
|
-0.5045 |
fitted log-log contraction rate of the sampling spread |
|
-0.5374 |
its 99% lower endpoint |
|
-0.4725 |
its 99% upper endpoint |
|
-0.4986 |
the same rate for the mean reported standard error |
|
0.9913 |
SE calibration at n = 500 |
|
0.9777 |
SE calibration at n = 2,000 |
|
1.0077 |
SE calibration at n = 8,000 |
|
1.0025 |
SE calibration where both nuisances are correct |
|
0.9678 |
its 99% lower endpoint, against a band of 0.93–1.07 |
|
1.0384 |
its 99% upper endpoint |
|
0.9542 |
coverage of the same cell |
|
0.0325 |
rejection under a confounded sharp null |
|
0.0627 |
its 99% upper endpoint, against 0.05 + 0.05 |
|
1 |
rejection under a real effect; this is the positive control |
|
0.9900 |
confidence level of every Monte Carlo interval below |
|
0.0500 |
nominal size of the estimator’s own 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 exact 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 |
|
0.9200 |
calibration-cell coverage band, lower limit |
|
0.9800 |
calibration-cell coverage band, upper limit |
|
0.1000 |
largest size the one-sided type-I bound may establish |
|
0.1500 |
paired similarity margin, in pooled empirical standard deviations |
|
1.1000 |
largest RMSE ratio the one-sided upper bound may reach |
|
-0.0250 |
smallest coverage difference the one-sided lower bound may reach |
|
0.0500 |
largest excess SE-calibration error the upper bound may reach |
|
0.8000 |
rejection lower bound the power control must clear |
|
-0.5000 |
the contraction rate root-n asymptotics predict |
|
-0.6250 |
accepted slope band, lower limit |
|
-0.3750 |
accepted slope band, upper limit |
|
-0.2500 |
the slower rate the interval must exclude |
|
0.1000 |
union-model SE-ratio screen, lower limit |
|
10 |
union-model SE-ratio screen, upper limit |
Limitations#
limitation |
what it means for use |
|---|---|
The SE sanity band is a screen, not a calibration proof |
The widest bootstrap SE-ratio interval still reaches |
PAF is compared on different native scales |
Point performance and coverage are compared. Raw standard-error parity is not claimed. The two intervals share a first-order delta-method limit but need not share finite-sample endpoints |
Continuous ATT and ATC use the most paired margin |
|
The lowest coverage is continuous-law PAR |
Both implementations sit low together and both clear the declared floor. What remains is a property of ordinary non-cross-fitted TMLE on this law, not of either implementation. The |
Interval calibration shows no systematic direction |
The reported standard error falls below the empirical spread in |
The row is bounded to ordinary TMLE on two laws |
It does not establish cross-fitting, repeated cross-fitting, CV-TMLE evaluation, simultaneous intervals, bootstrap inference, missing outcomes, weights, clustering, strata, multi-valued treatment, or flexible learners. Each is a separate method or composition and needs its own study. The default-band study measures the default band of this study’s subject fit. |
Reproduction#
The container pins R 4.5.2 by digest, tmle3 at ed72f8a, and sl3 at
0e8f236. The
fixture README
gives the regeneration commands.
manifest.json
records the configuration and the provenance. The
replications,
performance tests,
paired decisions
and property results
carry every row the tables above publish.
R uses its public specifications except for ATT and ATC. The public ATT convenience path fails to converge on a small fraction of bounded-continuous samples, so both use the constrained path the pinned package’s own tests exercise. That path is fixed for all replications.
The R harness records a failed replication. The committed run applied no failure bound, so one failure would make its cells red. The study declares a bound of 0.01 for its next run (comparator fitting failures). A failed property fit costs its cells one replicate, and the property failure accounting judges each cell.