Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ---- echo=FALSE, results="hide", warning=FALSE, message=FALSE----------------
library(did)
# Source the currently version of the did package (based on our Dropbox)
#fldr <- here::here("R/")
#sapply(paste0(fldr,list.files(fldr)), source)
# Source simulation designs
#source(here::here("vignettes/setup_sims.R"))
## ---- echo=FALSE--------------------------------------------------------------
time.periods <- 4
sp <- reset.sim()
sp$te <- 0
## ---- message = FALSE, warning = FALSE----------------------------------------
# set seed so everything is reproducible
set.seed(1814)
# generate dataset with 4 time periods
time.periods <- 4
# add dynamic effects
sp$te.e <- 1:time.periods
# generate data set with these parameters
# here, we dropped all units who are treated in time period 1 as they do not help us recover ATT(g,t)'s.
dta <- build_sim_dataset(sp)
# How many observations remained after dropping the ``always-treated'' units
nrow(dta)
#This is what the data looks like
head(dta)
## -----------------------------------------------------------------------------
# estimate group-time average treatment effects using att_gt method
example_attgt <- att_gt(yname = "Y",
tname = "period",
idname = "id",
gname = "G",
xformla = ~X,
data = dta
)
# summarize the results
summary(example_attgt)
## ---- fig.width=8,fig.height=10, fig.align='center', out.width="90%", dpi = 200----
# plot the results
ggdid(example_attgt)
## -----------------------------------------------------------------------------
agg.simple <- aggte(example_attgt, type = "simple")
summary(agg.simple)
## ---- fig.width=8,fig.height=5, fig.align='center', out.width="90%", dpi = 200----
agg.es <- aggte(example_attgt, type = "dynamic")
summary(agg.es)
ggdid(agg.es)
## ---- fig.width=6, fig.align='center', out.width="90%", dpi = 200-------------
agg.gs <- aggte(example_attgt, type = "group")
summary(agg.gs)
ggdid(agg.gs)
## ---- fig.width=8, fig.height=5, fig.align='center', out.width="90%", dpi = 200----
agg.ct <- aggte(example_attgt, type = "calendar")
summary(agg.ct)
ggdid(agg.ct)
## ----eval=FALSE---------------------------------------------------------------
# example_attgt_altcontrol <- att_gt(yname = "Y",
# tname = "period",
# idname = "id",
# gname = "G",
# xformla = ~X,
# data = dta,
# control_group = "notyettreated"
# )
# summary(example_attgt_altcontrol)
## ----eval=FALSE---------------------------------------------------------------
# example_attgt_reg <- att_gt(yname = "Y",
# tname = "period",
# idname = "id",
# gname = "G",
# xformla = ~X,
# data = data,
# est_method = "reg"
# )
# summary(example_attgt_reg)
## -----------------------------------------------------------------------------
data(mpdta)
## -----------------------------------------------------------------------------
head(mpdta)
## ---- fig.width=8,fig.height=10, fig.align='center', out.width="90%", dpi = 200----
# estimate group-time average treatment effects without covariates
mw.attgt <- att_gt(yname = "lemp",
gname = "first.treat",
idname = "countyreal",
tname = "year",
xformla = ~1,
data = mpdta,
)
# summarize the results
summary(mw.attgt)
# plot the results
# set ylim so that all plots have the same scale along y-axis
ggdid(mw.attgt, ylim = c(-.3,.3))
## ---- fig.width=8,fig.height=5, fig.align='center', out.width="90%", dpi = 200----
# aggregate the group-time average treatment effects
mw.dyn <- aggte(mw.attgt, type = "dynamic")
summary(mw.dyn)
ggdid(mw.dyn, ylim = c(-.3,.3))
## ---- fig.width=8,fig.height=5, fig.align='center', out.width="90%", dpi = 200----
mw.dyn.balance <- aggte(mw.attgt, type = "dynamic", balance_e=1)
summary(mw.dyn.balance)
ggdid(mw.dyn.balance, ylim = c(-.3,.3))
## ----eval=FALSE---------------------------------------------------------------
# mw.attgt.X <- att_gt(yname = "lemp",
# gname = "first.treat",
# idname = "countyreal",
# tname = "year",
# xformla = ~lpop,
# data = mpdta,
# )
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.