User Guide¶
PanelBox provides 70+ econometric models across 11 families, covering virtually every panel data method used in applied research. Each guide below introduces the model family, lists available estimators, and provides quick-start code examples.
All models follow a consistent API: define a formula, pass your data with entity and time identifiers, and call .fit(). Results objects provide .summary(), coefficient tables, diagnostic tests, and export to HTML/LaTeX.
-
Pooled OLS, Fixed Effects, Random Effects, Between, First Difference
-
Arellano-Bond, Blundell-Bond, CUE-GMM, Bias-Corrected GMM
-
SAR, SEM, SDM, Dynamic Spatial, General Nesting Spatial
-
SFA, Four-Component (unique in Python), TFP Decomposition
-
Pooled, Fixed Effects, Canay, Location-Scale, Dynamic, QTE
-
VAR, VECM, IRF, FEVD, Granger Causality, Forecast
-
Logit, Probit, FE Logit, RE Probit, Ordered, Multinomial, Conditional
-
Poisson (Pooled/FE/RE/QML), NegBin, PPML, Zero-Inflated
-
Tobit (Pooled/RE), Honore Trimmed, Panel Heckman
-
Panel IV / 2SLS with first-stage diagnostics
Choosing a Model Family¶
| Your Data | Recommended Family | Guide |
|---|---|---|
| Continuous outcome, no dynamics | Static Models | Pooled OLS, FE, RE |
| Lagged dependent variable | Dynamic GMM | Arellano-Bond, System GMM |
| Spatial dependence across units | Spatial | SAR, SEM, SDM |
| Efficiency / productivity analysis | Stochastic Frontier | SFA, Four-Component |
| Heterogeneous effects across distribution | Quantile | FE Quantile, Canay |
| Multiple interdependent outcomes | Panel VAR | VAR, VECM, IRF |
| Binary / ordered / multinomial outcome | Discrete Choice | Logit, Probit, Ordered |
| Count outcome (0, 1, 2, ...) | Count Data | Poisson, NegBin, PPML |
| Censored / truncated / selected sample | Censored & Selection | Tobit, Heckman |
| Endogenous regressors | Instrumental Variables | Panel 2SLS |
Quick Example¶
from panelbox import FixedEffects
from panelbox.datasets import load_grunfeld
data = load_grunfeld()
model = FixedEffects("invest ~ value + capital", data, "firm", "year")
results = model.fit(cov_type="clustered")
print(results.summary())
See Also¶
- Getting Started -- Installation and first steps
- Tutorials -- Interactive notebooks with Google Colab
- Inference & Standard Errors -- Choosing the right standard errors
- Diagnostics & Validation -- Testing model assumptions