Learn R Programming

tfarima (version 0.4.1)

cwfact: Cramer-Wold Factorization

Description

cwfact performs the Cramer-Wold factorization of the generating autocovariance function of a pure moving average (MA) process, expressed as: $$g(x) = \theta(x)\theta(x^{-1})$$ where $$g(x) = g_0 + g_1(x + x^{-1}) + \dots + g_q(x^q + x^{-q})$$ and $$\theta(x) = \theta_0 + \theta_1 x + \dots + \theta_q x^q$$

Usage

cwfact(
  g,
  th = NULL,
  method = c("roots", "wilson", "best"),
  tol = 1e-08,
  iter.max = 500
)

Value

A numeric vector containing the moving average coefficients

c(theta_0, ..., theta_q).

Arguments

g

A numeric vector with the autocovariance coefficients c(g0, g1, ..., gq).

th

Optional numeric vector with initial values for the MA coefficients \(\theta(x)\).

method

A character string specifying the factorization method to use. Options are "roots" (default) and "wilson".

tol

A numeric tolerance for convergence (only used for method = "wilson"). Default is 1e-8.

iter.max

Maximum number of iterations for the Wilson method. Default is 100.

Details

The factorization can be computed by finding the roots of the polynomial \(g(x)\), or using the iterative Wilson (1969) algorithm as implemented by Laurie (1981).

The implementation for method = "laurie" is a custom R adaptation of Algorithm AS 175 from Laurie (1981).

References

Wilson, G. T. (1969). Factorization of the covariance generating function of a pure moving average process. SIAM Journal on Numerical Analysis, 6(1), 1–7.

Laurie, D. P. (1981). Cramer-Wold Factorization. Journal of the Royal Statistical Society Series C: Applied Statistics, 31(1), 86–93.

Examples

Run this code
g <- autocov(um(ma = "1 - 0.8B"), lag.max = 1)
cwfact(g, method = "roots")
cwfact(g, method = "wilson")

Run the code above in your browser using DataLab