I ”m med lfe
och fixest
paket för att köra regressioner med högdimensionella fasta effekter. För dessa regressioner vill jag gruppera standardfelen med flera dimensioner (t.ex. produkt, destination och tid). Jag är dock förvirrad om syntaxen och hur den skiljer sig mellan kommandona felm
och feols
. Skulle klustret i följande två modeller vara ekvivalenta?
EDIT: Jag körde de två modellerna och fann att m2 har större standardfel än 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)
Kommentarer
- Kanske prova och se? Om du får olika resultat redigerar du det till din fråga.
Svar
Det finns faktiskt inget enda sätt att beräkna standardfelen. Hur de beräknas i fixest
och hur de jämför med lfe
förklaras i detta vinjett .
Det fanns också ett par ( mindre ) buggar i SE i fixest
version < 0.6.0 som gör att SE ser lite annorlunda ut.
Här är en jämförelse relaterad till ditt exempel med leksaksdata:
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