Software

This page lists software I have authored along with others’ software that I often recommend to others.

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.

Ibis
Python package that uses familiar pandas-like syntax to build and execute SQL queries. It allows for construction of complex queries and integrates nicely into a Python research workflow.

JAX
Python package for automatic differentiation and JIT compilation. Efficient evaluation of derivatives is incredibly helpful for structural modelling.

rpy2
Python package that allows researchers to run R functions in Python. This is incredibly useful when a research project is written in Python but relies on statistical routines implemented only in R.

Selenium
System for web browser automation. Selenium can simulate clicks and keystrokes to automate the chore of clicking through a website. For example, it can be used to scrape data from a website that lacks a modern API. Python integration is simple with the selenium package.

SQLite
Simple relational database system. SQLite 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 many datasets. It also comes pre-packaged in Python as the sqlite module.

SymPy
Python package for symbolic mathematics. Think Mathematica or Maple, but open-source and easier to integrate into modern workflows.