estimatr
estimatr copied to clipboard
Add Waldtests as supported external method
lmtest::waldtest()
runs with lm_robust
fits, but worringly, gives different answers from lm
fits
library(fabricatr)
library(randomizr)
library(estimatr)
library(sandwich)
library(lmtest)
dat <-
fabricate(
N = 1000,
X1 = rnorm(N),
X2 = rnorm(N),
Z = complete_ra(N),
Y = Z + X1 + X2
)
fit_1 <- lm_robust(Y ~ Z + X1 + X2, data = dat)
fit_2 <- lm_robust(Y ~ Z + X1 + X2 + Z*X1 + Z*X2, data = dat)
waldtest(fit_1, fit_2, test = "F")
fit_3 <- lm(Y ~ Z + X1 + X2, data = dat)
fit_4 <- lm(Y ~ Z + X1 + X2 + Z*X1 + Z*X2, data = dat)
# doesn't match
waldtest(fit_3, fit_4, test = "F", vcov = vcovHC(fit_4, type = "HC2"))
# this either
waldtest(fit_3, fit_4, test = "F")
Whoopsie, forgot an error term (thanks @nfultz !):
dat <-
fabricate(
N = 1000,
X1 = rnorm(N),
X2 = rnorm(N),
Z = complete_ra(N),
Y = Z + X1 + X2 + rnorm(N)
)
fit_1 <- lm_robust(Y ~ Z + X1 + X2, data = dat)
fit_2 <- lm_robust(Y ~ Z + X1 + X2 + Z*X1 + Z*X2, data = dat)
waldtest(fit_1, fit_2, test = "F")
fit_3 <- lm(Y ~ Z + X1 + X2, data = dat)
fit_4 <- lm(Y ~ Z + X1 + X2 + Z*X1 + Z*X2, data = dat)
# works great!
waldtest(fit_3, fit_4, test = "F", vcov = vcovHC(fit_4, type = "HC2"))
We can redeem this issue, see the title change