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 treatment

  • Polars 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 data

  • Add agg_ddd() function for aggregating triple DiD effects

  • Support for repeated cross-section data in DDD estimators

  • Add DDD-specific plotting functions

Continuous Treatment DiD#

Plotting#

  • Integrate plotnine for all visualization functions

  • Add plot_gt() for group-time effects visualization

  • Add plot_event_study() for event study plots

  • Add 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() and agg_ddd() functions

  • Add random_state parameter 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 didtriple readme

  • #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_state for bootstrap reproducibility

  • #94: Add continuous DiD preprocessing functions

  • #88: Fix package dependencies

  • #87: Add batteries-included plotting via PlotCollection object

  • #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