Nothing
## ---- message = FALSE, warning = FALSE------------------------------------------------------------
library(clubSandwich)
data(MortalityRates)
# subset for deaths in motor vehicle accidents, 1970-1983
MV_deaths <- subset(MortalityRates, cause=="Motor Vehicle" &
year <= 1983 & !is.na(beertaxa))
# fit by OLS
lm_unweighted <- lm(mrate ~ 0 + legal + beertaxa +
factor(state) + factor(year), data = MV_deaths)
## -------------------------------------------------------------------------------------------------
coef_test(lm_unweighted, vcov = "CR1",
cluster = MV_deaths$state, test = "naive-t")[1:2,]
## -------------------------------------------------------------------------------------------------
coef_test(lm_unweighted, vcov = "CR2",
cluster = MV_deaths$state, test = "Satterthwaite")[1:2,]
## ---- echo = FALSE, results = "asis"--------------------------------------------------------------
plm_available <- requireNamespace("plm", quietly = TRUE)
if (!plm_available) cat("## Building the remainder of the vignette requires the plm package. Please install it. {-}")
## ---- message = FALSE, eval = plm_available-------------------------------------------------------
library(plm)
plm_unweighted <- plm(mrate ~ legal + beertaxa, data = MV_deaths,
effect = "twoways", index = c("state","year"))
coef_test(plm_unweighted, vcov = "CR1", cluster = "individual", test = "naive-t")
coef_test(plm_unweighted, vcov = "CR2", cluster = "individual", test = "Satterthwaite")
## -------------------------------------------------------------------------------------------------
lm_weighted <- lm(mrate ~ 0 + legal + beertaxa + factor(state) + factor(year),
weights = pop, data = MV_deaths)
coef_test(lm_weighted, vcov = "CR1",
cluster = MV_deaths$state, test = "naive-t")[1:2,]
coef_test(lm_weighted, vcov = "CR2",
cluster = MV_deaths$state, test = "Satterthwaite")[1:2,]
## -------------------------------------------------------------------------------------------------
coef_test(lm_weighted, vcov = "CR2",
cluster = MV_deaths$state, target = 1 / MV_deaths$pop,
test = "Satterthwaite")[1:2,]
## ---- eval = plm_available------------------------------------------------------------------------
plm_random <- plm(mrate ~ 0 + legal + beertaxa + year, data = MV_deaths,
effect = "individual", index = c("state","year"),
model = "random")
coef_test(plm_random, vcov = "CR1", test = "naive-t")[1:2,]
coef_test(plm_random, vcov = "CR2", test = "Satterthwaite")[1:2,]
## ---- eval = plm_available------------------------------------------------------------------------
MV_deaths <- within(MV_deaths, {
legal_cent <- legal - tapply(legal, state, mean)[factor(state)]
beer_cent <- beertaxa - tapply(beertaxa, state, mean)[factor(state)]
})
plm_Hausman <- plm(mrate ~ 0 + legal + beertaxa + legal_cent + beer_cent + factor(year),
data = MV_deaths,
effect = "individual", index = c("state","year"),
model = "random")
coef_test(plm_Hausman, vcov = "CR2", test = "Satterthwaite")[1:4,]
## ---- eval = plm_available------------------------------------------------------------------------
Wald_test(plm_Hausman,
constraints = constrain_zero(c("legal_cent","beer_cent")),
vcov = "CR1", test = "chi-sq")
## ---- eval = plm_available------------------------------------------------------------------------
Wald_test(plm_Hausman,
constraints = constrain_zero(c("legal_cent","beer_cent")),
vcov = "CR2")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.