class_docstr: Inherits time series methods from TSM parent class.
  
  **** AUTOREGRESSIVE INTEGRATED MOVING AVERAGE EXOGENOUS (ARIMAX) MODELS ****
  
  Parameters
  ----------
  data : pd.DataFrame
      Field to specify the univariate time series data that will be used.
  
  formula : string
      patsy string notation describing the regression
  
  ar : int
      Field to specify how many AR lags the model will have.
  
  ma : int
      Field to specify how many MA lags the model will have.
  
  integ : int (default : 0)
      Specifies how many times to difference the time series.
  
  family : family object
      E.g pf.Normal(), pf.t(), pf.Laplace()...
class_docstr_tok: ["Inherits","time","series","methods","from","TSM","parent","class",".","*","*","*","*","AUTOREGRESSIVE","INTEGRATED","MOVING","AVERAGE","EXOGENOUS","(","ARIMAX",")","MODELS","*","*","*","*","Parameters","--","--","--","--","--","data",":","pd.DataFrame","Field","to","specify","the","univariate","time","series","data","that","will","be","used",".","formula",":","string","patsy","string","notation","describing","the","regression","ar",":","int","Field","to","specify","how","many","AR","lags","the","model","will","have",".","ma",":","int","Field","to","specify","how","many","MA","lags","the","model","will","have",".","integ",":","int","(","default",":","0",")","Specifies","how","many","times","to","difference","the","time","series",".","family",":","family","object","E.g","pf.Normal","(",")",",","pf.t","(",")",",","pf.Laplace","(",")","..."]
docstr: Plots the fit of the model against the data
docstr_tok: ["Plots","the","fit","of","the","model","against","the","data"]
code: def plot_fit(self, **kwargs):
      """
      Plots the fit of the model against the data
      """
      import matplotlib.pyplot as plt
      import seaborn as sns
  
      figsize = kwargs.get("figsize", (10, 7))
      plt.figure(figsize=figsize)
      date_index = self.index[
          max(self.ar, self.ma) : self.data.shape[0]
      ]
      mu, Y = self._model(self.latent_variables.get_z_values())
  
      # Catch specific family properties (imply different link functions/moments)
      if self.model_name2 == "Exponential":
          values_to_plot = 1.0 / self.link(mu)
      elif self.model_name2 == "Skewt":
          t_params = self.transform_z()
          (
              model_scale,
              model_shape,
              model_skewness,
          ) = self._get_scale_and_shape(t_params)
          m1 = (
              np.sqrt(model_shape) * sp.gamma((model_shape - 1.0) / 2.0)
          ) / (np.sqrt(np.pi) * sp.gamma(model_shape / 2.0))
          additional_loc = (
              (model_skewness - (1.0 / model_skewness))
              * model_scale
              * m1
          )
          values_to_plot = mu + additional_loc
      else:
          values_to_plot = self.link(mu)
  
      plt.plot(date_index, Y, label="Data")
      plt.plot(
          date_index, values_to_plot, label="ARIMA model", c="black"
      )
      plt.title(self.data_name)
      plt.legend(loc=2)
      plt.show()
  
imports: import sys
  import numpy
  import pandas
  import scipy.stats
  import scipy.special
  from patsy import dmatrices, dmatrix, demo_data
  from ..None import families
  from ..None import output
  from ..None import tests
  from ..None import tsm
  from ..None import data_check
  from .arma_recursions import arimax_recursion
label_desc: Use image node_id 18 for calling the ARIMAX obj's underlying member method code with example usage: obj.plot_fit() without return types