add.seasonal: Seasonal state component

Description Usage Arguments Value Author(s) References See Also Examples

Description

Add a seasonal model to a state specification.

The seasonal model can be thought of as a regression on nseasons dummy variables with coefficients constrained to sum to 1 (in expectation). If there are S seasons then the state vector gamma is of dimension S-1. The first element of the state vector obeys

gamma[t+1, 1] = -1 * sum(gamma[t, -1]) + rnorm(1, 0, sigma)

Usage

1
2
3
4
5
6
7
8
  AddSeasonal(
     state.specification,
     y,
     nseasons,
     season.duration = 1,
     sigma.prior,
     initial.state.prior,
     sdy)

Arguments

state.specification

A list of state components that you wish to add to. If omitted, an empty list will be assumed.

y

The time series to be modeled, as a numeric vector.

nseasons

The number of seasons to be modeled.

season.duration

The number of time periods in each season.

sigma.prior

An object created by SdPrior describing the prior distribution for the standard deviation of the random walk increments.

initial.state.prior

An object created using NormalPrior, describing the prior distribution of the the initial state vector (at time 1).

sdy

The standard deviation of the series to be modeled. This will be ignored if y is provided, or if all the required prior distributions are supplied directly.

Value

Returns a list with the elements necessary to specify a seasonal state model.

Author(s)

Steven L. Scott [email protected]

References

Harvey (1990), "Forecasting, structural time series, and the Kalman filter", Cambridge University Press.

Durbin and Koopman (2001), "Time series analysis by state space methods", Oxford University Press.

See Also

bsts. SdPrior NormalPrior

Examples

1
2
3
4
5
6
7
  data(AirPassengers)
  y <- log(AirPassengers)
  ss <- AddLocalLinearTrend(list(), y)
  ss <- AddSeasonal(ss, y, nseasons = 12)
  model <- bsts(y, state.specification = ss, niter = 500)
  pred <- predict(model, horizon = 12, burn = 100)
  plot(pred)

Example output

Loading required package: BoomSpikeSlab
Loading required package: Boom
Loading required package: MASS

Attaching package: 'Boom'

The following object is masked from 'package:stats':

    rWishart

Loading required package: zoo

Attaching package: 'zoo'

The following objects are masked from 'package:base':

    as.Date, as.Date.numeric

Loading required package: xts
=-=-=-=-= Iteration 0 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 50 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 100 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 150 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 200 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 250 Fri Jun  9 19:14:26 2017 =-=-=-=-=
=-=-=-=-= Iteration 300 Fri Jun  9 19:14:27 2017 =-=-=-=-=
=-=-=-=-= Iteration 350 Fri Jun  9 19:14:27 2017 =-=-=-=-=
=-=-=-=-= Iteration 400 Fri Jun  9 19:14:27 2017 =-=-=-=-=
=-=-=-=-= Iteration 450 Fri Jun  9 19:14:27 2017 =-=-=-=-=

bsts documentation built on May 29, 2017, 10:28 p.m.

Related to add.seasonal in bsts...