[Stable] Construct the companion matrix of an ARMA model

ARMA_companion_matrix(phi, theta)

Arguments

phi

numeric vector of length p, AR parameters.

theta

numeric vector of length q, MA parameters.

Value

numeric matrix of size p+q x p+q.

Note

Version 1.0.2

Examples

# AR(1) / MA(1) ~ No companion
ARMA_companion_matrix(c(0.4))
#>      [,1]
#> [1,]  0.4
#> attr(,"arOrder")
#> [1] 1
#> attr(,"maOrder")
#> [1] 0
ARMA_companion_matrix(theta = c(0.4))
#>      [,1]
#> [1,]  0.4
#> attr(,"arOrder")
#> [1] 0
#> attr(,"maOrder")
#> [1] 1
# Only AR
ARMA_companion_matrix(c(0.4, 0.3, 0.1))
#>      [,1] [,2] [,3]
#> [1,]  0.4  0.3  0.1
#> [2,]  1.0  0.0  0.0
#> [3,]  0.0  1.0  0.0
#> attr(,"arOrder")
#> [1] 3
#> attr(,"maOrder")
#> [1] 0
# Only MA
ARMA_companion_matrix(theta = c(0.4, 0.3, 0.1))
#>      [,1] [,2] [,3]
#> [1,]  0.4  0.3  0.1
#> [2,]  1.0  0.0  0.0
#> [3,]  0.0  1.0  0.0
#> attr(,"arOrder")
#> [1] 0
#> attr(,"maOrder")
#> [1] 3
# ARMA
ARMA_companion_matrix(c(0.4, 0.2), c(0.3, 0))
#>      [,1] [,2] [,3]
#> [1,]  0.4  0.2  0.3
#> [2,]  1.0  0.0  0.0
#> [3,]  0.0  0.0  0.0
#> attr(,"arOrder")
#> [1] 2
#> attr(,"maOrder")
#> [1] 1
ARMA_companion_matrix(c(0.1, 0.02, 0.01), c(0.3, 0.1, 0.05))
#>      [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,]  0.1 0.02 0.01  0.3  0.1 0.05
#> [2,]  1.0 0.00 0.00  0.0  0.0 0.00
#> [3,]  0.0 1.00 0.00  0.0  0.0 0.00
#> [4,]  0.0 0.00 0.00  0.0  0.0 0.00
#> [5,]  0.0 0.00 0.00  1.0  0.0 0.00
#> [6,]  0.0 0.00 0.00  0.0  1.0 0.00
#> attr(,"arOrder")
#> [1] 3
#> attr(,"maOrder")
#> [1] 3