## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4)

## -----------------------------------------------------------------------------
library(foresightr)
path <- system.file("extdata", "piaui_revenue.csv", package = "foresightr")
data <- read.csv(path, comment.char = "#")
icms <- ts(data$icms / 1e6, start = c(2017, 3), frequency = 12)

## -----------------------------------------------------------------------------
model <- model_arima(c(0, 1, 1), c(0, 1, 1),
                     regressors = data.frame(ipca = log(data$ipca_index)))
fit <- fit_model(model, log(window(icms, end = time(icms)[100])))
fit$details$regression
exp(predict(fit, 6))

## -----------------------------------------------------------------------------
y <- log(AirPassengers)
x <- fourier_terms(12, 3, length(y) + 12)
fit <- fit_model(model_arima(c(1, 1, 1), constant = TRUE, regressors = x), y)
names(fit$details$regression)
round(exp(predict(fit, 12)))

## -----------------------------------------------------------------------------
deflated <- model_log_linear(deflator = data$ipca_index)
fit <- fit_model(deflated, icms)
fit$params[c("trend_growth_pct", "inflation_pct")]
predict(fit, 6)

## -----------------------------------------------------------------------------
set.seed(1)
t <- 1:120
sales <- 200 + 0.8 * t + 5 * sin(2 * pi * t / 12) + rnorm(120, sd = 2)
campaigns <- c(11, 35, 59, 83, 107)
sales[campaigns] <- sales[campaigns] + 20     # a campaign every other November
sales[t >= 81] <- sales[t >= 81] - 15          # a new law cuts the level
sales <- ts(sales, frequency = 12)

model <- model_prophet(changepoints = 0,
                       events = list(campaign = c(campaigns, 131)),
                       steps = list(new_law = 81))
fit <- fit_model(model, sales)
round(fit$details$effects, 1)

