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 reportThe Berlin Stock Exchange in Imperial Germany: A Market for New Technology?
Sibylle Lehmann-Hasemeyer; Jochen Streb (2016) · American Economic Review
report("aeraej-164")Sibylle Lehmann-Hasemeyer; Jochen Streb (2016). American Economic Review. Table 2.
Source specification
The source reports event-specific IPO effects relative to event zero. The comparison uses adoption at IPO, a minus-one baseline and a treated-cell post average; latest IPO cohorts serve as controls only before they adopt.
| Source coefficient | Template on source sample | Source N | Template source-sample N |
|---|---|---|---|
| 0.42301 | 0.15738 | 5039 | 5039 |
The source and comparison coefficients use different specifications or aggregation targets, as stated above; they are not an exact-replication comparison.
| Role | Column |
|---|---|
| Outcome | Patente |
| Treatment | policy |
| Unit | nr |
| Time | year |
| Cluster | nr |
No additional covariates beyond fixed effects.
Estimates below divide the outcome by its source-sample standard deviation, 7.03567. 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 |
|---|---|---|---|---|---|
| 4820 | 474 | 463 | 11 | 20 | 474 |
No never-treated group is available. The window ends before the latest cohort adopts; that cohort is the untreated comparison group within this window.
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 474 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.021045 | 0.018 | -0.014325 | 0.056415 | Coefficient | estimated |
| Dynamic TWFE | -0.15575 | 0.096067 | -0.34452 | 0.033024 | Treated cells | estimated |
| BJS / did2s | 0.0077344 | 0.048275 | -0.087125 | 0.10259 | Treated cells | estimated |
| Sun–Abraham | nan | nan | nan | nan | Treated cells | unvalidated |
| CS-DID (equal event-time) | nan | nan | nan | nan | Equal post-event times | unidentified |
| SDID | nan | nan | nan | nan | Treated cells | unidentified |
| Matrix completion | 0.042586 | nan | nan | nan | Treated cells | estimated |
| Horizontal ridge | nan | nan | nan | nan | Treated cells | unidentified |
| Multisynth (cohort-averaged) | nan | nan | nan | nan | Treated cells | unsupported |
| Multisynth (individual) | nan | nan | nan | nan | Treated cells | unsupported |
Intervals use the configured clusters and the estimator’s available inference. Hollow points have no computed interval; no new refit-bootstrap batch is run.
| Estimator | Reason |
|---|---|
| Sun–Abraham | unvalidated: package aggregation disagrees with observed cohort-cell weights |
| CS-DID (equal event-time) | UnidentifiedTarget: CS-DID cannot estimate 31 observed post-treatment group-time cells with the configured controls; no target cells were dropped. See csdid-group-time.json and package log. |
| SDID | ValueError: SDID cohort 5 has no observed donor/treated pre-period overlap |
| Horizontal ridge | ValueError: ridge cohort 5, period 5: no donor/pre-period overlap for observed treated outcomes |
| Multisynth (cohort-averaged) | multisynth-cohort: requires a complete finite outcome matrix after unit-period aggregation; 474 x 25 grid has 7030 missing cells, which are not zero-filled. |
| Multisynth (individual) | multisynth-individual: requires a complete finite outcome matrix after unit-period aggregation; 474 x 25 grid has 7030 missing cells, which are not zero-filled. |
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: F(75, 4156) = 0.4105; p = 1.** Homoskedastic nested-model F. 166 design columns.
Each line is a cohort deviation. The joint test restricts positive-event-time deviations to zero; event time 0 remains unrestricted.
Fitting settings and checks
| Specification | Estimator | Settings | Pooling |
|---|---|---|---|
| y__d | CS-DID | {} | {} |
| y__d | SDID | {} | {} |
| 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} | {} |
| y__d | Multisynth (cohort-averaged) | {} | {} |
| y__d | Multisynth (individual) | {} | {} |
{
"did2s_vs_direct_imputation_max_post_difference": 1.734723475976807e-17,
"package_aggregate_vs_estimable_cell_weights": 0.0030291304614603887,
"saturated_vs_deviations_relative_rss_difference": 1.5816795708445174e-15
}