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 extend(self, endog, exog=None, **kwargs):
      # If we have exog, then the last element of predicted_state and
      # predicted_state_cov are nan (since they depend on the exog associated
      # with the first out-of-sample point), so we need to compute them here
      if exog is not None:
          fcast = self.get_prediction(
              self.nobs, self.nobs, exog=exog[:1]
          )
          fcast_results = fcast.prediction_results
          initial_state = fcast_results.predicted_state[..., 0]
          initial_state_cov = fcast_results.predicted_state_cov[..., 0]
      else:
          initial_state = self.predicted_state[..., -1]
          initial_state_cov = self.predicted_state_cov[..., -1]
  
      kwargs.setdefault(
          "trend_offset", self.nobs + self.model.trend_offset
      )
      mod = self.model.clone(endog, exog=exog, **kwargs)
  
      mod.ssm.initialization = Initialization(
          mod.k_states,
          "known",
          constant=initial_state,
          stationary_cov=initial_state_cov,
      )
  
      if self.smoother_results is not None:
          res = mod.smooth(self.params)
      else:
          res = mod.filter(self.params)
  
      return res
  
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 2 for calling the VARMAXResults obj's underlying member method code with example usage: obj.extend(endog, exog) and returns: res