Fold-targeted point-treatment CV-TMLE#
This study compares cleverly with Python zEpid 0.9.1 at commit 16a0f96. Both
implementations target and evaluate inside each validation fold. cleverly averages fold plug-ins
at equal weight \(1/V\), while zEpid takes the mean over the stacked targeted rows and therefore
size-weights folds. The two point estimates use the same weights here only because the registered
folds have the same size. Both use cross-validated influence-curve variance.
The two-fold boundary is load-bearing. Each zEpid nuisance model trains on the other split, which
is the complete validation-fold complement. More zEpid splits would train each nuisance on only
one split, while cleverly would train on the complete complement.
What was compared#
setting |
|
Python |
|---|---|---|
construction |
fixed two-fold nuisances, fold targeting, fold evaluation |
|
folds |
equal assignment stored with every sample |
native split with the identical row identities |
outcome scale |
identity, and no declaration |
the same binary scale |
nuisance learners |
main-effects logistic regressions |
corresponding scikit-learn logistic regressions |
treatment bounds |
0.025 to 0.975 |
0.025 to 0.975 |
estimand |
ATE |
risk difference, which is the ATE for the binary outcome |
intervals |
pointwise 95% identity-scale Wald |
pointwise 95% identity-scale Wald |
fold variance |
raw within-fold influence-curve second moment |
within-fold sample variance with |
The reference runner checks every native split before it fits the nuisances. A changed row
identity aborts the complete run. The study reports no zEpid RR or OR because those are different
fold functionals and cleverly refuses them under fold evaluation.
The supplied split reads neither the treatment nor the outcome. zEpid draws it from the row
positions alone, and the cleverly fit records the same unstratified plan. The law is binary, so
the outcome scaler is the identity on both sides and neither implementation declares a bound.
Accuracy against known truth#
law |
estimand |
what was tested |
implementation |
bias (99% interval) |
coverage |
SE ratio |
result |
|---|---|---|---|---|---|---|---|
binary-outcome law |
|
average treatment effect |
|
-0.0012 to 0.0027 |
0.9569 |
1.0030 |
pass |
binary-outcome law |
|
average treatment effect |
Python |
-0.0012 to 0.0027 |
0.9575 |
1.0039 |
pass |
Agreement with the canonical implementation#
Comparator-backed: a paired comparison with zepid-single-crossfit-tmle 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 treatment effect |
3.689e-07 |
0.000081 |
1.0000 |
-0.000625 |
matching implementation |
0.0019 vs 0.0500 |
equivalent |
Theory properties#
The property cells draw their own two folds rather than taking the primary row’s supplied
partition. Each one samples an outcome in the open interval 0 to 1, drawn as a beta variate
around the law’s conditional mean. A proportion has a known support, so each cell declares
q_bounds of 0 to 1 and the outcome scaler is the identity. Each law is a bounded twin of the
Gaussian law the ordinary point-treatment row samples, and it keeps that law’s treatment
mechanism unchanged. tests/studies/bounded_cv_laws.py records the pilot measurement behind
every declared constant.
The double-robustness cells use a bounded nonlinear confounded law with exact ATE 0.2368749. Its treatment mechanism stays between 0.076 and 0.924, so the configured bounds do not clip it. Its conditional mean stays between 0.088 and 0.924 on the quadrature grid, so both beta shapes stay away from zero.
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.
The root-n ladder and the calibration cell sample a bounded linear law with exact ATE 0.1072047. A quasibinomial solver recovers that law’s six coefficients to 1.4e-15 on a quadrature grid, so both nuisances are correctly specified there.
property |
cell |
role |
what was tested |
what must hold |
measured |
result |
|---|---|---|---|---|---|---|
|
|
positive |
fold-targeted CV-TMLE with a flexible learner |
SE ratio clears the overfitting floor and stays inside the sanity band |
SE ratio 0.9224 to 1.1045 |
pass |
|
|
control |
the same flexible learner fitted in sample, with no cross-fitting |
SE ratio must fall below the overfitting ceiling |
SE ratio 0.4534 to 0.5416 |
pass |
|
|
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.000576 to 0.0011, margin 0.0029, SE ratio 0.9647 |
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.0361 to -0.0337, margin 0.0041, SE ratio 0.9891 |
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.000865 to 0.000707, margin 0.0026, SE ratio 1.0572 |
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.0011 to 0.000388, margin 0.0025, SE ratio 0.9687 |
pass |
|
|
positive |
both nuisances are correctly specified |
SE ratio and coverage intervals both inside their calibration bands |
coverage 0.9365 to 0.9600, SE ratio 0.9637 to 1.0374 |
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.000085, coverage 0.9179 to 0.9616, SE ratio 0.9720 |
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.000140, coverage 0.9297 to 0.9698, SE ratio 1.0009 |
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.000054, coverage 0.9223 to 0.9647, SE ratio 1.0018 |
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.5446 to -0.4823 |
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.5146 to -0.5116 |
pass |
|
|
positive |
a confounded law whose true contrast is exactly zero |
one-sided rejection bound stays under the declared type-I ceiling |
rejection 0.0400, 0.0191 to 0.0725 |
pass |
Measured values#
Names beginning margin: are thresholds declared before the run. Everything else comes from the
committed results and is checked at the precision shown.
quantity |
value |
source |
|---|---|---|
|
1600 |
replications per law |
|
1000 |
observations per replication |
|
2 |
implementation-estimand tests against truth |
|
2 |
of those, passing |
|
1 |
paired implementation-estimand tests |
|
1 |
of those, passing |
|
14 |
repeated-sampling property cells |
|
14 |
of those, passing |
|
0.0256 |
largest absolute bias in empirical standard deviations |
|
0.9569 |
lowest measured primary-study coverage |
|
0.000081 |
largest share of a paired similarity margin used |
|
1.0000 |
largest one-sided RMSE-ratio bound |
|
-0.0025 |
smallest one-sided coverage-difference bound |
|
0.000966 |
largest SE-calibration-excess bound |
|
-0.000079 |
bias with only the outcome nuisance correct |
|
-0.000355 |
bias with only the treatment nuisance correct |
|
-0.0349 |
both-wrong negative control |
|
-0.5134 |
fitted log-log sampling-spread rate |
|
-0.5131 |
fitted reported-SE rate |
|
0.9987 |
SE calibration where both nuisances are correct |
|
0.0400 |
rejection under the confounded sharp null |
|
1 |
rejection under the positive control |
|
0.9275 |
coverage with cross-fitted tree predictions |
|
1.0033 |
SE calibration with cross-fitting |
|
0.5225 |
coverage with the in-sample tree control |
|
0.4916 |
SE calibration of that control |
|
0.3400 |
paired lower bound for coverage gained over the control |
|
0.9900 |
confidence level for Monte Carlo intervals |
|
0.0500 |
nominal size of the estimator intervals |
|
0.9500 |
nominal coverage of those intervals |
|
10000 |
resamples for each bootstrap interval |
|
0.2500 |
bias margin in empirical standard deviations |
|
0.9000 |
lower-endpoint coverage floor |
|
0.9900 |
conservative-coverage threshold |
|
0.8000 |
SE-ratio screen lower limit |
|
1.2000 |
SE-ratio screen upper limit |
|
0.9300 |
calibration SE-ratio lower limit |
|
1.0700 |
calibration SE-ratio upper limit |
|
0.9200 |
calibration coverage lower limit |
|
0.9800 |
calibration coverage upper limit |
|
0.1000 |
one-sided type-I ceiling |
|
0.1500 |
paired similarity margin |
|
1.1000 |
RMSE-ratio non-inferiority margin |
|
-0.0250 |
coverage-difference non-inferiority margin |
|
0.0500 |
SE-calibration non-inferiority margin |
|
0.8000 |
rejection lower bound for power |
|
-0.5000 |
predicted root-n contraction rate |
|
-0.6250 |
accepted slope lower limit |
|
-0.3750 |
accepted slope upper limit |
|
-0.2500 |
slower rate the interval must exclude |
|
0.1000 |
union-model SE-ratio lower screen |
|
10 |
union-model SE-ratio upper screen |
|
0.8500 |
SE ratio the cross-fit arm must restore |
|
0.7500 |
ceiling for the in-sample control |
|
0.1500 |
required coverage gain over the control |
Limitations#
limitation |
what it means for use |
|---|---|
The variance formulas differ at finite fold size |
|
The row reports one estimand on one binary law |
zEpid does not report treatment-specific means, ATT, or ATC. The row does not claim continuous-outcome parity |
RR and OR remain refused |
zEpid pools targeted risks for those ratios. Fold evaluation changes their gradients by fold and needs another targeting score in |
The comparison uses one fixed unstratified two-fold partition |
It does not establish repeat aggregation, more than two zEpid splits, nested cross-fitting, or fold stability |
The property evidence needs a known outcome support |
Every property cell draws a proportion and declares |
The primary comparison uses main-effects logistic learners |
The property study adds a flexible-tree control. Neither study covers broad learner libraries or practical-positivity stress |
The row excludes additional compositions |
It does not cover missing outcomes, weights, clusters, strata, multi-valued treatment, or simultaneous and bootstrap intervals |
Reproduction#
The fixture README gives the smoke and full commands. The manifest records the configuration, dependency pins, seeds, and hashes. The replications, paired decisions, and property results carry every published row.