class_docstr: Class to hold results from fitting an VARMAX model.
  
  Parameters
  ----------
  model : VARMAX instance
      The fitted model instance
  
  Attributes
  ----------
  specification : dictionary
      Dictionary including all attributes from the VARMAX model instance.
  coefficient_matrices_var : ndarray
      Array containing autoregressive lag polynomial coefficient matrices,
      ordered from lowest degree to highest.
  coefficient_matrices_vma : ndarray
      Array containing moving average lag polynomial coefficients,
      ordered from lowest degree to highest.
  
  See Also
  --------
  statsmodels.tsa.statespace.kalman_filter.FilterResults
  statsmodels.tsa.statespace.mlemodel.MLEResults
code: def _news_previous_results(
      self,
      previous,
      start,
      end,
      periods,
      revisions_details_start=False,
      state_index=None,
  ):
      # TODO: tests for:
      # - the model cloning used in `kalman_smoother.news` works when we
      #   have time-varying exog (i.e. or do we need to somehow explicitly
      #   call the _set_final_exog and _set_final_predicted_state methods
      #   on the rev_mod / revision_results)
      # - in the case of revisions to `endog`, should the revised model use
      #   the `previous` exog? or the `revised` exog?
      # We need to figure out the out-of-sample exog, so that we can add back
      # in the last exog, predicted state
      exog = None
      out_of_sample = self.nobs - previous.nobs
      if self.model.k_exog > 0 and out_of_sample > 0:
          exog = self.model.exog[-out_of_sample:]
  
      # Compute the news
      with contextlib.ExitStack() as stack:
          stack.enter_context(previous.model._set_final_exog(exog))
          stack.enter_context(
              previous._set_final_predicted_state(exog, out_of_sample)
          )
  
          out = self.smoother_results.news(
              previous.smoother_results,
              start=start,
              end=end,
              revisions_details_start=revisions_details_start,
              state_index=state_index,
          )
      return out
  
imports: import contextlib
  from warnings import warn
  import pandas
  import numpy
  from statsmodels.compat.pandas import Appender
  from statsmodels.tools.tools import Bunch
  from statsmodels.tools.data import _is_using_pandas
  from statsmodels.tsa.vector_ar import var_model
  import statsmodels.base.wrapper
  from statsmodels.tools.sm_exceptions import EstimationWarning
  from .kalman_filter import INVERT_UNIVARIATE, SOLVE_LU
  from .mlemodel import MLEModel, MLEResults, MLEResultsWrapper
  from .initialization import Initialization
  from .tools import is_invertible, concat, prepare_exog, constrain_stationary_multivariate, unconstrain_stationary_multivariate, prepare_trend_spec, prepare_trend_data
label_desc: Use image node_id 7 for calling the VARMAXResults obj's underlying member method code with example usage: obj._news_previous_results(previous, start, end, periods, revisions_details_start, state_index) and returns: out