class_docstr: Autoregressive Integrated Moving Average (ARIMA) model, and extensions
  
  This model is the basic interface for ARIMA-type models, including those
  with exogenous regressors and those with seasonal components. The most
  general form of the model is SARIMAX(p, d, q)x(P, D, Q, s). It also allows
  all specialized cases, including
  
  - autoregressive models: AR(p)
  - moving average models: MA(q)
  - mixed autoregressive moving average models: ARMA(p, q)
  - integration models: ARIMA(p, d, q)
  - seasonal models: SARIMA(P, D, Q, s)
  - regression with errors that follow one of the above ARIMA-type models
  
  Parameters
  ----------
  endog : array_like, optional
      The observed time-series process :math:`y`.
  exog : array_like, optional
      Array of exogenous regressors.
  order : tuple, optional
      The (p,d,q) order of the model for the autoregressive, differences, and
      moving average components. d is always an integer, while p and q may
      either be integers or lists of integers.
  seasonal_order : tuple, optional
      The (P,D,Q,s) order of the seasonal component of the model for the
      AR parameters, differences, MA parameters, and periodicity. Default
      is (0, 0, 0, 0). D and s are always integers, while P and Q
      may either be integers or lists of positive integers.
  trend : str{'n','c','t','ct'} or iterable, optional
      Parameter controlling the deterministic trend. Can be specified as a
      string where 'c' indicates a constant term, 't' indicates a
      linear trend in time, and 'ct' includes both. Can also be specified as
      an iterable defining a polynomial, as in `numpy.poly1d`, where
      `[1,1,0,1]` would denote :math:`a + bt + ct^3`. Default is 'c' for
      models without integration, and no trend for models with integration.
      Note that all trend terms are included in the model as exogenous
      regressors, which differs from how trends are included in ``SARIMAX``
      models.  See the Notes section for a precise definition of the
      treatment of trend terms.
  enforce_stationarity : bool, optional
      Whether or not to require the autoregressive parameters to correspond
      to a stationarity process.
  enforce_invertibility : bool, optional
      Whether or not to require the moving average parameters to correspond
      to an invertible process.
  concentrate_scale : bool, optional
      Whether or not to concentrate the scale (variance of the error term)
      out of the likelihood. This reduces the number of parameters by one.
      This is only applicable when considering estimation by numerical
      maximum likelihood.
  trend_offset : int, optional
      The offset at which to start time trend values. Default is 1, so that
      if `trend='t'` the trend is equal to 1, 2, ..., nobs. Typically is only
      set when the model created by extending a previous dataset.
  dates : array_like of datetime, optional
      If no index is given by `endog` or `exog`, an array-like object of
      datetime objects can be provided.
  freq : str, optional
      If no index is given by `endog` or `exog`, the frequency of the
      time-series may be specified here as a Pandas offset or offset string.
  missing : str
      Available options are 'none', 'drop', and 'raise'. If 'none', no nan
      checking is done. If 'drop', any observations with nans are dropped.
      If 'raise', an error is raised. Default is 'none'.
  
  Notes
  -----
  This model incorporates both exogenous regressors and trend components
  through "regression with ARIMA errors". This differs from the
  specification estimated using ``SARIMAX`` which treats the trend
  components separately from any included exogenous regressors. The full
  specification of the model estimated here is:
  
  .. math::
  
      Y_{t}-\delta_{0}-\delta_{1}t-\ldots-\delta_{k}t^{k}-X_{t}\beta
          & =\epsilon_{t} \\
      \left(1-L\right)^{d}\left(1-L^{s}\right)^{D}\Phi\left(L\right)
      \Phi_{s}\left(L\right)\epsilon_{t}
          & =\Theta\left(L\right)\Theta_{s}\left(L\right)\eta_{t}
  
  where :math:`\eta_t \sim WN(0,\sigma^2)` is a white noise process, L
  is the lag operator, and :math:`G(L)` are lag polynomials corresponding
  to the autoregressive (:math:`\Phi`), seasonal autoregressive
  (:math:`\Phi_s`), moving average (:math:`\Theta`), and seasonal moving
  average components (:math:`\Theta_s`).
  
  `enforce_stationarity` and `enforce_invertibility` are specified in the
  constructor because they affect loglikelihood computations, and so should
  not be changed on the fly. This is why they are not instead included as
  arguments to the `fit` method.
  
  See the notebook `ARMA: Sunspots Data
  <../examples/notebooks/generated/tsa_arma_0.html>`__ and
  `ARMA: Artificial Data <../examples/notebooks/generated/tsa_arma_1.html>`__
  for an overview.
  
  .. todo:: should concentrate_scale=True by default
  
  Examples
  --------
  >>> mod = sm.tsa.arima.ARIMA(endog, order=(1, 0, 0))
  >>> res = mod.fit()
  >>> print(res.summary())
code: def _res_classes(self):
      return {"fit": (ARIMAResults, ARIMAResultsWrapper)}
  
imports: from statsmodels.compat.pandas import Appender
  import warnings
  import numpy
  from statsmodels.tools.data import _is_using_pandas
  from statsmodels.tsa.statespace import sarimax
  from statsmodels.tsa.statespace.kalman_filter import MEMORY_CONSERVE
  from statsmodels.tsa.statespace.tools import diff
  import statsmodels.base.wrapper
  from statsmodels.tsa.arima.estimators.yule_walker import yule_walker
  from statsmodels.tsa.arima.estimators.burg import burg
  from statsmodels.tsa.arima.estimators.hannan_rissanen import hannan_rissanen
  from statsmodels.tsa.arima.estimators.innovations import innovations, innovations_mle
  from statsmodels.tsa.arima.estimators.gls import gls
  from statsmodels.tsa.arima.specification import SARIMAXSpecification
label_desc: Use image node_id 2 for calling the ARIMA obj's underlying member method code with example usage: obj._res_classes() and returns: dict