stsm_forecast {autostsm}R Documentation

Kalman Filter and Forecast

Description

Kalman filter and forecast an estimated model from stsm_estimate output

Usage

stsm_forecast(
  model,
  y,
  n.ahead = 0,
  freq = NULL,
  exo_obs = NULL,
  exo_state = NULL,
  exo_obs.fc = NULL,
  exo_state.fc = NULL,
  ci = 0.8,
  plot = FALSE,
  plot.decomp = FALSE,
  plot.fc = FALSE,
  n.hist = NULL,
  smooth = TRUE,
  dampen_cycle = FALSE,
  envelope_ci = FALSE
)

Arguments

model

Structural time series model estimated using stsm_estimate.

y

Univariate time series of data values. May also be a 2 column data frame containing a date column.

n.ahead

Number of periods to forecast

freq

Frequency of the data (1 (yearly), 4 (quarterly), 12 (monthly), 365.25/7 (weekly), 365.25 (daily)), default is NULL and will be automatically detected

exo_obs

Matrix of exogenous variables to be used in the observation equation.

exo_state

Matrix of exogenous variables to be used in the state matrix.

exo_obs.fc

Matrix of exogenous variables in the observation matrix used for the forecast

exo_state.fc

Matrix of exogenous variables in the state matrix used for the forecast

ci

Confidence interval, value between 0 and 1 exclusive.

plot

Logical, whether to plot everything

plot.decomp

Logical, whether to plot the filtered historical data

plot.fc

Logical, whether to plot the forecast

n.hist

Number of historical periods to include in the forecast plot. If plot = TRUE and n.hist = NULL, defaults to 3 years.

smooth

Whether or not to use the Kalman smoother

dampen_cycle

Whether to remove oscillating cycle dynamics and smooth the cycle forecast into the trend using a sigmoid function that maintains the rate of convergence

envelope_ci

Whether to create a envelope for the confidence interval to smooth out seasonal fluctuations to the longest seasonal period

Value

data table (or list of data tables) containing the filtered and/or smoothed series.

Examples

## Not run: 
#GDP Not seasonally adjusted
library(autostsm)
data("NA000334Q", package = "autostsm") #From FRED
NA000334Q = data.table(NA000334Q, keep.rownames = TRUE)
colnames(NA000334Q) = c("date", "y")
NA000334Q[, "date" := as.Date(date)]
NA000334Q[, "y" := as.numeric(y)]
NA000334Q = NA000334Q[date >= "1990-01-01", ]
stsm = stsm_estimate(NA000334Q)
fc = stsm_forecast(stsm, y = NA000334Q, n.ahead = floor(stsm$freq)*3, plot = TRUE)

## End(Not run)

[Package autostsm version 3.1.4 Index]