Awesome
ppmlhdfe
: Poisson pseudo-likelihood regression with multiple levels of fixed effects
- Jump to:
citation
references
install
- Also see:
ppmlhdfe
Paper | Separation Paper | Help File | Separation Primer | Separation Benchmarks | Undocumented
ppmlhdfe is a Stata package that implements Poisson pseudo-maximum likelihood regressions (PPML) with multi-way fixed effects, as described in Correia, Guimarães, Zylkin (2019a). The estimator employed is robust to statistical separation and convergence issues, due to the procedures developed in Correia, Guimarães, Zylkin (2019b).
Recent updates
- Version 2.3 27jun2021: minor changes due to reghdfe's v6 update. Currently, ppmlhdfe is still using the code from reghdfe v5, which the new version ships with. A port is planned at some point in the future, but because some Mata functions changed their behavior, this needs to be done carefully.
- Version 2.2 02aug2019: major speedups due to improved IRLS acceleration (see page 7 of the paper) and due to faster separation checks.
- Version 2.1 04apr2019: added experimental step-halving. Not as useful for Poisson models as with other GLMs, so it's turned off by default. You can enable it by including the option
use_step_halving(1)
. Other options you can set arestep_halving_memory(0.9)
andmax_step_halving(2)
(default values in parenthesis).
Citation
As text
<ul> <li> Sergio Correia, Paulo Guimarães, Thomas Zylkin: “Verifying the existence of maximum likelihood estimates for generalized linear models”, 2019; <a href='http://arxiv.org/abs/1903.01633'>arXiv:1903.01633</a>. </li> </ul> <ul> <li> Sergio Correia, Paulo Guimarães, Thomas Zylkin. Fast Poisson estimation with high-dimensional fixed effects. The Stata Journal. 2020;20(1):95-115. doi:10.1177/1536867X20909691 </li> </ul>As BibTex
@Misc{ExistenceGLM,
Author = {Correia, Sergio and Guimar{\~a}es, Paulo and Zylkin, Thomas},
Title = {Verifying the existence of maximum likelihood estimates for generalized linear models},
Year = {2019},
Eprint = {arXiv:1903.01633},
}
@article{ppmlhdfe,
Author = {Correia, Sergio and Guimar{\~a}es, Paulo and Zylkin, Thomas},
Title ={{Fast Poisson estimation with high-dimensional fixed effects}},
Journal = {The Stata Journal},
Volume = {20},
Number = {1},
Pages = {95-115},
Year = {2020},
DOI = {10.1177/1536867X20909691},
URL = {https://doi.org/10.1177/1536867X20909691},
eprint = {https://doi.org/10.1177/1536867X20909691}
}
References
Quick information on the command can be glanced from the help file.
For detailed information:
- The ppmlhdfe paper explains the command in depth, provides examples, etc.
- The paper on statistical separation discusses the crucial step of solving the separation issue, that can otherwise lead to incorrect convergence (or no convergence) in Poisson and other GLM models.
For introductory guides on separation, and on how ppmlhdfe
internally address it, see the following documents:
- Separation primer: a quick practical introduction to separation in Poisson models.
- Separation benchmarks: shows how separation affects all common statistical packages.
- Undocumented options: this pages briefly lists otherwise undocumented options of
ppmlhdfe
, which might be useful for advanced users.
Installation
ppmlhdfe
requires the latest versions of ftools
and reghdfe
.
To install stable versions from SSC:
cap ado uninstall ftools
cap ado uninstall reghdfe
cap ado uninstall ppmlhdfe
ssc install ftools
ssc install reghdfe
ssc install ppmlhdfe
clear all
ftools, compile
reghdfe, compile
* Test program
sysuse auto, clear
reghdfe price weight, a(turn)
ppmlhdfe price weight, a(turn)
To install the latest versions from Github:
* Install ftools
cap ado uninstall ftools
net install ftools, from("https://raw.githubusercontent.com/sergiocorreia/ftools/master/src/")
* Install reghdfe
cap ado uninstall reghdfe
net install reghdfe, from("https://raw.githubusercontent.com/sergiocorreia/reghdfe/master/src/")
* Install ppmlhdfe
cap ado uninstall ppmlhdfe
net install ppmlhdfe, from("https://raw.githubusercontent.com/sergiocorreia/ppmlhdfe/master/src/")
* Create compiled files
ftools, compile
reghdfe, compile
* Check versions
ppmlhdfe, version
* Clear programs already in memory
program drop _all
* Test program
sysuse auto, clear
reghdfe price weight, a(turn)
ppmlhdfe price weight, a(turn)