ModernDiD 0.0.2 Release Notes#
ModernDiD 0.0.2 is a major feature release that adds triple difference-in-differences estimation, continuous treatment DiD, migrates from pandas to polars for improved performance, and integrates plotnine for publication-quality visualizations.
Highlights#
Triple Difference-in-Differences: New
ddd()estimator for designs with an additional dimension of variation (e.g., eligibility status)Continuous Treatment DiD: New
cont_did()function for settings with treatment intensity rather than binary treatmentPolars migration: Migrated from pandas to polars for faster DataFrame operations
Plotnine integration: New plotting functions using plotnine for publication-quality visualizations
Unified API: Consistent argument names across all main estimators
New Features#
Triple Difference-in-Differences#
Add
ddd()function for triple DiD estimation with panel dataAdd
agg_ddd()function for aggregating triple DiD effectsSupport for repeated cross-section data in DDD estimators
Add DDD-specific plotting functions
Continuous Treatment DiD#
Add
cont_did()function implementing Callaway, Goodman-Bacon, and Sant’Anna (2024) for continuous/multi-valued treatmentsSupport for parametric and CCK estimation methods
Add dose-response aggregation options
Plotting#
Integrate plotnine for all visualization functions
Add
plot_gt()for group-time effects visualizationAdd
plot_event_study()for event study plotsAdd enhanced themes and styling options
Performance Improvements#
Migrate from pandas to polars for DataFrame handling across the codebase
Add Numba JIT compilation for computationally intensive operations
Optimize weight influence computations
API Changes#
Unify argument names across main estimators for consistency
Update results formatting for
aggte()andagg_ddd()functionsAdd
random_stateparameter for bootstrap reproducibility
Bug Fixes#
Fix plotting functions to use polars DataFrame directly
Fix deprecated pandas SettingWithCopyWarning filter
Update analytical standard errors in DR-DiD estimators
Fix various test suite issues and improve tolerances
Contributors#
A total of 1 person contributed to this release.
Jordan Deklerk
Pull Requests Merged#
A total of 70 pull requests were merged for this release, of which 37 are feature or fix PRs (excluding automated dependency updates).
#114: Unify main function arguments
#113: Integrate plotnine for all plotting
#111: Migrate codebase from pandas to polars
#110: Update testing instructions for Tox usage
#109: Add tighter tolerances for point estimates in R tests
#108: Add the
didtriplereadme#106: Update test instructions in contributing guide
#105: Add multi-period repeated cross section DDD functionality
#103: Add unified DDD estimator and numba optimizations
#102: Add aggregated treatment effects for triple DiD
#101: Add multi-period DDD estimator
#100: Add 2 period panel DDD estimator
#98: Add nuisance function estimation for DDD
#97: Add 2-period triple DiD preprocessing logic
#96: Add
random_statefor bootstrap reproducibility#94: Add continuous DiD preprocessing functions
#88: Fix package dependencies
#87: Add batteries-included plotting via
PlotCollectionobject#78: Unify preprocessing logic for all estimators
#74: Refactor tox testing environments
#73: Fix propensity trimming in estimators
#62: Update analytical standard errors for estimators
#56: Optimize full test suite for speed
#53: Update API links
#52: Add docs for
didcont#51: Add
cont_did()plotting functions#42: Add new docs
#41: Add main continuous DiD function and preprocessing functions
#37: Add more processing functions for continuous DiD
#36: Add splines and panel processing functions
#33: Fix references in NPIV functions
#32: Nonparametric IV functions for sieve dimension and UCB estimation
#29: API doc fix for build
#28: Update index and API documentation
#27: Fix layout for headers
#26: Fix readthedocs error
#25: Add new logos