Learn R Programming

lfe

The goal of lfe is to speed up the estimation of linear models with large fixed effects. It includes support for instrumental variables, conditional F statistics for weak instruments, robust and multi-way clustered standard errors, as well as limited mobility bias correction. See Gaure (2013) doi:10.1016/j.csda.2013.03.024 and Gaure 2014 doi:10.1002/sta4.68.

Installation

You can install the released version of lfe from CRAN with:

install.packages("lfe")

You can install the development version of lfe like so:

remotes::install_github("MatthieuStigler/lfe")

Example

This is a basic example which shows you the speed improvement over base R for fixed effects estimation.

library(lfe) # fixed effects estimation
library(tradepolicy) # intl trade data
library(dplyr) # data cleaning/transforming

training_data <- agtpa_applications %>%
  mutate(
    log_trade = log(trade),
    log_dist = log(dist),
    exp_year = paste(exporter, year, sep = "_"),
    imp_year = paste(importer, year, sep = "_")
  ) %>%
  filter(trade > 0, exporter != importer, year %in% seq(1986, 2006, 4)) %>%
  select(year, log_trade, log_dist, cntg, lang, clny, rta, exp_year, imp_year)

# note the difference with the | operator to indicate the FEs
# this is just an example, here I am not estimating a PPML model or anything
# in the state of the art
fml1 <- 0 + log_trade ~
  log_dist + cntg + lang + clny + rta + exp_year + imp_year # base

fml2 <- log_trade ~
  log_dist + cntg + lang + clny + rta | exp_year + imp_year # lfe

lm(fml1, data = training_data)

felm(fml2, data = training_data)

Testing

For a complete test with devtools::check(), you need to run sudo apt-get install devtools or similar before. The package is written in C, in the future I shall try to rewrite it in C++ to ease long term maintenance.

The package also needs additional testing. At the present time,the tests it cover around 30% of the written lines.

Copy Link

Version

Install

install.packages('lfe')

Monthly Downloads

10,246

Version

3.1.1

License

Apache License (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Mauricio Vargas

Last Published

February 11th, 2025

Functions in lfe (3.1.1)

kaczmarz

Solve a linear system defined by factors
is.estimable

Verify estimability of function
makeDmatrix

Make sparse matrix of dummies from factor list
getfe

Retrieve the group fixed effects
felm

Fit a linear model with multiple group fixed effects
mctrace

Compute trace of a large matrix by sample means
lfe-package

Overview. Linear Group Fixed Effects
fepois

Fit a Poisson model with multiple group fixed effects
nlexpect

Compute expectation of a function of the coefficients.
sargan

Compute Sargan's S
fevcov

Compute limited mobility bias corrected covariance matrix between fixed effects
fixedse

Compute standard errors for fixed effects
summary.felm

Summarize felm model fits
varvars

Compute the variance of the fixed effect variance estimate
waldtest

Compute Wald test for joint restrictions on coefficients
condfstat

Compute conditional F statistic for weak instruments in an IV-estimation with multiple endogenous variables
diammatrix

Find diameters of mobility graphs
btrap

Bootstrap standard errors for the group fixed effects
compfactor

Find the connected components
..oldfelm

Fit a linear model with multiple group fixed effects (old interface)
chainsubset

Chain subset conditions
bccorr

Compute limited mobility bias corrected correlation between fixed effects
efactory

Create estimable function
cgsolve

Solve a symmetric linear system with the conjugate gradient method
demeanlist

Centre vectors on multiple groups