Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8dee467
Add survey data support (Phases 1-2): core infrastructure and base es…
igerber Mar 20, 2026
6891b30
Fix P0/P1/P2/P3 issues from PR #218 review
igerber Mar 20, 2026
c48454b
Fix P1/P2 issues from PR #218 review rerun (round 2)
igerber Mar 20, 2026
b05d34b
Fix fweight df and weighted rank-deficiency issues from PR #218 revie…
igerber Mar 20, 2026
a67d940
Fix survey HC1 meat formula and survey-weighted rank-deficiency issue…
igerber Mar 20, 2026
8443480
Fix survey df for no-PSU designs, unstratified lonely_psu, and Linear…
igerber Mar 20, 2026
21690d2
Fix weights-only TSL consistency and conflicting-weights gap from PR …
igerber Mar 20, 2026
b4cd770
Fix cluster-ignored-with-survey and weight validation gaps from PR #2…
igerber Mar 20, 2026
1b77278
Fix pweight HC1 meat formula, add compute_robust_vcov validation, and…
igerber Mar 20, 2026
5c5c2d4
Fix absorbed WLS FWL violation, fweight contract, and certainty PSU z…
igerber Mar 21, 2026
a9bf9ce
Fix zero-SE inference, full-census FPC, fweight contract, and absorbe…
igerber Mar 21, 2026
5e9e728
Fix stale PSU on re-fit, non-positive df fallback, and multi-absorb s…
igerber Mar 21, 2026
f34495a
Merge remote-tracking branch 'origin/main' into survey-data
igerber Mar 21, 2026
7ba2124
Fix zero-meat guard to return zero vcov for legitimate zero-score-dis…
igerber Mar 21, 2026
c5eca78
Fix MultiPeriodDiD bootstrap+survey fallback and relabel n_treated/n_…
igerber Mar 21, 2026
d12bab2
Add NA validation for survey strata/PSU/cluster IDs and fix results l…
igerber Mar 21, 2026
8a0ba95
Fix cluster-as-PSU nesting across strata and defer FPC validation for…
igerber Mar 21, 2026
e57b748
Move FPC >= n_PSU validation to compute_survey_vcov for effective PSU…
igerber Mar 21, 2026
ed28c01
Apply FPC in implicit per-observation PSU path and validate FPC >= n_…
igerber Mar 21, 2026
eebc13e
Fix n_psu to count per-stratum when PSU labels repeat across strata f…
igerber Mar 21, 2026
b6db034
Reject non-unique PSU labels across strata with nest=False and fix te…
igerber Mar 21, 2026
68ee72b
Reject absorb + fixed_effects + survey_design to prevent FWL violatio…
igerber Mar 21, 2026
349b0f5
Extend absorb + fixed_effects rejection to non-survey path (FWL viola…
igerber Mar 21, 2026
74f0438
Fix TWFE cluster-as-PSU injection for no-PSU survey designs from PR #…
igerber Mar 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ Deferred items from PR reviews that were not addressed before merge.
| ImputationDiD dense `(A0'A0).toarray()` scales O((U+T+K)^2), OOM risk on large panels | `imputation.py` | #141 | Medium (deferred — only triggers when sparse solver fails; fixing requires sparse least-squares alternatives) |
| EfficientDiD: warn when cohort share is very small (< 2 units or < 1% of sample) — inverted in Omega*/EIF | `efficient_did_weights.py` | #192 | Low |
| EfficientDiD: API docs / tutorial page for new public estimator | `docs/` | #192 | Medium |
| Multi-absorb weighted demeaning needs iterative alternating projections for N > 1 absorbed FE with survey weights; unweighted multi-absorb also uses single-pass (pre-existing, exact only for balanced panels) | `estimators.py` | #218 | Medium |
| TripleDifference power: `generate_ddd_data` is a fixed 2×2×2 cross-sectional DGP — no multi-period or unbalanced-group support. Add a `generate_ddd_panel_data` for panel DDD power analysis. | `prep_dgp.py`, `power.py` | #208 | Low |

#### Performance
Expand Down
7 changes: 7 additions & 0 deletions diff_diff/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@
PeriodEffect,
SyntheticDiDResults,
)
from diff_diff.survey import (
SurveyDesign,
SurveyMetadata,
)
from diff_diff.staggered import (
CallawaySantAnna,
CallawaySantAnnaResults,
Expand Down Expand Up @@ -312,6 +316,9 @@
"compute_pretrends_power",
"compute_mdv",
"plot_pretrends_power",
# Survey support
"SurveyDesign",
"SurveyMetadata",
# Rust backend
"HAS_RUST_BACKEND",
# Linear algebra helpers
Expand Down
247 changes: 220 additions & 27 deletions diff_diff/estimators.py

Large diffs are not rendered by default.

Loading
Loading