Skip to content

Release v0.5.0: Advanced Matching Algorithms, Estimators, and Visual Diagnostics

Choose a tag to compare

@jtuenner jtuenner released this 04 Mar 10:19
· 23 commits to main since this release

What's New in v0.5.0

This release significantly expands pymatchit-causal's capabilities, adding major new matching algorithms, additional machine learning distance estimators, and a completely overhauled visual diagnostic suite.

✨ New Matching Algorithms

  • Full Matching (method='full'): Optimal subclassification that minimizes globally calculated total distance within subclasses.
  • Genetic Matching (method='genetic'): Uses an evolutionary algorithm to find optimal covariate weights that maximize balance prior to matching.
  • Cardinality Matching (method='cardinality'): Finds the largest possible subset of the data where treated and control groups satisfy user-specified balance constraints.

🚀 Expanded Distance Metrics

In addition to GLM and Mahalanobis distance, we now officially support and document:

  • CBPS (Covariate Balancing Propensity Score): Jointly optimizes prediction accuracy and covariate balance.
  • New ML Estimators: Added support for decisiontree, adaboost, and penalized approaches (lasso, ridge, elasticnet).
  • User-Supplied Scores: You can now pass a pre-computed numpy array or pandas Series directly into the distance argument.

📊 Publication-Ready Diagnostics

  • Jitter Plots (m.plot(type='jitter')): Intuitively verify propensity score distributions and overlap across matched vs. unmatched units.
  • QQ Plots (m.plot(type='qq')): Compare quantile distributions of treated and control groups covariate by covariate.
  • Visual Cohesion: Overhauled the plotting engine. Love plots, ECDF plots, Propensity densities, and Jitter plots now share a consistent, modern visual aesthetic right out of the box.