context("Test clustering comparisons of https://github.com/sgaure/lfe/issues/1")
test_that("two-level clustering works", {
# Does this regression make sense? Definitely not!
cgm_est <- stats::coef(summary(felm(
Ozone ~ Solar.R + Wind | Day | 0 | Day + Month, data = airquality
)))
# Results from running the above with
# https://github.com/grantmcdermott/lfe/tree/66f9c0fab184b366ed60b9732475b58a6acee5dd
cgm_expected <- matrix(c(
# Coef Cluster SE t-stat p-value
0.09926081, 0.02835782, 3.500297, 0.024889465,
-5.57693782, 1.03966448, -5.364171, 0.005830014
),
byrow=TRUE, nrow=2,
dimnames=list(
c("Solar.R", "Wind"), # rows
c("Estimate", "Cluster s.e.", "t value", "Pr(>|t|)") # columns
)
)
expect_equal(cgm_est, cgm_expected, tolerance = 0.0001, scale = 1)
reghdfe_stats <- stats::coef(summary(felm(
Ozone ~ Solar.R + Wind | Day | 0 | Day + Month,
data = airquality,
cmethod = "reghdfe"
)))
# Results from running the above in Stata's reghdfe
# To export:
# names(airquality) <- gsub('.', '_', names(airquality), fixed=TRUE)
# haven::write_dta(data=airquality, path="airquality.dta", version=14)
# In stata:
# use airquality, clear
# reghdfe Ozone Solar_R Wind , absorb(Day) cluster(Month Day)
# regsave, tstat pval
# list
# +-----------------------------------------------------------------------+
# | var coef stderr tstat pval N r2 |
# |-----------------------------------------------------------------------|
# 1. | Solar_R .0992608 .0285888 3.47202 .0255366 109 .6644437 |
# 2. | Wind -5.576938 1.053322 -5.29462 .0061094 109 .6644437 |
# 3. | _cons 78.6738 10.32352 7.620831 .0015917 109 .6644437 |
# +-----------------------------------------------------------------------+
# Results above are with Stata 15.1 and reghdfe 5.6.8 03mar2018
reghdfe_expected <- matrix(c(
# Coef Cluster SE t-stat p-value
0.0992608, 0.0285888, 3.47202, 0.0255366,
-5.576938, 1.053322, -5.29462, 0.0061094
),
byrow=TRUE, nrow=2,
dimnames=list(
c("Solar.R", "Wind"), # rows
c("Estimate", "Cluster s.e.", "t value", "Pr(>|t|)") # columns
)
)
expect_equal(reghdfe_stats, reghdfe_expected,tolerance = 0.001, scale = 1)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.