## Semilocal Linear Trend

### Description

The semi-local linear trend model is similar to the local linear trend, but more useful for long-term forecasting. It assumes the level component moves according to a random walk, but the slope component moves according to an AR1 process centered on a potentially nonzero value D. The equation for the level is

mu[t+1] = mu[t] + delta[t] + rnorm(1, 0, sigma.level)

The equation for the slope is

delta[t+1] = D + phi * (delta[t] - D) + rnorm(1, 0, sigma.slope).

This model differs from the local linear trend model in that the latter assumes the slope delta[t] follows a random walk. A stationary AR(1) process is less variable than a random walk when making projections far into the future, so this model often gives more reasonable uncertainty estimates when making long term forecasts.

The prior distribution for the semi-local linear trend has four independent components. These are:

• an inverse gamma prior on the level standard deviation sigma.level,

• an inverse gamma prior on the slope standard deviation sigma.slope,

• a Gaussian prior on the long run slope parameter D,

• and a potentially truncated Gaussian prior on the AR1 coefficient phi. If the prior on phi is truncated to (-1, 1), then the slope will exhibit short term stationary variation around the long run slope D.

### Usage

```  AddSemilocalLinearTrend(
state.specification = list(),
y = NULL,
level.sigma.prior = NULL,
slope.mean.prior = NULL,
slope.ar1.prior = NULL,
slope.sigma.prior = NULL,
initial.level.prior = NULL,
initial.slope.prior = NULL,
sdy = NULL,
initial.y = NULL)
```

### 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. This can be omitted if `sdy` and `initial.y` are supplied, or if all prior distributions are supplied directly. `level.sigma.prior` An object created by `SdPrior` describing the prior distribution for the standard deviation of the level component. `slope.mean.prior` An object created by `NormalPrior` giving the prior distribution for the mean parameter in the generalized local linear trend model (see below). `slope.ar1.prior` An object created by `Ar1CoefficientPrior` giving the prior distribution for the ar1 coefficient parameter in the generalized local linear trend model (see below). `slope.sigma.prior` An object created by `SdPrior` describing the prior distribution of the standard deviation of the slope component. `initial.level.prior` An object created by `NormalPrior` describing the initial distribution of the level portion of the initial state vector. `initial.slope.prior` An object created by `NormalPrior` describing the prior distribution for the slope portion of the initial state vector. `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. `initial.y` The initial value of the series being modeled. This will be ignored if `y` is provided, or if the priors for the initial state are all provided directly.

### Value

Returns a list with the elements necessary to specify a generalized local linear trend state model.

### Author(s)

Steven L. Scott steve.the.bayesian@gmail.com

### 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.

`bsts`. `SdPrior` `NormalPrior`