'Internally, scipy.signal works with systems of the form
.. math::
ar_{poly}(L) X_t = ma_{poly}(L) \epsilon_t
where L is the lag operator. To match this, we set
.. math::
ar_{poly} = (1, -\phi_1, -\phi_2,..., -\phi_p)
ma_{poly} = (1, \theta_1, \theta_2,..., \theta_q)
In addition, ar_poly must be at least as long as ma_poly.
This can be achieved by padding it out with zeros when required.'

def set_params(self):

    ma_poly = np.asarray(self._theta)
    self.ma_poly = np.insert(ma_poly, 0, 1)
    if np.isscalar(self._phi):
        ar_poly = np.array((- self._phi))
    else:
        ar_poly = (- np.asarray(self._phi))
    self.ar_poly = np.insert(ar_poly, 0, 1)
    if (len(self.ar_poly) < len(self.ma_poly)):
        temp = np.zeros((len(self.ma_poly) - len(self.ar_poly)))
        self.ar_poly = np.hstack((self.ar_poly, temp))
