You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**methodological_disclosure**: T3 combined-Monte-Carlo-error pass: sp.causal_forest and grf both report the doubly-robust AIPW ATE, so the row is like-for-like and graded against combined sampling error rather than a fixed relative band. On the clean-overlap DGP the two agree within ~0.05 combined SE (worst rel gap below 0.3%), the AIPW recovery test certifies truth-recovery within 4 SE, and the B=1000 Track B row confirms calibration -- the two criteria formerly held open are now both satisfied.
214
+
-**methodological_disclosure**: T3 combined-Monte-Carlo-error pass: sp.causal_forest and grf both report the doubly-robust AIPW ATE, so the row is like-for-like and graded against combined sampling error rather than a fixed relative band. On the clean-overlap DGP the two agree within ~0.05 combined SE (worst rel gap below 0.3%), the AIPW recovery tests certify truth-recovery within 4 SE and across multiple clean-overlap seeds, and the B=1000 Track B row confirms calibration -- the two criteria formerly held open are now both satisfied.
215
215
-**n_estimators**: `2000`
216
216
-**random_state**: `42`
217
217
-**covariates**: `['x1', 'x2', 'x3', 'x4', 'x5']`
@@ -220,7 +220,7 @@ Generated by `tests/r_parity/compare.py` on the `results/<module>_{py,R}.json` a
220
220
-**true_ate**: `1.0034061636502045`
221
221
-**true_att**: `1.0044253057506767`
222
222
-**dgp**: clean overlap: e(X)=0.5+0.2*tanh(X1) in [0.30,0.70]; tau(X)=1+0.5*X2; Y=X1+0.5*X3+tau*T+N(0,1); N=4000.
223
-
-**note**: Both sp.causal_forest.average_treatment_effect and grf::average_treatment_effect report the AIPW doubly-robust ATE/ATT. On this clean-overlap DGP the StatsPAI row uses clip=0.25, consistent with the known e(X) support [0.30,0.70], and agrees with grf within combined Monte Carlo error (worst rel gap below 0.3%). The former NSW-DW stress case is now tracked in the Track B robustness sweep.
223
+
-**note**: Both sp.causal_forest.average_treatment_effect and grf::average_treatment_effect report the AIPW doubly-robust ATE/ATT. On this clean-overlap DGP the StatsPAI row uses clip=0.25, consistent with the known e(X) support [0.30,0.70], and agrees with grf within combined Monte Carlo error (worst rel gap below 0.3%). A multi-seed clean-overlap pytest guard checks AIPW truth recovery for both ATE and ATT. The former NSW-DW stress case is now tracked in the Track B robustness sweep.
224
224
225
225
| stat | py est | R est | abs Δ | rel Δ | py SE | R SE | abs Δ SE | rel Δ SE |
-**methodological_disclosure**: T3 combined-Monte-Carlo-error pass: sp.causal_forest and grf both report the doubly-robust AIPW ATE, so the row is like-for-like and graded against combined sampling error rather than a fixed relative band. On the clean-overlap DGP the two agree within ~0.05 combined SE (worst rel gap below 0.3%), the AIPW recovery test certifies truth-recovery within 4 SE, and the B=1000 Track B row confirms calibration -- the two criteria formerly held open are now both satisfied.
243
+
-**methodological_disclosure**: T3 combined-Monte-Carlo-error pass: sp.causal_forest and grf both report the doubly-robust AIPW ATE, so the row is like-for-like and graded against combined sampling error rather than a fixed relative band. On the clean-overlap DGP the two agree within ~0.05 combined SE (worst rel gap below 0.3%), the AIPW recovery tests certify truth-recovery within 4 SE and across multiple clean-overlap seeds, and the B=1000 Track B row confirms calibration -- the two criteria formerly held open are now both satisfied.
244
244
-**n_estimators**: `2000`
245
245
-**random_state**: `42`
246
246
-**covariates**: `['x1', 'x2', 'x3', 'x4', 'x5']`
@@ -249,7 +249,7 @@ Generated by `tests/r_parity/compare.py` on the `results/<module>_{py,R}.json` a
249
249
-**true_ate**: `1.0034061636502045`
250
250
-**true_att**: `1.0044253057506767`
251
251
-**dgp**: clean overlap: e(X)=0.5+0.2*tanh(X1) in [0.30,0.70]; tau(X)=1+0.5*X2; Y=X1+0.5*X3+tau*T+N(0,1); N=4000.
252
-
-**note**: Both sp.causal_forest.average_treatment_effect and grf::average_treatment_effect report the AIPW doubly-robust ATE/ATT. On this clean-overlap DGP the StatsPAI row uses clip=0.25, consistent with the known e(X) support [0.30,0.70], and agrees with grf within combined Monte Carlo error (worst rel gap below 0.3%). The former NSW-DW stress case is now tracked in the Track B robustness sweep.
252
+
-**note**: Both sp.causal_forest.average_treatment_effect and grf::average_treatment_effect report the AIPW doubly-robust ATE/ATT. On this clean-overlap DGP the StatsPAI row uses clip=0.25, consistent with the known e(X) support [0.30,0.70], and agrees with grf within combined Monte Carlo error (worst rel gap below 0.3%). A multi-seed clean-overlap pytest guard checks AIPW truth recovery for both ATE and ATT. The former NSW-DW stress case is now tracked in the Track B robustness sweep.
253
253
-**stata_status**: bridge artifact not materialized: Stata 19's official cate command is the candidate causal-forest/AIPW reference, but the verified local runtime is Stata 18 and `which cate` fails.
254
254
255
255
| stat | py est | R est | Stata est | rel py-R | rel py-Stata | py SE | R SE | Stata SE | rel SE py-R | rel SE py-Stata |
0 commit comments