# 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.## Recommended Software

**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.