def _predict(self, steps, exog, alpha):
assert 0 < alpha < 1
y = (exog if exog is not None else self._endog)[-self.results.k_ar:]
forecast = self.results.forecast(y, steps)
# FIXME: The following is adapted from statsmodels's
# VAR.forecast_interval() as the original doesn't work
q = norm.ppf(1 - alpha / 2)
sigma = np.sqrt(np.abs(np.diagonal(self.results.mse(steps), axis1=2)))
err = q * sigma
return np.asarray([forecast, forecast - err, forecast + err])
评论列表
文章目录