'rolling h-period ahead forecast without reestimation, 1 period ahead only
in construction: uses loop to go over data and
not sure how to get (finite) forecast polynomial for h-step
Notes
just the idea:
To improve performance with expanding arrays, specify total period by endog
and the conditional forecast period by step_ahead
This should be used by/with results which should contain predicted error or
noise. Could be either a recursive loop or lfilter with a h-step ahead
forecast filter, but then I need to calculate that one. ???
further extension: allow reestimation option
question: return h-step ahead or range(h)-step ahead ?'

def forecast2(self, step_ahead=1, start=None, end=None, endog=None):

    if (step_ahead != 1):
        raise NotImplementedError
    (p, q) = (self.nar, self.nma)
    k = 0
    errors = self.error_estimate
    y = self.endog
    arcoefs_rev = self.params[k:(k + p)][::(-1)]
    macoefs_rev = self.params[(k + p):((k + p) + q)][::(-1)]
    predicted = []
    for i in range(start, end):
        predicted.append((sum((arcoefs_rev * y[(i - p):i])) + sum((macoefs_rev * errors[(i - p):i]))))
    return np.asarray(predicted)
