Missing-outcome attributable-effect TMLE#
This study tests PAR and PAF when outcomes are missing at random. The contract gives the stack and its conditions. The fit solves the shipped natural-course fluctuation and the shipped arm-mean fluctuation from one initial fit. It reports both means, PAR and PAF from one stack on the same rows.
The study has seven scenarios. L1 and L3 are the laws of tests/studies/mar_arm_indexed_laws.py.
Each table is indexed by the three levels of \(W\) and the arms.
scenario |
law |
fit |
|---|---|---|
|
L1, two arms |
in sample, the law’s own nuisances |
|
L1 tables with a Beta outcome |
in sample, |
|
L3, three arms |
in sample, |
|
L1 |
stacked CV-TMLE, ten folds, depth-five trees for \(Q\), \(g\) and \(\pi\) |
|
L3 |
stacked CV-TMLE, the same trees |
|
L1 |
in sample, fixed weights 0.6, 1.0 and 1.8 by level of \(W\) |
|
L1 rows in 100 clusters of 20 that share \(W\) |
in sample, |
The stacked scenarios and the weighted scenario refit the samples of the in-sample scenario on the same law. The in-sample and the stacked fits are therefore paired.
R tmle 2.1.1 reports no PAR or PAF. The comparator composes them from two shipped paths. The
population-mean path fits the natural course. The same path with the indicator
\(1\{A=a\}\Delta\) fits each arm mean, because its clever covariate is then
\(1\{A=a\}\Delta/(g_a\pi_a)\).
The runner forms PAR and PAF from R’s own influence curves,
fit$estimates$IC$IC.EY1. Both paths use this fit’s predictions, so the comparison conditions on
them. The fixture README
gives every argument.
Accuracy against known truth#
law |
estimand |
what was tested |
implementation |
bias (99% interval) |
coverage |
SE ratio |
result |
|---|---|---|---|---|---|---|---|
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
counterfactual mean under no treatment |
|
-0.0017 to 0.0028 |
0.9350 |
0.9652 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
counterfactual mean under no treatment |
R |
-0.0017 to 0.0028 |
0.9350 |
0.9652 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
observed outcome mean under the natural course |
|
-0.0013 to 0.0019 |
0.9450 |
0.9708 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
observed outcome mean under the natural course |
R |
-0.0013 to 0.0019 |
0.9450 |
0.9708 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable fraction |
|
-0.0031 to 0.0029 |
0.9375 |
0.9872 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable fraction |
R |
-0.0031 to 0.0029 |
0.9375 |
0.9872 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable risk |
|
-0.0016 to 0.0012 |
0.9500 |
1.0034 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable risk |
R |
-0.0016 to 0.0012 |
0.9500 |
1.0034 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
counterfactual mean under no treatment |
|
-0.0040 to 0.0010 |
0.9513 |
0.9808 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
counterfactual mean under no treatment |
R |
-0.0040 to 0.0010 |
0.9513 |
0.9808 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
observed outcome mean under the natural course |
|
-0.0028 to 0.000647 |
0.9425 |
1.0006 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
observed outcome mean under the natural course |
R |
-0.0028 to 0.000647 |
0.9425 |
1.0006 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable fraction |
|
-0.0018 to 0.0055 |
0.9437 |
0.9705 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable fraction |
R |
-0.0018 to 0.0055 |
0.9437 |
0.9705 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable risk |
|
-0.0013 to 0.0022 |
0.9487 |
0.9732 |
pass |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable risk |
R |
-0.0013 to 0.0022 |
0.9487 |
0.9732 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
counterfactual mean under no treatment |
|
-0.0017 to 0.0028 |
0.9413 |
0.9742 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
counterfactual mean under no treatment |
R |
-0.0017 to 0.0028 |
0.9413 |
0.9742 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
observed outcome mean under the natural course |
|
-0.0013 to 0.0019 |
0.9475 |
0.9764 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
observed outcome mean under the natural course |
R |
-0.0013 to 0.0019 |
0.9475 |
0.9764 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable fraction |
|
-0.0032 to 0.0027 |
0.9463 |
0.9977 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable fraction |
R |
-0.0032 to 0.0027 |
0.9463 |
0.9977 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable risk |
|
-0.0016 to 0.0011 |
0.9525 |
1.0133 |
pass |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable risk |
R |
-0.0016 to 0.0011 |
0.9525 |
1.0133 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
counterfactual mean under no treatment |
|
-0.0016 to 0.0024 |
0.9363 |
0.9491 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
counterfactual mean under no treatment |
R |
-0.0016 to 0.0024 |
0.9363 |
0.9491 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
observed outcome mean under the natural course |
|
-0.0013 to 0.0017 |
0.9463 |
0.9594 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
observed outcome mean under the natural course |
R |
-0.0013 to 0.0017 |
0.9463 |
0.9594 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable fraction |
|
-0.0029 to 0.0024 |
0.9450 |
0.9847 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable fraction |
R |
-0.0029 to 0.0024 |
0.9450 |
0.9847 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable risk |
|
-0.0015 to 0.0011 |
0.9500 |
0.9959 |
pass |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable risk |
R |
-0.0015 to 0.0011 |
0.9500 |
0.9959 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
counterfactual mean under no treatment |
|
-0.000361 to 0.000640 |
0.9600 |
1.0285 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
counterfactual mean under no treatment |
R |
-0.000361 to 0.000640 |
0.9600 |
1.0285 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
observed outcome mean under the natural course |
|
-0.000330 to 0.000688 |
0.9513 |
0.9826 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
observed outcome mean under the natural course |
R |
-0.000330 to 0.000688 |
0.9513 |
0.9826 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
population attributable risk |
|
-0.000483 to 0.000564 |
0.9413 |
0.9512 |
pass |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
population attributable risk |
R |
-0.000483 to 0.000564 |
0.9413 |
0.9512 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
|
-0.0028 to 0.0022 |
0.9413 |
0.9716 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
R |
-0.0028 to 0.0022 |
0.9413 |
0.9716 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
|
-0.000996 to 0.0038 |
0.9563 |
1.0303 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
R |
-0.000996 to 0.0038 |
0.9563 |
1.0303 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
|
-0.0016 to 0.0027 |
0.9437 |
1.0117 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
R |
-0.0016 to 0.0027 |
0.9437 |
1.0117 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
observed outcome mean under the natural course |
|
-0.000801 to 0.0019 |
0.9625 |
1.0622 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
observed outcome mean under the natural course |
R |
-0.000801 to 0.0019 |
0.9625 |
1.0622 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
|
-0.0052 to 0.0021 |
0.9425 |
1.0036 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
R |
-0.0052 to 0.0021 |
0.9425 |
1.0036 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
|
-0.0027 to 0.001000 |
0.9463 |
1.0002 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
R |
-0.0027 to 0.001000 |
0.9463 |
1.0002 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
|
-0.0027 to 0.0023 |
0.9437 |
0.9832 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
R |
-0.0027 to 0.0023 |
0.9437 |
0.9832 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
|
-0.0011 to 0.0037 |
0.9587 |
1.0387 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
R |
-0.0011 to 0.0037 |
0.9587 |
1.0387 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
|
-0.0016 to 0.0027 |
0.9487 |
1.0273 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
R |
-0.0016 to 0.0027 |
0.9487 |
1.0273 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
observed outcome mean under the natural course |
|
-0.000792 to 0.0019 |
0.9587 |
1.0650 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
observed outcome mean under the natural course |
R |
-0.000792 to 0.0019 |
0.9587 |
1.0650 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
|
-0.0050 to 0.0024 |
0.9500 |
1.0147 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
R |
-0.0050 to 0.0024 |
0.9500 |
1.0147 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
|
-0.0026 to 0.0012 |
0.9563 |
1.0110 |
pass |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
R |
-0.0026 to 0.0012 |
0.9563 |
1.0110 |
pass |
Agreement with the canonical implementation#
Comparator-backed: a paired comparison with tmle-r-composed-attributable 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 |
|---|---|---|---|---|---|---|---|---|---|
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
counterfactual mean under no treatment |
-3.944e-10 |
1.068e-07 |
1.0000 |
0 |
matching implementation |
2.374e-08 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
observed outcome mean under the natural course |
-4.449e-13 |
1.668e-10 |
1.0000 |
0 |
matching implementation |
1.490e-11 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable fraction |
7.822e-10 |
1.602e-07 |
1.0000 |
0 |
related target |
3.213e-08 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, in sample |
|
population attributable risk |
3.940e-10 |
1.750e-07 |
1.0000 |
0 |
related target |
3.921e-09 vs 0.0500 |
equivalent |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
counterfactual mean under no treatment |
-4.499e-10 |
1.079e-07 |
1.0000 |
0 |
matching implementation |
2.021e-08 vs 0.0500 |
equivalent |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
observed outcome mean under the natural course |
-4.917e-13 |
1.747e-10 |
1.0000 |
0 |
matching implementation |
1.071e-10 vs 0.0500 |
equivalent |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable fraction |
9.013e-10 |
1.498e-07 |
1.0000 |
0 |
related target |
2.827e-08 vs 0.0500 |
equivalent |
L1 rows in 100 clusters of 20 that share W, in sample with id= |
|
population attributable risk |
4.494e-10 |
1.594e-07 |
1.0000 |
0 |
related target |
2.638e-08 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
counterfactual mean under no treatment |
-3.170e-10 |
8.565e-08 |
1.0000 |
0 |
matching implementation |
6.937e-09 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
observed outcome mean under the natural course |
-2.225e-11 |
8.322e-09 |
1.0000 |
0 |
matching implementation |
6.049e-10 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable fraction |
6.048e-10 |
1.235e-07 |
1.0000 |
0 |
related target |
1.337e-08 vs 0.0500 |
equivalent |
L1: two-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees |
|
population attributable risk |
2.948e-10 |
1.306e-07 |
1.0000 |
0 |
related target |
3.345e-09 vs 0.0500 |
equivalent |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
counterfactual mean under no treatment |
-1.203e-10 |
3.667e-08 |
1.0000 |
0 |
matching implementation |
3.785e-09 vs 0.0500 |
equivalent |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
observed outcome mean under the natural course |
-1.277e-12 |
5.198e-10 |
1.0000 |
0 |
matching implementation |
5.305e-11 vs 0.0500 |
equivalent |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable fraction |
2.556e-10 |
5.802e-08 |
1.0000 |
0 |
related target |
5.482e-09 vs 0.0500 |
equivalent |
L1 with fixed analysis weights 0.6, 1.0 and 1.8 by level of W, in sample |
|
population attributable risk |
1.190e-10 |
5.743e-08 |
1.0000 |
0 |
related target |
4.419e-09 vs 0.0500 |
equivalent |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
counterfactual mean under no treatment |
-9.118e-14 |
1.109e-10 |
1.0000 |
0 |
matching implementation |
1.819e-10 vs 0.0500 |
equivalent |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
observed outcome mean under the natural course |
-4.240e-14 |
5.069e-11 |
1.0000 |
0 |
matching implementation |
1.520e-11 vs 0.0500 |
equivalent |
L1 tables with a bounded continuous Beta outcome and MAR outcomes, in sample |
|
population attributable risk |
4.878e-14 |
5.670e-11 |
1.0000 |
0 |
related target |
4.609e-11 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
1.108e-09 |
2.718e-07 |
1.0000 |
0 |
matching implementation |
2.044e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
-3.087e-10 |
7.885e-08 |
1.0000 |
0 |
matching implementation |
1.509e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
1.455e-11 |
4.095e-09 |
1.0000 |
0 |
matching implementation |
1.244e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
observed outcome mean under the natural course |
-3.927e-12 |
1.786e-09 |
1.0000 |
0 |
matching implementation |
7.039e-11 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
5.686e-10 |
9.558e-08 |
1.0000 |
0 |
related target |
1.801e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, in sample, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
3.048e-10 |
1.003e-07 |
1.0000 |
0 |
related target |
1.780e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘high’ |
2.657e-10 |
6.481e-08 |
1.0000 |
0 |
matching implementation |
1.290e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘low’ |
-1.729e-10 |
4.368e-08 |
1.0000 |
0 |
matching implementation |
1.042e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
counterfactual mean under treatment arm ‘mid’ |
3.801e-11 |
1.066e-08 |
1.0000 |
0 |
matching implementation |
3.196e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
observed outcome mean under the natural course |
-4.712e-11 |
2.132e-08 |
1.0000 |
0 |
matching implementation |
8.612e-10 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable fraction, natural course versus reference arm ‘low’ |
2.610e-10 |
4.340e-08 |
1.0000 |
0 |
related target |
1.383e-09 vs 0.0500 |
equivalent |
L3: three-arm binary-outcome law with MAR outcomes, stacked CV-TMLE with depth-five trees, reference arm low |
|
population attributable risk, natural course versus reference arm ‘low’ |
1.258e-10 |
4.096e-08 |
1.0000 |
0 |
related target |
1.494e-09 vs 0.0500 |
equivalent |
Theory properties#
property |
cell |
role |
what was tested |
what must hold |
measured |
result |
|---|---|---|---|---|---|---|
|
|
positive |
population attributable fraction: all three required nuisance functions are correctly specified with an independently computed efficiency bound |
SE ratio and coverage intervals both inside their calibration bands, with both efficiency-ratio intervals inside their bands |
coverage 0.9369 to 0.9555, SE ratio 0.9635 to 1.0214, empirical efficiency ratio 0.9796 to 1.0386, reported efficiency ratio 0.9989 to 1.0022 |
pass |
|
|
control |
population attributable fraction: the cross-covariance of the two parent curves is dropped, so the standard error adds the natural-course and reference-arm variances as if independent |
the SE-ratio interval must fall above the calibration band |
coverage 0.9977 to 1.0000, SE ratio 1.6503 to 1.7477, empirical efficiency ratio 0.9808 to 1.0383, reported efficiency ratio 1.7111 to 1.7169 |
pass |
|
|
positive |
population attributable risk: all three required nuisance functions are correctly specified with an independently computed efficiency bound |
SE ratio and coverage intervals both inside their calibration bands, with both efficiency-ratio intervals inside their bands |
coverage 0.9359 to 0.9546, SE ratio 0.9665 to 1.0225, empirical efficiency ratio 0.9776 to 1.0343, reported efficiency ratio 0.9986 to 1.0005 |
pass |
|
|
control |
population attributable risk: the cross-covariance of the two parent curves is dropped, so the standard error adds the natural-course and reference-arm variances as if independent |
the SE-ratio interval must fall above the calibration band |
coverage 0.9987 to 1, SE ratio 1.8847 to 1.9927, empirical efficiency ratio 0.9769 to 1.0329, reported efficiency ratio 1.9441 to 1.9488 |
pass |
|
|
control |
population attributable risk: one efficiency-bound unit of independent noise is added to each estimate |
the empirical efficiency ratio must rise above the band |
coverage 0.8103 to 0.8414, SE ratio 0.6808 to 0.7212, empirical efficiency ratio 1.3859 to 1.4684, reported efficiency ratio 0.9986 to 1.0005 |
pass |
|
|
control |
population attributable risk: the reported standard errors are multiplied by a declared factor below one |
the SE-ratio interval must fall below the calibration band |
coverage 0.8088 to 0.8400, SE ratio 0.6775 to 0.7161, empirical efficiency ratio 0.9771 to 1.0327, reported efficiency ratio 0.6990 to 0.7004 |
pass |
|
|
positive |
the outcome regression, treatment mechanism and observation mechanism are correct |
bias interval inside the equivalence margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.000505 to 0.0017, margin 0.0037, SE ratio 1.0202 |
pass |
|
|
positive |
the treatment and observation mechanisms are correct and the outcome regression is not |
bias interval inside the equivalence margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.0027 to 0.000257, margin 0.0050, SE ratio 1.0163 |
pass |
|
|
control |
only the treatment mechanism is correct |
bias interval must fall entirely outside the margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.1975 to -0.1953, margin 0.0037, SE ratio 1.2430 |
pass |
|
|
positive |
only the outcome regression is correct |
bias interval inside the equivalence margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.000909 to 0.000462, margin 0.0023, SE ratio 3.7687 |
pass |
|
|
control |
the outcome regression and observation mechanism are wrong, and the product of the treatment and observation mechanisms is correct at the reference arm |
bias interval must fall entirely outside the margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.1259 to -0.1235, margin 0.0041, SE ratio 0.9745 |
pass |
|
|
control |
only the observation mechanism is correct |
bias interval must fall entirely outside the margin, SE ratio must remain between 0.1 and 10.0 |
bias -0.1371 to -0.1345, margin 0.0044, SE ratio 1.9138 |
pass |
|
|
control |
population attributable fraction: the identical estimator silently discards unobserved outcomes and ignores selection |
bias interval must fall entirely outside the margin |
bias -0.0592 to -0.0547, margin 0.0075 |
pass |
|
|
control |
population attributable risk: the identical estimator silently discards unobserved outcomes and ignores selection |
bias interval must fall entirely outside the margin |
bias -0.0304 to -0.0282, margin 0.0036 |
pass |
|
|
positive |
population attributable risk: the observation indicator is declared and every nuisance is correct |
bias interval inside the equivalence margin |
bias -0.0012 to 0.000973, margin 0.0037 |
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 -7.878e-07, coverage 0.9078 to 0.9544, SE ratio 0.9591 |
pass |
|
|
control |
bias, coverage and SE calibration at n = 500 |
coverage interval lies below nominal or clears the declared floor |
bias 0.000205, coverage 0.9194 to 0.9627, SE ratio 1.0021 |
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.000069, coverage 0.9297 to 0.9698, SE ratio 1.0020 |
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.5329 to -0.4672 |
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.5019 to -0.4989 |
pass |
|
|
control |
L1: ey_obs, ey0, par and paf with MAR outcomes, in sample with the law’s nuisances: the pointwise 95% intervals of the same fits, read jointly |
joint coverage upper endpoint must fall below the nominal rate |
joint coverage 0.8642 to 0.8985 |
pass |
|
|
positive |
L1: ey_obs, ey0, par and paf with MAR outcomes, in sample with the law’s nuisances: the max-t multiplier band over every estimand the law reports, from the same-row centered influence curves |
joint coverage interval inside the calibration coverage band |
joint coverage 0.9328 to 0.9570 |
pass |
|
|
control |
L1: ey_obs, ey0, par and paf with MAR outcomes, stacked CV-TMLE with depth-five trees: the pointwise 95% intervals of the same fits, read jointly |
joint coverage upper endpoint must fall below the nominal rate |
joint coverage 0.8761 to 0.9090 |
pass |
|
|
positive |
L1: ey_obs, ey0, par and paf with MAR outcomes, stacked CV-TMLE with depth-five trees: the max-t multiplier band over every estimand the law reports, from the same-row centered influence curves |
joint coverage interval inside the calibration coverage band |
joint coverage 0.9402 to 0.9630 |
pass |
|
|
control |
L1 rows in 100 clusters of 20 that share W: ey_obs, ey0, par and paf, in sample with id=: the pointwise 95% intervals of the same fits, read jointly |
joint coverage upper endpoint must fall below the nominal rate |
joint coverage 0.8619 to 0.8965 |
pass |
|
|
positive |
L1 rows in 100 clusters of 20 that share W: ey_obs, ey0, par and paf, in sample with id=: the max-t multiplier band over every estimand the law reports, from the same-row centered influence curves |
joint coverage interval inside the calibration coverage band |
joint coverage 0.9282 to 0.9533 |
pass |
|
|
control |
L3: ey_obs, the three arm means, par[low] and paf[low] with MAR outcomes, in sample: the pointwise 95% intervals of the same fits, read jointly |
joint coverage upper endpoint must fall below the nominal rate |
joint coverage 0.7894 to 0.8310 |
pass |
|
|
positive |
L3: ey_obs, the three arm means, par[low] and paf[low] with MAR outcomes, in sample: the max-t multiplier band over every estimand the law reports, from the same-row centered influence curves |
joint coverage interval inside the calibration coverage band |
joint coverage 0.9296 to 0.9544 |
pass |
|
|
control |
L1 with fixed weights 0.6, 1.0 and 1.8 by W: ey_obs, ey0, par and paf, in sample: the pointwise 95% intervals of the same fits, read jointly |
joint coverage upper endpoint must fall below the nominal rate |
joint coverage 0.8597 to 0.8946 |
pass |
|
|
positive |
L1 with fixed weights 0.6, 1.0 and 1.8 by W: ey_obs, ey0, par and paf, in sample: the max-t multiplier band over every estimand the law reports, from the same-row centered influence curves |
joint coverage interval inside the calibration coverage band |
joint coverage 0.9365 to 0.9600 |
pass |
|
|
positive |
population attributable risk: both fluctuations are solved; the outcome regression is wrong and both mechanisms are correct |
bias interval inside the equivalence margin |
bias -0.000912 to 0.0023, margin 0.0053 |
pass |
|
|
control |
population attributable risk: the identical wrong outcome regression is read without either fluctuation |
bias interval must fall entirely outside the margin |
bias -0.2283 to -0.2276, margin 0.0012 |
pass |
The study declared every budget, seed, law, learner and size before any verdict. The policy is
gated. A red cell is diagnosed from the committed rows. A defect in cleverly is fixed and the
study is regenerated. Otherwise a declaration switches the study to reporting before one re-run
with the same seeds, and the red-cell ledger records the cell.
family |
what it tests |
|---|---|
|
PAR on L1 with every nuisance correct, with \(g\) and \(\pi\) wrong, and with \(Q\) wrong. Three controls must miss the truth: \(Q\) and \(g\) wrong, \(Q\) and \(\pi\) wrong, and |
|
PAR at n = 500, 2,000 and 8,000, and the efficiency ratio against the exact EIF SD, 0.67359 |
|
PAR and PAF against the calibration bands. A shrunken-SE and a noise control derive from the PAR rows. Two inflated-SE controls drop the cross-covariance of the two parent curves |
|
PAR with a wrong outcome regression, against its untargeted plug-in |
|
PAR with the response declared, against complete-case fits of PAR and PAF |
|
the default band of five fits, each with its pointwise joint control: in-sample L1, in-sample L3, stacked L1, and the weighted and clustered in-sample L1 fits |
The table gives the exact large-sample limits that size each control. tests/unit/test_mar_attributable_design.py
recomputes them. One per-replication SD of PAR at n = 2,000 is \(0.67359/\sqrt{2000}=0.0151\).
control |
limiting displacement |
per-replication SDs |
|---|---|---|
|
-0.1354 |
9.0 |
|
-0.1968 |
13.1 |
|
-0.1243 |
8.3 |
|
-0.2280 |
15.1 |
|
-0.0295 |
1.96 |
|
-0.0574 |
1.79 |
|
SE ratio 1.951 |
not applicable |
|
SE ratio 1.715 |
not applicable |
In treatment_wrong the natural course stays exact and the reference arm carries the bias. In
product_only the reference arm stays exact and the natural course carries it. The band design is
in tests/unit/test_simultaneous_cell_design.py. The table gives the limiting pointwise joint
coverage of each cell. The control power is 1.0 at 2,400 replications in each cell.
cell |
covariance |
pointwise joint coverage |
|---|---|---|
|
exact efficient influence covariance on L1. The stacked fit has the in-sample limit |
0.8849 |
|
exact efficient influence covariance on L3 |
0.8148 |
|
the tilted functional’s curves under the sampling law |
0.8829 |
|
the covariance of the cluster sums of 20 rows that share \(W\) |
0.8855 |
The stacked three-arm fit creates one more band shape. It has the in-sample three-arm limit, and the stacked binary cell measures its construction, so the gate maps it to those two cells.
Measured values and declared margins#
quantity |
value |
source |
|---|---|---|
|
800 |
paired replications |
|
2000 |
observations per primary replication |
|
62 |
truth tests passing |
|
62 |
truth tests reported |
|
31 |
paired comparisons passing |
|
31 |
paired comparisons reported |
|
32 |
property cells passing |
|
32 |
property cells reported |
|
0.0568 |
largest primary standardized bias |
|
0.9350 |
lowest primary coverage |
|
2.718e-07 |
largest paired similarity-margin share |
|
0.9900 |
Monte Carlo confidence level |
|
0.0500 |
nominal test size |
|
0.9500 |
nominal interval coverage |
|
10000 |
bootstrap replications |
|
0.2500 |
standardized-bias margin |
|
0.9000 |
primary coverage floor |
|
0.9900 |
descriptive overcoverage threshold |
|
0.8000 |
primary SE-ratio lower screen |
|
1.2000 |
primary SE-ratio upper screen |
|
0.9300 |
calibration SE-ratio lower bound |
|
1.0700 |
calibration SE-ratio upper bound |
|
0.9200 |
calibration coverage lower bound |
|
0.9800 |
calibration coverage upper bound |
|
0.1000 |
type-I upper bound |
|
0.1500 |
paired similarity margin in pooled SDs |
|
1.1000 |
RMSE-ratio noninferiority bound |
|
-0.0250 |
coverage-difference noninferiority bound |
|
0.0500 |
calibration-excess noninferiority bound |
|
0.8000 |
minimum power lower bound |
|
-0.5000 |
expected root-n slope |
|
-0.6250 |
root-n slope lower bound |
|
-0.3750 |
root-n slope upper bound |
|
-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.7000 |
negative-control SE multiplier |
|
0.9000 |
efficiency-ratio lower bound |
|
1.1000 |
efficiency-ratio upper bound |
|
0.2500 |
minimum targeting displacement |
|
0.2500 |
minimum complete-case displacement |
|
0.0151 |
exact L1 EIF standard error of PAR at primary n |
|
0.0321 |
exact L1 EIF standard error of PAF at primary n |
Limits#
The study covers finite-support laws with one three-level baseline covariate. The in-sample fits use the law’s own nuisances, and the stacked fits use trees that can fit the saturated model.
No cross-fitted continuous, clustered or weighted fit is admitted, so none is measured.
Stacked strata, the bootstrap, DR-TMLE and C-TMLE are refused, so none is measured. The in-sample fit admits strata.
tests/unit/test_stratified_natural_course_exact.pychecks its stratum PAR against the stratum curves, and this study does not measure it.The product-only rescue of the reference arm is measured as a control, not claimed. The natural course needs a correct \(\hat\pi\) or a correct \(\hat m\).
The evidence for the scalar
ey_obsat three arms comes from the three-arm cells. The jointey_obsequals the scalar fit bit for bit (tests/unit/test_attributable_mar_stack.py).No instrument here can detect a violation of missingness at random.
Reproduction#
The fixture README, manifest, replications, paired decisions, and property results carry the protocol, provenance, and every published row.