import sys
from pathlib import Path
ROOT = next(
p for p in [Path.cwd(), *Path.cwd().parents]
if (p / "scripts/tranche50_report.py").exists()
)
sys.path.insert(0, str(ROOT / "scripts"))
from tranche50_report import reportReligion, Division of Labor, and Conflict: Anti-Semitism in Germany over 600 Years
Sascha O. Becker; Luigi Pascali (2019) · American Economic Review
report("aeraej-10")Sascha O. Becker; Luigi Pascali (2019). American Economic Review. Table 1, column 1.
Source specification
| Source coefficient | Template on source sample | Source N | Template source-sample N |
|---|---|---|---|
| 0.052307 | 0.052307 | 5192 | 5192 |
Source-to-template coefficient difference: 6.94e-18, in original outcome units.
| Role | Column |
|---|---|
| Outcome | pogrom_small_t |
| Treatment | post_protestant_1546 |
| Unit | id |
| Time | centurynew |
| Cluster | id |
No additional covariates beyond fixed effects.
Estimates below divide the outcome by its source-sample standard deviation, 0.335282. Static TWFE is the treatment coefficient. Dynamic TWFE, BJS and Sun–Abraham average supported post-treatment cells by observation count. CS-DID additionally reports an equal-event-time average.
Analysis sample and treatment timing
| Observations | Units | Treated | Control units | Cohorts | Clusters |
|---|---|---|---|---|---|
| 5192 | 1298 | 664 | 634 | 1 | 1298 |
Adoption is the first observed treated period. Initially treated units and units without an observed minus-one baseline are excluded. Post-adoption untreated rows are excluded for switching policies. The plot shows at most 100 seeded-sample units; estimation uses the full eligible sample. Empty cells remain missing.
y__d: 100 of 1298 units shown (seed 20261008). All eligible units enter estimation. Purple: untreated; yellow: treated; white: unobserved.
Estimates
| Estimator | Estimate (SD) | SE | 95% lower | 95% upper | Target | Status |
|---|---|---|---|---|---|---|
| Static TWFE | 0.15601 | 0.055107 | 0.0479 | 0.26412 | Coefficient | estimated |
| Dynamic TWFE | 0.16089 | 0.057808 | 0.047483 | 0.2743 | Treated cells | estimated |
| BJS / did2s | 0.15606 | 0.055065 | 0.048037 | 0.26409 | Treated cells | estimated |
| Sun–Abraham | 0.16089 | 0.057808 | 0.047483 | 0.2743 | Treated cells | estimated |
| CS-DID (equal event-time) | 0.16089 | 0.057752 | 0.047698 | 0.27408 | Equal post-event times | estimated |
| CS-DID (treated cells) | 0.16089 | 0.057752 | 0.047698 | 0.27408 | Treated cells | estimated |
| SDID | 0.15793 | nan | nan | nan | Treated cells | estimated |
| Matrix completion | 0.15682 | nan | nan | nan | Treated cells | estimated |
| Horizontal ridge | -0.18041 | nan | nan | nan | Treated cells | estimated |
| Multisynth (cohort-averaged) | 0.11144 | nan | nan | nan | Treated cells | estimated |
| Multisynth (individual) | 0.23752 | nan | nan | nan | Treated cells | estimated |
Intervals use the configured clusters and the estimator’s available inference. Hollow points have no computed interval; no new refit-bootstrap batch is run.
Event studies
Cohort homogeneity
The imported TestingInEventStudies deviations design tests positive-event-time cohort deviations jointly. This is the homoskedastic nested-model F-test; the estimator confidence intervals above use clustered inference.
**y__d: homogeneity test not identified.** Only one treated cohort remains on the common supported sample.
Fitting settings and checks
| Specification | Estimator | Settings | Pooling |
|---|---|---|---|
| y__d | CS-DID | {“est_method”: “dr”, “control_group”: “notyettreated”, “xformla”: “y ~ 1”, “base_period”: “universal”, “anticipation”: 0, “panel”: true, “allow_unbalanced_panel”: false, “clustervar”: “cluster”, “clusters”: 1298, “bstrap”: false, “cband”: false, “aggregate”: “dynamic”, “event_aggregate”: “dynamic”, “balance_e”: null, “post_event_min”: 0, “post_event_max”: 1} | {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Group-time DIDs; no synthetic-control pooling parameter”} |
| y__d | SDID | {} | {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Separate adoption-cohort fits”, “within_cohort_target”: “Mean treated outcome history”, “cross_cohort_partial_pooling”: false, “shared_structure”: null, “note”: “Regularization penalties are not partial-pooling parameters.”} |
| y__d | Matrix completion | {“lambda_fraction”: 0.25, “max_iterations”: 1000, “tolerance”: 1e-12} | {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Joint untreated-cell fit”, “within_cohort_target”: null, “cross_cohort_partial_pooling”: false, “shared_structure”: “Low-rank matrix and unit/time effects”, “note”: “Regularization penalties are not partial-pooling parameters.”} |
| y__d | Horizontal ridge | {“penalty”: 1.0} | {“parameter”: null, “value”: null, “status”: “not_applicable”, “fit_scope”: “Separate adoption-cohort fits”, “within_cohort_target”: “Mean treated outcome history”, “cross_cohort_partial_pooling”: false, “shared_structure”: null, “note”: “Regularization penalties are not partial-pooling parameters.”} |
| y__d | Multisynth (cohort-averaged) | {“nu”: 1, “nu_selection”: “Package data-derived default”, “lambda”: 0, “fixedeff”: true, “scm”: true, “time_cohort”: true, “n_leads”: 2, “n_lags”: 2, “eps_abs”: 1e-06, “eps_rel”: 1e-06, “V”: “Identity (package default)”, “matrix_assembly”: “Unmodified package default”} | {“parameter”: “nu”, “value”: 1, “status”: “used”, “fit_scope”: “Joint optimization of 1 cohort fits”, “cross_cohort_partial_pooling”: true, “note”: “nu=0 weights separate cohort imbalance only; nu=1 weights pooled imbalance only. One shared nu, not a cohort-specific tuning parameter.”} |
| y__d | Multisynth (individual) | {“nu”: 0.188021101834431, “nu_selection”: “Package data-derived default”, “lambda”: 0, “fixedeff”: true, “scm”: true, “time_cohort”: false, “n_leads”: 2, “n_lags”: 2, “eps_abs”: 1e-06, “eps_rel”: 1e-06, “V”: “Identity (package default)”, “matrix_assembly”: “Equivalent sparse matrix construction”} | {“parameter”: “nu”, “value”: 0.188021101834431, “status”: “used”, “fit_scope”: “Joint optimization of 664 unit fits”, “cross_cohort_partial_pooling”: true, “note”: “nu=0 weights separate cohort imbalance only; nu=1 weights pooled imbalance only. One shared nu, not a cohort-specific tuning parameter.”} |
{
"did2s_vs_direct_imputation_max_post_difference": 1.1102230246251565e-16,
"package_aggregate_vs_estimable_cell_weights": 0.0
}