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: Makes dynamic out-of-sample predictions on in-sample data with the estimated model
  
  Parameters
  ----------
  h : int (default : 5)
      How many steps would you like to forecast?
  
  fit_once : boolean
      Whether to fit the model once at the beginning (True), or fit every iteration (False)
  
  fit_method : string
      Which method to fit the model with
  
  intervals : boolean (default: False)
      Whether to return prediction intervals
  
  Returns
  ----------
  - pd.DataFrame with predicted values
docstr_tok: ["Makes","dynamic","out-of-sample","predictions","on","in-sample","data","with","the","estimated","model","Parameters","--","--","--","--","--","h",":","int","(","default",":","5",")","How","many","steps","would","you","like","to","forecast","?","fit_once",":","boolean","Whether","to","fit","the","model","once","at","the","beginning","(","True",")",",","or","fit","every","iteration","(","False",")","fit_method",":","string","Which","method","to","fit","the","model","with","intervals",":","boolean","(","default",":","False",")","Whether","to","return","prediction","intervals","Returns","--","--","--","--","--","-","pd.DataFrame","with","predicted","values"]
code: def predict_is(
      self,
      h=5,
      fit_once=True,
      fit_method="MLE",
      intervals=False,
      **kwargs,
  ):
      """Makes dynamic out-of-sample predictions on in-sample data with the estimated model
  
      Parameters
      ----------
      h : int (default : 5)
          How many steps would you like to forecast?
  
      fit_once : boolean
          Whether to fit the model once at the beginning (True), or fit every iteration (False)
  
      fit_method : string
          Which method to fit the model with
  
      intervals : boolean (default: False)
          Whether to return prediction intervals
  
      Returns
      ----------
      - pd.DataFrame with predicted values
      """
  
      predictions = []
  
      for t in range(0, h):
          data1 = self.data_original.iloc[: -h + t, :]
          data2 = self.data_original.iloc[-h + t :, :]
  
          x = ARIMAX(
              ar=self.ar,
              ma=self.ma,
              integ=self.integ,
              formula=self.formula,
              data=data1,
              family=self.family,
          )
  
          if fit_once is False:
              x.fit(method=fit_method, printer=False)
          if t == 0:
              if fit_once is True:
                  x.fit(method=fit_method, printer=False)
                  saved_lvs = x.latent_variables
              predictions = x.predict(
                  1, oos_data=data2, intervals=intervals
              )
          else:
              if fit_once is True:
                  x.latent_variables = saved_lvs
              predictions = pd.concat(
                  [
                      predictions,
                      x.predict(
                          h=1, oos_data=data2, intervals=intervals
                      ),
                  ]
              )
  
      if intervals is True:
          predictions.rename(
              columns={
                  0: self.y_name,
                  1: "1% Prediction Interval",
                  2: "5% Prediction Interval",
                  3: "95% Prediction Interval",
                  4: "99% Prediction Interval",
              },
              inplace=True,
          )
      else:
          predictions.rename(columns={0: self.y_name}, inplace=True)
  
      predictions.index = self.index[-h:]
  
      return predictions
  
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 20 for calling the ARIMAX obj's underlying member method code with example usage: obj.predict_is(h, fit_once, fit_method, intervals) and returns: predictions