# dlmModTrig: Create Fourier representation of a periodic DLM component In dlm: Bayesian and Likelihood Analysis of Dynamic Linear Models

## Description

The function creates a dlm representing a specified periodic component.

## Usage

 `1` ```dlmModTrig(s, q, om, tau, dV = 1, dW = 0, m0, C0) ```

## Arguments

 `s` the period, if integer. `q` number of harmonics in the DLM. `om` the frequency. `tau` the period, if not an integer. `dV` variance of the observation noise. `dW` a single number expressing the variance of the system noise. `m0` m0, the expected value of the pre-sample state vector. `C0` C0, the variance matrix of the pre-sample state vector.

## Details

The periodic component is specified by one and only one of `s`, `om`, and `tau`. When `s` is given, the function assumes that the period is an integer, while a period specified by `tau` is assumed to be noninteger. Instead of `tau`, the frequency `om` can be specified. The argument `q` specifies the number of harmonics to include in the model. When `tau` or `omega` is given, then `q` is required as well, since in this case the implied Fourier representation has infinitely many harmonics. On the other hand, if `s` is given, `q` defaults to all the harmonics in the Fourier representation, that is `floor(s/2)`.

The system variance of the resulting dlm is `dW` times the identity matrix of the appropriate dimension.

## Value

An object of class dlm, representing a periodic component.

## Author(s)

Giovanni Petris [email protected]

## References

Giovanni Petris (2010), An R Package for Dynamic Linear Models. Journal of Statistical Software, 36(12), 1-16. http://www.jstatsoft.org/v36/i12/.
Petris, Petrone, and Campagnoli, Dynamic Linear Models with R, Springer (2009).
West and Harrison, Bayesian forecasting and dynamic models (2nd ed.), Springer (1997).

`dlmModSeas`, `dlmModARMA`, `dlmModPoly`, `dlmModReg`
 ```1 2 3 4 5 6 7 8``` ```dlmModTrig(s = 3) dlmModTrig(tau = 3, q = 1) # same thing dlmModTrig(s = 4) # for quarterly data dlmModTrig(s = 4, q = 1) dlmModTrig(tau = 4, q = 2) # a bad idea! m1 <- dlmModTrig(tau = 6.3, q = 2); m1 m2 <- dlmModTrig(om = 2 * pi / 6.3, q = 2) all.equal(unlist(m1), unlist(m2)) ```