dlmModTrig function

Create Fourier representation of a periodic DLM component

Create Fourier representation of a periodic DLM component

The function creates a dlm representing a specified periodic component.

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: m0m0, the expected value of the pre-sample state vector.
  • C0: C0C0, 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.

Returns

An object of class dlm, representing a periodic component.

References

Giovanni Petris (2010), An R Package for Dynamic Linear Models. Journal of Statistical Software, 36(12), 1-16. https://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).

Author(s)

Giovanni Petris GPetris@uark.edu

See Also

dlmModSeas, dlmModARMA, dlmModPoly, dlmModReg

Examples

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))
  • Maintainer: Giovanni Petris
  • License: GPL (>= 2)
  • Last published: 2024-09-21

Useful links