| name | fixest |
| description | Fast high-dimensional fixed effects in R: feols/fepois/feglm/fenegbin with
multi-way FE; IV estimation; DiD (TWFE, Sun-Abraham via sunab); clustered/
heteroskedasticity-robust SEs; etable/coefplot/iplot for reporting. Use when
execution language is R. Python equivalent: pyfixest. For panel RE/between
use plm; for GLM without FE use r-stats.
|
| autoload | never |
| metadata | {"audience":"research-coders","domain":"r-library","library-version":"fixest 0.14.0","skill-last-updated":"2026-05-08","tags":["r","econometrics","fixed-effects","did","iv"]} |
fixest Skill
fixest: the canonical R package for fast high-dimensional fixed effects estimation.
Covers OLS (feols), Poisson (fepois), GLM (feglm, including logit/probit with FE),
negative binomial (fenegbin), and nonlinear models (feNmlm) with multi-way absorbed
fixed effects. Supports instrumental variables via three-part formula; difference-in-
differences via TWFE and Sun-Abraham (sunab); standard errors including clustered,
heteroskedasticity-robust, Newey-West, Driscoll-Kraay, and Conley spatial; and
publication output via etable, coefplot, and iplot. Use when execution language is R
and the analysis involves fixed effects regression, IV, DiD, or publication-quality
regression tables. Python equivalent: pyfixest (which is a port of this package).
For panel random/between effects, use plm. For GLM/time series without fixed effects,
use base R stats or dedicated packages.
Comprehensive skill for fixed effects regression, instrumental variables, and
difference-in-differences estimation with the fixest R package. Use decision trees
below to find the right guidance, then load detailed references.
What is fixest?
fixest (Berge, 2018) is the most widely-used R package for fast fixed effects
estimation in applied economics and quantitative social science:
- Fast: Multi-way FE demeaning via alternating projections (C++ backend)
- Concise formula syntax: Fixed effects after
|, IV after second |,
multi-estimation via sw()/csw()/csw0()
- Full GLM support with FE: feglm handles logit, probit, and other GLMs
with absorbed high-dimensional FE (unlike pyfixest, which lacks this)
- Sun-Abraham DiD: Built-in
sunab() formula function for staggered DiD
- Flexible inference: Switch SE types post-estimation; one-sided formulas
for clustering (
vcov = ~group)
- Publication output:
etable() for regression tables, coefplot() and
iplot() for coefficient and event study visualization
Version Notes
This skill targets fixest 0.14.0 (R 4.5.3). fixest 0.13 introduced the
breaking changes that pyfixest adopted in 0.40.0 (default SE changed to IID,
singleton removal by default, ssc argument renames); DAAF now ships pyfixest
0.60.0, which keeps those fixest-0.13-aligned defaults. fixest 0.14.0 is a stable
release building on those defaults.
Key defaults in 0.14.0:
- Default standard errors:
"iid" (not cluster-by-first-FE as in pre-0.13)
- Singleton removal: on by default (
fixef.rm = "perfect_fit")
ssc() arguments (canonical 0.14 names): K.adj, K.fixef, K.exact,
G.adj, G.df, t.df — the pre-0.13 names (adj, fixef.K,
cluster.adj, cluster.df) still work as deprecated back-compat aliases
How to Use This Skill
Reference File Structure
Each topic in ./references/ contains focused documentation:
| File | Purpose | When to Read |
|---|
quickstart.md | feols() basics, formula syntax, multi-estimation (csw, sw, sw0), data requirements | Starting with fixest |
fixed-effects.md | Multi-way FE syntax, FE interactions (^), varying slopes, FE recovery via fixef() | FE models and specification |
standard-errors.md | Clustered SEs (vcov), HC robust, Conley spatial, Driscoll-Kraay, Newey-West, two-way clustering | Inference choices |
iv.md | IV three-part formula, first-stage diagnostics, weak instrument tests | IV/2SLS estimation |
did.md | TWFE with feols, sunab() for staggered DiD, event study plots via iplot() | DiD designs |
reporting.md | etable() for regression tables (LaTeX, data.frame), coefplot(), iplot(), fixef() for FE extraction | Presenting results |
models.md | fepois (Poisson), feglm (GLM with FE), fenegbin (negative binomial), feNmlm (nonlinear), model families | Non-OLS models |
gotchas.md | Singleton observations, separation in Poisson, formula parsing pitfalls, SE defaults, panel vs cross-section | Debugging issues |
Reading Order
- New to fixest? Start with
quickstart.md then fixed-effects.md
- Running DiD? Read
quickstart.md, then did.md
- Need IV? Read
quickstart.md, then iv.md
- Making tables? Check
reporting.md
- Non-OLS models? Read
models.md
- Coming from pyfixest? Read
quickstart.md then gotchas.md
The reference-file routing in this skill applies to advisory and brainstorming
turns as much as implementation. Recommending an SE choice, reviewing a DiD
plan, or answering a question that touches a routed topic calls for reading the
routed reference file just as much as writing code does — the reference files
carry curated caveats and environment-specific constraints (e.g., exact
fitstat type names, ssc() defaults) that this overview and general
knowledge lack.
Related Skills
| Skill | Relationship |
|---|
pyfixest | Python port of this package — near-identical formula syntax; residual gaps are GLM families beyond logit/probit/gaussian and fenegbin. Load when execution language is Python. |
data-scientist | Methodology guidance — load for "why and when" behind methods |
r-python-translation | Cross-language mappings for R fixest vs Python pyfixest and statsmodels |
plm | Random effects, between estimator, Hausman test — complements fixest when FE-only is insufficient |
r-stats | Base R glm(), lm() without FE — use when FE absorption is not needed |
gt | Publication-quality tables — use gt/modelsummary for formatted regression output (alternative to etable) |
Quick Decision Trees
"I need to run a regression"
What kind of regression?
├─ OLS with fixed effects → ./references/quickstart.md
├─ OLS without fixed effects → ./references/quickstart.md
├─ IV / 2SLS with FE → ./references/iv.md
├─ Poisson (count data) with FE → ./references/models.md
├─ Logit / Probit with FE → ./references/models.md (feglm)
├─ Negative binomial with FE → ./references/models.md (fenegbin)
├─ Multiple models at once → ./references/quickstart.md (sw/csw)
└─ Nonlinear custom model → ./references/models.md (feNmlm)
"I need difference-in-differences"
DiD design?
├─ Simple 2×2 DiD (one treatment date) → ./references/did.md
├─ Staggered treatment timing → ./references/did.md
│ ├─ Sun-Abraham saturated (sunab) → ./references/did.md
│ └─ TWFE (caution with heterogeneity) → ./references/did.md
├─ Event study plot → ./references/did.md + ./references/reporting.md
└─ Parallel trends assessment → ./references/did.md
"I need to choose standard errors"
What inference?
├─ Heteroskedasticity-robust (HC1) → ./references/standard-errors.md
├─ Clustered (one-way / two-way) → ./references/standard-errors.md
├─ Newey-West (HAC) → ./references/standard-errors.md
├─ Driscoll-Kraay (panel with cross-sect dependence) → ./references/standard-errors.md
├─ Conley spatial → ./references/standard-errors.md
└─ Small sample corrections (ssc) → ./references/standard-errors.md
"I need to present results"
Presenting results?
├─ Regression table (multiple models) → ./references/reporting.md
├─ Coefficient plot → ./references/reporting.md
├─ Event study plot → ./references/reporting.md
├─ LaTeX table output → ./references/reporting.md
└─ Extract fixed effects → ./references/reporting.md
"Something isn't working"
Having issues?
├─ Different results from old code → ./references/gotchas.md
├─ Singleton warnings → ./references/gotchas.md
├─ Poisson separation/convergence → ./references/gotchas.md
├─ Formula parsing errors → ./references/gotchas.md
├─ pyfixest vs fixest differences → ./references/gotchas.md
└─ Collinearity with FE → ./references/gotchas.md
File-First Execution in Research Workflows
Important: In DAAF research pipelines, fixest regressions are executed through
script files, not interactively. This ensures auditability and reproducibility.
The pattern:
- Write regression code to
scripts/stage8_analysis/{step}_{task-name}.R
- Execute via Bash with automatic output capture wrapper script
- Validation results get automatically embedded in scripts as comments
- If failed, create versioned copy for fixes
Closely read agent_reference/SCRIPT_EXECUTION_REFERENCE.md for the mandatory
file-first execution protocol covering complete code file writing, output capture,
and file versioning rules. All regression scripts must follow the Inline Audit
Trail (IAT) standard — see agent_reference/INLINE_AUDIT_TRAIL.md. For regression
code, document model specification choices (why this estimator, why this clustering
level, what identifying assumptions) with # INTENT:, # REASONING:, and
# ASSUMES: comments.
See:
agent_reference/WORKFLOW_PHASE4_ANALYSIS.md — Stage 8 (Analysis & Visualization)
agent_reference/INLINE_AUDIT_TRAIL.md — IAT documentation standard
The examples below show fixest syntax. In research workflows, wrap them in
scripts following the file-first pattern.
Quick Reference
Essential Setup
library(fixest)
library(arrow)
Core Estimation Functions
| Function | Purpose |
|---|
feols(y ~ x | fe, data) | OLS with fixed effects |
fepois(y ~ x | fe, data) | Poisson with fixed effects |
feglm(y ~ x | fe, data, family) | GLM (logit, probit, etc.) with fixed effects |
fenegbin(y ~ x | fe, data) | Negative binomial with fixed effects |
feNmlm(fml, data, family) | Nonlinear models with fixed effects |
Formula Syntax Quick Reference
| Pattern | Meaning | Example |
|---|
y ~ x1 + x2 | No FE | y ~ educ + exper |
y ~ x | fe1 + fe2 | With FE | y ~ educ | state + year |
y ~ x | fe | x_endo ~ z | FE + IV | y ~ exper | state | educ ~ college_prox |
i(factor, ref = val) | Categorical with ref | y ~ i(year, ref = 2000) | state |
sunab(cohort, period) | Sun-Abraham DiD | y ~ sunab(cohort, period) | id + period |
sw(x1, x2) | Stepwise alternatives | y ~ sw(educ, exper) | state |
csw0(x1, x2) | Cumulative stepwise | y ~ csw0(educ, exper) | state |
c(y1, y2) ~ x | Multiple outcomes | c(wage, hours) ~ educ | state |
Post-Estimation Essentials
fit <- feols(y ~ x1 + x2 | fe, data = df)
summary(fit)
summary(fit, vcov = "hetero")
summary(fit, vcov = ~state)
coef(fit)
se(fit)
confint(fit)
predict(fit)
resid(fit)
fixef(fit)
r2(fit, type = "r2")
r2(fit, type =
fitstatfit type
Reporting
etable(fit1, fit2, fit3)
etable(fit1, fit2, tex = TRUE)
coefplot(fit1, fit2)
iplot(fit)
Topic Index
| Topic | Reference File |
|---|
| First regression | ./references/quickstart.md |
| Formula syntax | ./references/quickstart.md |
| Multi-estimation (sw, csw, csw0) | ./references/quickstart.md |
| Multiple outcomes (c(y1,y2)) | ./references/quickstart.md |
| Data requirements | ./references/quickstart.md |
| Multi-way fixed effects | ./references/fixed-effects.md |
| FE interactions (^) | ./references/fixed-effects.md |
| Varying slopes | ./references/fixed-effects.md |
| FE recovery (fixef) | ./references/fixed-effects.md |
| Singleton removal | ./references/fixed-effects.md |
| Clustered SEs | ./references/standard-errors.md |
| HC robust SEs | ./references/standard-errors.md |
| Two-way clustering | ./references/standard-errors.md |
| Newey-West (NW) | ./references/standard-errors.md |
| Driscoll-Kraay (DK) | ./references/standard-errors.md |
| Conley spatial | ./references/standard-errors.md |
| Small sample corrections (ssc) | ./references/standard-errors.md |
| IV formula syntax | ./references/iv.md |
| First-stage diagnostics | ./references/iv.md |
| Weak instrument tests | ./references/iv.md |
| TWFE DiD | ./references/did.md |
| Sun-Abraham (sunab) | ./references/did.md |
| Event study plots | ./references/did.md |
Citation
When this library is used as a primary analytical tool, include in the report's
Software & Tools references:
Berge, L. (2018). "Efficient estimation of maximum likelihood models with
multiple fixed-effects: the R package FENmlm." CREA Discussion Paper 2018-13.
Updated as: Berge, L. (2026). fixest: Fast Fixed-Effects Estimations
[Computer software]. https://CRAN.R-project.org/package=fixest
Cite when: fixest is used for regression estimation (OLS, Poisson, GLM, IV)
or difference-in-differences analysis.
Do not cite when: Only loaded but no estimation performed.
For the arXiv methods paper:
Berge, L., Butts, K., & McDermott, G. (2026). "Fast and User-Friendly
Econometrics Estimations: The R Package fixest." arXiv:2601.21749.
For method-specific citations (e.g., Sun-Abraham, individual DiD estimators),
consult the reference files in this skill and agent_reference/CITATION_REFERENCE.md.