class_docstr: class to keep track of Varma polynomial format
  
  
  Examples
  --------
  
  ar23 = np.array([[[ 1. ,  0. ],
                   [ 0. ,  1. ]],
  
                  [[-0.6,  0. ],
                   [ 0.2, -0.6]],
  
                  [[-0.1,  0. ],
                   [ 0.1, -0.1]]])
  
  ma22 = np.array([[[ 1. ,  0. ],
                   [ 0. ,  1. ]],
  
                  [[ 0.4,  0. ],
                   [ 0.2, 0.3]]])
class_docstr_tok: ["class","to","keep","track","of","Varma","polynomial","format","Examples","--","--","--","--","ar23","=","np.array","(","[","[","[","1.",",","0",".","]",",","[","0.",",","1",".","]","]",",","[","[","-0.6",",","0",".","]",",","[","0.2",",","-0.6","]","]",",","[","[","-0.1",",","0",".","]",",","[","0.1",",","-0.1","]","]","]",")","ma22","=","np.array","(","[","[","[","1.",",","0",".","]",",","[","0.",",","1",".","]","]",",","[","[","0.4",",","0",".","]",",","[","0.2",",","0.3","]","]","]",")"]
docstr: this assumes no exog, todo
docstr_tok: ["this","assumes","no","exog",",","todo"]
code: def reduceform(self, apoly):
      """
  
      this assumes no exog, todo
  
      """
      if apoly.ndim != 3:
          raise ValueError("apoly needs to be 3d")
      nlags, nvarsex, nvars = apoly.shape
  
      a = np.empty_like(apoly)
      try:
          a0inv = np.linalg.inv(a[0, :nvars, :])
      except np.linalg.LinAlgError:
          raise ValueError(
              "matrix not invertible", "ask for implementation of pinv"
          )
  
      for lag in range(nlags):
          a[lag] = np.dot(a0inv, apoly[lag])
  
      return a
  
imports: import numpy
  from scipy import signal
  from statsmodels.tsa.tsatools import lagmat
label_desc: Use image node_id 9 for calling the VarmaPoly obj's underlying member method code with example usage: obj.reduceform(apoly) and returns: a