Estoy «usando lfe
y fixest
paquetes para ejecutar regresiones con efectos fijos de alta dimensión. Para estas regresiones, me gustaría agrupar los errores estándar por varias dimensiones (por ejemplo, producto, destino y tiempo). Sin embargo, estoy confundido sobre la sintaxis y las diferencias entre los comandos felm
y feols
. ¿Sería equivalente la agrupación en los siguientes dos modelos?
EDITAR: Ejecuté los dos modelos y descubrí que m2 tiene errores estándar más grandes que m1.
m1 <- felm(y ~ x1+ x2 | fe1 + fe2|0|product + destination + time, data=df) #with lfe package summary(m1) m2 <- feols(y ~ x1+ x2 | fe1 + fe2, data=df) #with fixest package summary(m2, cluster=~product + destination + time)
Comentarios
- ¿Quizás probarlo y verlo? Si obtiene resultados diferentes, edítelo en su pregunta.
Respuesta
En realidad, no hay una única forma de calcular los errores estándar. La forma en que se calculan en fixest
y cómo se comparan con lfe
se explican en este viñeta .
También hubo un par de errores ( menores ) en los SE en fixest
versión < 0.6.0 haciendo que los SE se vean ligeramente diferentes.
Aquí «una comparación relacionada con su ejemplo con datos de juguetes:
library(fixest) ; library(lfe) data(trade) est_felm = felm(log(Euros) ~ log(dist_km) | Origin + Destination | 0 | Origin + Destination + Year, trade) est_feols = feols(log(Euros) ~ log(dist_km) | Origin + Destination, trade) # Same SEs but different p-values coeftable(est_felm) #> Estimate Cluster s.e. t value Pr(>|t|) #> log(dist_km) -2.072132 0.1516212 -13.66651 2.525297e-07 coeftable(est_feols, cluster = ~ Origin + Destination + Year) #> Estimate Std. Error t value Pr(>|t|) #> log(dist_km) -2.072132 0.1516212 -13.66651 2.024366e-42 # Same SEs and p-values (t.df is explained in the vignette) coeftable(est_feols, cluster = ~ Origin + Destination + Year, dof = dof(t.df = "min")) #> Estimate Std. Error t value Pr(>|t|) #> log(dist_km) -2.072132 0.1516212 -13.66651 2.525297e-07