code: def predict_in_sample(self, exogenous=None, start=None,
                            end=None, dynamic=False):
          
          check_is_fitted(self, 'arima_res_')
  
          # if we fit with exog, make sure one was passed:
          exogenous = self._check_exog(exogenous)  # type: np.ndarray
          return self.arima_res_.predict(exog=exogenous, start=start,
                                         end=end, dynamic=dynamic)
docs: Generate in-sample predictions from the fit ARIMA model. This can
          be useful when wanting to visualize the fit, and qualitatively inspect
          the efficacy of the model, or when wanting to compute the residuals
          of the model.
  
          Parameters
          ----------
          exogenous : array-like, shape=[n_obs, n_vars], optional (default=None)
              An optional 2-d array of exogenous variables. If provided, these
              variables are used as additional features in the regression
              operation. This should not include a constant or trend. Note that
              if an ``ARIMA`` is fit on exogenous features, it must be provided
              exogenous features for making predictions.
  
          start : int, optional (default=None)
              Zero-indexed observation number at which to start forecasting, ie.,
              the first forecast is start.
  
          end : int, optional (default=None)
              Zero-indexed observation number at which to end forecasting, ie.,
              the first forecast is start.
  
          dynamic : bool, optional
              The `dynamic` keyword affects in-sample prediction. If dynamic
              is False, then the in-sample lagged values are used for
              prediction. If `dynamic` is True, then in-sample forecasts are
              used in place of lagged dependent variables. The first forecasted
              value is `start`.
  
          Returns
          -------
          predict : array
              The predicted values.