class_docstr: Inherits time series methods from TSM class.
  
  **** GAUSSIAN PROCESS NONLINEAR AUTOREGRESSIVE (GP-NARX) MODELS ****
  
  Parameters
  ----------
  data : pd.DataFrame or np.array
      Field to specify the time series data that will be used.
  
  ar : int
      Field to specify how many AR terms the model will have.
  
  kernel : kernel object
      For example, SquaredExponential() or OrnsteinUhlenbeck()
  
  integ : int (default : 0)
      Specifies how many time to difference the time series.
  
  target : str (pd.DataFrame) or int (np.array)
      Specifies which column name or array index to use. By default, first
      column/array will be selected as the dependent variable.
class_docstr_tok: ["Inherits","time","series","methods","from","TSM","class",".","*","*","*","*","GAUSSIAN","PROCESS","NONLINEAR","AUTOREGRESSIVE","(","GP-NARX",")","MODELS","*","*","*","*","Parameters","--","--","--","--","--","data",":","pd.DataFrame","or","np.array","Field","to","specify","the","time","series","data","that","will","be","used",".","ar",":","int","Field","to","specify","how","many","AR","terms","the","model","will","have",".","kernel",":","kernel","object","For","example",",","SquaredExponential","(",")","or","OrnsteinUhlenbeck","(",")","integ",":","int","(","default",":","0",")","Specifies","how","many","time","to","difference","the","time","series",".","target",":","str","(","pd.DataFrame",")","or","int","(","np.array",")","Specifies","which","column","name","or","array","index","to","use",".","By","default",",","first","column\/array","will","be","selected","as","the","dependent","variable","."]
docstr: Plots forecast with the estimated model
  
  Parameters
  ----------
  h : int (default : 5)
      How many steps ahead would you like to forecast?
  
  past_values : int (default : 20)
      How many past observations to show on the forecast graph?
  
  intervals : Boolean
      Would you like to show 95% prediction intervals for the forecast?
  
  Returns
  ----------
  - Plot of the forecast
  - Error bars, forecasted_values, plot_values, plot_index
docstr_tok: ["Plots","forecast","with","the","estimated","model","Parameters","--","--","--","--","--","h",":","int","(","default",":","5",")","How","many","steps","ahead","would","you","like","to","forecast","?","past_values",":","int","(","default",":","20",")","How","many","past","observations","to","show","on","the","forecast","graph","?","intervals",":","Boolean","Would","you","like","to","show","95","%","prediction","intervals","for","the","forecast","?","Returns","--","--","--","--","--","-","Plot","of","the","forecast","-","Error","bars",",","forecasted_values",",","plot_values",",","plot_index"]
code: def plot_predict(self, h=5, past_values=20, intervals=True, **kwargs):
      """Plots forecast with the estimated model
  
      Parameters
      ----------
      h : int (default : 5)
          How many steps ahead would you like to forecast?
  
      past_values : int (default : 20)
          How many past observations to show on the forecast graph?
  
      intervals : Boolean
          Would you like to show 95% prediction intervals for the forecast?
  
      Returns
      ----------
      - Plot of the forecast
      - Error bars, forecasted_values, plot_values, plot_index
      """
      import matplotlib.pyplot as plt
      import seaborn as sns
  
      figsize = kwargs.get("figsize", (10, 7))
  
      if self.latent_variables.estimated is False:
          raise Exception("No latent variables estimated!")
      else:
          predictions, variance, lower, upper = self._construct_predict(
              self.latent_variables.get_z_values(), h
          )
          full_predictions = np.append(self.data, predictions)
          full_lower = np.append(self.data, lower)
          full_upper = np.append(self.data, upper)
          date_index = self.shift_dates(h)
  
          # Plot values (how far to look back)
          plot_values = (
              full_predictions[-h - past_values :] * self._norm_std
              + self._norm_mean
          )
          plot_index = date_index[-h - past_values :]
  
          # Lower and upper intervals
          lower = np.append(full_predictions[-h - 1], lower)
          upper = np.append(full_predictions[-h - 1], upper)
  
          plt.figure(figsize=figsize)
          if intervals == True:
              plt.fill_between(
                  date_index[-h - 1 :],
                  lower * self._norm_std + self._norm_mean,
                  upper * self._norm_std + self._norm_mean,
                  alpha=0.2,
              )
  
          plt.plot(plot_index, plot_values)
          plt.title("Forecast for " + self.data_name)
          plt.xlabel("Time")
          plt.ylabel(self.data_name)
          plt.show()
  
imports: import sys
  import numpy
  import pandas
  import scipy.linalg
  import scipy.sparse
  import scipy.stats
  from scipy.stats import multivariate_normal
  from ..None import arma
  from ..None import output
  from ..None import tests
  from ..None import tsm
  from ..None import data_check
  from .kernels import *
label_desc: Use image node_id 11 for calling the GPNARX obj's underlying member method code with example usage: obj.plot_predict(h, past_values, intervals) without return types