This page lists software I’ve developed and others’ software that I often find myself recommending.

Authored Software

PyBLP: BLP Demand Estimation
with Chris Conlon

Summary Open-source Python 3 package for estimating demand with BLP-type random coefficients logit models. Features include demographics, micro moments, supply-side moments, nesting parameters, pure characteristics approximation, optimal instruments, importance sampling, partial ownership matrices, analytic gradients, fixed effect absorption, fixed point acceleration, sparse grid integration, synthetic data construction, merger simulation, and parametric bootstrapping of post-estimation outputs.

PyHDFE: High Dimensional Fixed Effect Absorption
with Anya Tarascina

Summary Open-source Python 3 package for algorithms that absorb high dimensional fixed effects. Features include matrix residualization, degrees of freedom computation, and common convergence criteria to facilitate algorithm comparisons.

Python package that uses familiar pandas-like syntax to build and execute SQL queries. This is my preferred package for integrating complex queries into a Python research workflow.

Python package for automatic differentiation, JIT compilation, and GPU support. I’ve found this package incredibly helpful for structural modelling.

Python package that allows researchers to run R functions in Python. This package is incredibly helpful when I have a Python research project but need to use statistical routines implemented only in R.

System for web browser automation, which can simulate clicks and keystrokes to automate the chore of clicking through a website. Python integration is straightforward with the selenium package, which I’ve used to scrape data from websites that lack a modern API.

Simple relational database system, which is much easier to set up than client-server systems, but contains all the functionality needed by most researchers to structure and build relations between datasets. It comes pre-packaged in Python as the sqlite module.