Skip to content
2 changes: 2 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ 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) |
| Bootstrap NaN-gating gap: manual SE/CI/p-value without non-finite filtering or SE<=0 guard | `imputation_bootstrap.py`, `two_stage_bootstrap.py` | #177 | Medium — migrate to `compute_effect_bootstrap_stats` from `bootstrap_utils.py` |
| 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 |

#### Performance

Expand Down
11 changes: 11 additions & 0 deletions diff_diff/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@
ContinuousDiDResults,
DoseResponseCurve,
)
from diff_diff.efficient_did import (
EfficientDiD,
EfficientDiDResults,
EDiDBootstrapResults,
)
from diff_diff.trop import (
TROP,
TROPResults,
Expand Down Expand Up @@ -172,6 +177,7 @@
DDD = TripleDifference
Stacked = StackedDiD
Bacon = BaconDecomposition
EDiD = EfficientDiD

__version__ = "2.6.1"
__all__ = [
Expand Down Expand Up @@ -231,6 +237,11 @@
"trop",
"StackedDiDResults",
"stacked_did",
# EfficientDiD
"EfficientDiD",
"EfficientDiDResults",
"EDiDBootstrapResults",
"EDiD",
# Visualization
"plot_event_study",
"plot_group_effects",
Expand Down
Loading
Loading