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.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add DAAF-Contribution-Community/daaf --skill fixest --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fixest?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/daaf-contribution-community-fixest)More formats (shields.io, HTML) on the badges page.
---
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
1. **New to fixest?** Start with `quickstart.md` then `fixed-effects.md`
2. **Running DiD?** Read `quickstart.md`, then `did.md`
3. **Need IV?** Read `quickstart.md`, then `iv.md`
4. **Making tables?** Check `reporting.md`
5. **Non-OLS models?** Read `models.md`
6. **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:**
1. Write regression code to `scripts/stage8_analysis/{step}_{task-name}.R`
2. Execute via Bash with automatic output capture wrapper script
3. Validation results get automatically embedded in scripts as comments
4. 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
```r
library(fixest)
library(arrow) # For parquet I/O (DAAF convention)
```
### 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
```r
fit <- feols(y ~ x1 + x2 | fe, data = df)
summary(fit) # Print results
summary(fit, vcov = "hetero") # Re-estimate with robust SEs
summary(fit, vcov = ~state) # Clustered SEs
coef(fit) # Named vector of coefficients
se(fit) # Standard errors
confint(fit) # Confidence intervals
predict(fit) # Fitted values
resid(fit) # Residuals
fixef(fit) # List of FE estimates
r2(fit, type = "r2") # R-squared
r2(fit, type = "wr2") # Within R-squared
fitstat(fit, type = "ivf") # First-stage F (IV only)
```
### Reporting
```r
etable(fit1, fit2, fit3) # Console regression table
etable(fit1, fit2, tex = TRUE) # LaTeX output
coefplot(fit1, fit2) # Coefficient plot
iplot(fit) # Event study / interaction plot
```
## 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` |
| Parallel trends | `./references/did.md` |
| etable | `./references/reporting.md` |
| coefplot | `./references/reporting.md` |
| iplot | `./references/reporting.md` |
| LaTeX output | `./references/reporting.md` |
| Poisson (fepois) | `./references/models.md` |
| GLM with FE (feglm) | `./references/models.md` |
| Negative binomial (fenegbin) | `./references/models.md` |
| Nonlinear (feNmlm) | `./references/models.md` |
| Singleton observations | `./references/gotchas.md` |
| Poisson separation | `./references/gotchas.md` |
| Formula parsing pitfalls | `./references/gotchas.md` |
| SE default changes | `./references/gotchas.md` |
| pyfixest vs fixest differences | `./references/gotchas.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`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!