Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
message = FALSE,
fig.width = 7,
fig.height = 4,
dpi = 96
)
## ----setup--------------------------------------------------------------------
library(coresynth)
## ----dgp----------------------------------------------------------------------
set.seed(42)
N <- 10; TT <- 20; T_pre <- 10
f <- cumsum(rnorm(TT, 0, 0.5)) # common factor
lam <- rnorm(N, 1, 0.3) # unit loadings
dat <- expand.grid(time = seq_len(TT), id = paste0("u", seq_len(N)))
dat$y <- as.vector(outer(f, lam)) + rnorm(nrow(dat), 0, 0.3)
dat$d <- as.integer(dat$id == "u1" & dat$time > T_pre)
dat$y[dat$d == 1] <- dat$y[dat$d == 1] + 2.0 # inject the treatment effect
head(dat)
## ----fit-one------------------------------------------------------------------
fit <- scm_fit(y ~ d | id + time, data = dat, method = "scm")
fit
## ----estimate-----------------------------------------------------------------
fit$estimate
## ----compare------------------------------------------------------------------
methods <- c("scm", "sdid", "gsc", "mc", "tasc", "si")
fits <- lapply(methods, function(m) scm_fit(y ~ d | id + time, data = dat, method = m))
names(fits) <- methods
data.frame(
method = methods,
estimate = round(sapply(fits, `[[`, "estimate"), 3)
)
## ----plot-trend---------------------------------------------------------------
plot(fits$sdid, type = "trend") # observed vs. synthetic
## ----plot-gap-----------------------------------------------------------------
plot(fits$scm, type = "gap") # treatment effect over time
## ----plot-weights-------------------------------------------------------------
plot(fits$scm, type = "weights") # donor weights
## ----broom--------------------------------------------------------------------
library(broom)
tidy(fits$scm) # donor weights as a data frame
glance(fits$scm) # one-row model summary
## ----accessors----------------------------------------------------------------
head(treated_outcomes(fits$scm)) # observed treated series
head(synthetic_outcomes(fits$scm)) # estimated counterfactual
dim(donor_outcomes(fits$scm)) # T x N_co donor outcome matrix
## ----export, eval = FALSE-----------------------------------------------------
# export_json(fits$scm, file = "scm_result.json")
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.