PyTwoWay is the Python package associated with the following paper:

How Much Should we Trust Estimates of Firm Effects and Worker Sorting?” by Stéphane Bonhomme, Kerstin Holzheu, Thibaut Lamadon, Elena Manresa, Magne Mogstad, and Bradley Setzler. No. w27368. National Bureau of Economic Research, 2020.

The package provides implementations for a series of estimators for models with two sided heterogeneity:

  1. two way fixed effect estimator as proposed by Abowd Kramarz and Margolis

  2. homoskedastic bias correction as in Andrews et al

  3. heteroskedastic correction as in KSS (TBD)

  4. a group fixed estimator as in BLM

  5. a group correlated random effect as presented in the main paper

If you want to give it a try, you can start the example notebook here: binder. This starts a fully interactive notebook with a simple example that generates data and runs the estimators.

The code is relatively efficient. Solving large sparse linear models relies on PyAMG. This is the code we use to estimate the different decompositions on US data.

The package provides a Python interface as well as an intuitive command line interface. Installation is handled by pip or Conda (TBD). The source of the package is available on GitHub at PyTwoWay. The online documentation is hosted here.

Quick Start

To install via pip, from the command line run:

pip install pytwoway

To run PyTwoWay via the command line interface, from the command line run:

pytw --my-config config.txt --fe --cre

Example config.txt:

data = file.csv
filetype = csv
col_dict = "{'i': 'your_workerid_col', 'j': 'your_firmid_col', 'y': 'your_compensation_col', 't': 'your_year_col'}"