Skip to content

Commit ff63fd5

Browse files
authored
Merge pull request #262 from igerber/release/v2.8.4
Bump version to 2.8.4
2 parents cd4f5a6 + 9a04468 commit ff63fd5

5 files changed

Lines changed: 22 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.8.4] - 2026-04-04
11+
12+
### Added
13+
- **SDR replicate method** (Phase 8a) — Successive Difference Replication for ACS PUMS users. `SurveyDesign(replicate_method="SDR")` with variance formula `V = 4/R * sum((theta_r - theta)^2)`.
14+
- **FPC support for ImputationDiD and TwoStageDiD** (Phase 8b) — finite population correction now threaded through TSL variance for both estimators.
15+
- **Lonely PSU "adjust" in bootstrap** (Phase 8d) — `lonely_psu="adjust"` now works with survey-aware bootstrap (previously raised `NotImplementedError`). Uses Rust & Rao (1996) grand-mean centering.
16+
- **CV on estimates** (Phase 8e) — `coef_var` property on all results objects (SE/estimate). Handles edge cases (SE=0, estimate=0).
17+
- **Weight trimming utility** (Phase 8e) — `trim_weights(data, weight_col, upper=None, lower=None, quantile=None)` in `prep.py` for capping extreme survey weights.
18+
- **ImputationDiD pretrends + survey** (Phase 8e) — pre-trends F-test now survey-aware using subpopulation approach for correct variance under complex designs.
19+
- Updated ImputationDiD tutorial to demonstrate `pretrends=True` event study
20+
- Updated survey tutorial: narrative improvements, chart rendering fixes
21+
22+
### Fixed
23+
- Fix survey pretrend F-test df calculation and rank-deficient survey VCV handling
24+
- Fix `trim_weights` NaN poisoning when weight column contains missing values
25+
- Fix single-singleton PSU warning for lonely_psu="adjust"
26+
1027
## [2.8.3] - 2026-04-02
1128

1229
### Added
@@ -1112,6 +1129,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11121129
- `to_dict()` and `to_dataframe()` export methods
11131130
- `is_significant` and `significance_stars` properties
11141131

1132+
[2.8.4]: https://github.com/igerber/diff-diff/compare/v2.8.3...v2.8.4
11151133
[2.8.3]: https://github.com/igerber/diff-diff/compare/v2.8.2...v2.8.3
11161134
[2.8.2]: https://github.com/igerber/diff-diff/compare/v2.8.1...v2.8.2
11171135
[2.8.1]: https://github.com/igerber/diff-diff/compare/v2.8.0...v2.8.1

diff_diff/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
Bacon = BaconDecomposition
212212
EDiD = EfficientDiD
213213

214-
__version__ = "2.8.3"
214+
__version__ = "2.8.4"
215215
__all__ = [
216216
# Estimators
217217
"DifferenceInDifferences",

docs/llms-full.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> A Python library for Difference-in-Differences causal inference analysis. Provides sklearn-like estimators with statsmodels-style output for econometric analysis.
44

5-
- Version: 2.8.3
5+
- Version: 2.8.4
66
- Repository: https://github.com/igerber/diff-diff
77
- License: MIT
88
- Dependencies: numpy, pandas, scipy (no statsmodels dependency)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "diff-diff"
7-
version = "2.8.3"
7+
version = "2.8.4"
88
description = "Difference-in-Differences causal inference with sklearn-like API. Callaway-Sant'Anna, Synthetic DiD, Honest DiD, event studies, parallel trends."
99
readme = "README.md"
1010
license = "MIT"

rust/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diff_diff_rust"
3-
version = "2.8.3"
3+
version = "2.8.4"
44
edition = "2021"
55
description = "Rust backend for diff-diff DiD library"
66
license = "MIT"

0 commit comments

Comments
 (0)