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 Python 3
with Chris Conlon
Open-source Python 3 package for estimating demand with BLP-type random coefficients logit models. Features include supply-side moments, demographics, nesting parameters, optimal instruments, 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 Python 3
with Anya Tarascina
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.

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.

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.

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.

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

lfe
by Simen Gaure
Flexible R package for estimating linear models with high-dimensional fixed effects.

reghdfe
by Sergio Correia
Similar Stata package.

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.