inst/doc/CausalImpact.R

## ---- eval=FALSE--------------------------------------------------------------
#  install.packages("CausalImpact")

## ---- message=FALSE, warning=FALSE--------------------------------------------
library(CausalImpact)

## -----------------------------------------------------------------------------
set.seed(1)
x1 <- 100 + arima.sim(model = list(ar = 0.999), n = 100)
y <- 1.2 * x1 + rnorm(100)
y[71:100] <- y[71:100] + 10
data <- cbind(y, x1)

## -----------------------------------------------------------------------------
dim(data)
head(data)

## ---- eval=FALSE--------------------------------------------------------------
#  matplot(data, type = "l")

## ---- echo=FALSE, fig.width=5, fig.height=2.8---------------------------------
par(cex = 0.85, oma = c(0, 0, 0, 0), mar = c(3, 2, 1, 1))
matplot(data, type = "l", lwd = 1.5)

## -----------------------------------------------------------------------------
pre.period <- c(1, 70)
post.period <- c(71, 100)

## -----------------------------------------------------------------------------
impact <- CausalImpact(data, pre.period, post.period)

## ---- fig.width=8, fig.height=6, eval=FALSE-----------------------------------
#  plot(impact)

## ---- include=FALSE-----------------------------------------------------------
library(ggplot2)

## ---- echo=FALSE--------------------------------------------------------------
q <- plot(impact) + theme_bw(base_size = 11)
suppressWarnings(plot(q))

## -----------------------------------------------------------------------------
time.points <- seq.Date(as.Date("2014-01-01"), by = 1, length.out = 100)
data <- zoo(cbind(y, x1), time.points)
head(data)

## -----------------------------------------------------------------------------
pre.period <- as.Date(c("2014-01-01", "2014-03-11"))
post.period <- as.Date(c("2014-03-12", "2014-04-10"))

## ---- fig.width=8, fig.height=6, eval=FALSE-----------------------------------
#  impact <- CausalImpact(data, pre.period, post.period)
#  plot(impact)

## ---- echo=FALSE--------------------------------------------------------------
impact <- CausalImpact(data, pre.period, post.period)
q <- plot(impact) + theme_bw(base_size = 11)
suppressWarnings(plot(q))

## -----------------------------------------------------------------------------
summary(impact)

## ---- eval=FALSE--------------------------------------------------------------
#  summary(impact, "report")

## ---- eval=FALSE--------------------------------------------------------------
#  impact$summary

## ---- eval=FALSE--------------------------------------------------------------
#  impact <- CausalImpact(..., model.args = list(niter = 5000, nseasons = 7))

## -----------------------------------------------------------------------------
post.period <- c(71, 100)
post.period.response <- y[post.period[1] : post.period[2]]
y[post.period[1] : post.period[2]] <- NA

## ---- echo=FALSE--------------------------------------------------------------
ss <- AddLocalLevel(list(), y)
bsts.model <- bsts(y ~ x1, ss, niter = 1000, ping = 0)

## ---- eval=FALSE--------------------------------------------------------------
#  ss <- AddLocalLevel(list(), y)
#  bsts.model <- bsts(y ~ x1, ss, niter = 1000)

## -----------------------------------------------------------------------------
impact <- CausalImpact(bsts.model = bsts.model,
                       post.period.response = post.period.response)

## ---- eval=FALSE--------------------------------------------------------------
#  plot(impact)
#  summary(impact)
#  summary(impact, "report")

## ---- eval=FALSE--------------------------------------------------------------
#  plot(impact, c("original", "pointwise"))

## ---- eval=FALSE--------------------------------------------------------------
#  library(ggplot2)
#  impact.plot <- plot(impact) + theme_bw(base_size = 20)
#  plot(impact.plot)

## ---- eval=FALSE--------------------------------------------------------------
#  impact <- CausalImpact(data, pre.period, post.period, alpha = 0.1)

## ---- eval=FALSE--------------------------------------------------------------
#  plot(impact$model$bsts.model, "coefficients")

## ---- eval=FALSE--------------------------------------------------------------
#  ?BoomSpikeSlab::PlotMarginalInclusionProbabilities

## ---- include=FALSE-----------------------------------------------------------
# Get authors and copyright information.
description <- packageDescription("CausalImpact")
authors.markdown <- paste(format(as.person(description$Author),
                                 include = c("given", "family")),
                          sep = ", ")
copyright.markdown <- gsub("\\(C\\)", "\u00a9", description$Copyright)

Try the CausalImpact package in your browser

Any scripts or data that you put into this service are public.

CausalImpact documentation built on Nov. 10, 2022, 5:45 p.m.