Create a companion matrix
Parameters: | polynomial : array_like or list
|
---|---|
Returns: | companion_matrix : array |
Notes
Given coefficients of a lag polynomial of the form:
c(L) = c_0 + c_1 L + \dots + c_p L^p
returns a matrix of the form
\begin{bmatrix} \phi_1 & 1 & 0 & \cdots & 0 \\ \phi_2 & 0 & 1 & & 0 \\ \vdots & & & \ddots & 0 \\ & & & & 1 \\ \phi_n & 0 & 0 & \cdots & 0 \\ \end{bmatrix}
where some or all of the \phi_i may be non-zero (if polynomial is None, then all are equal to zero).
If the coefficients provided are scalars (c_0, c_1, \dots, c_p), then the companion matrix is an n \times n matrix formed with the elements in the first column defined as \phi_i = -\frac{c_i}{c_0}, i \in 1, \dots, p.
If the coefficients provided are matrices (C_0, C_1, \dots, C_p), each of shape (m, m), then the companion matrix is an nm \times nm matrix formed with the elements in the first column defined as \phi_i = -C_0^{-1} C_i', i \in 1, \dots, p.
It is important to understand the expected signs of the coefficients. A typical AR(p) model is written as:
y_t = a_1 y_{t-1} + \dots + a_p y_{t-p} + \varepsilon_t
This can be rewritten as:
(1 - a_1 L - \dots - a_p L^p )y_t = \varepsilon_t \\ (1 + c_1 L + \dots + c_p L^p )y_t = \varepsilon_t \\ c(L) y_t = \varepsilon_t
The coefficients from this form are defined to be c_i = - a_i, and it is the c_i coefficients that this function expects to be provided.