class_docstr: Inherits time series methods from TSM class.
  
  **** GENERALIZED AUTOREGRESSIVE CONDITIONAL HETEROSCEDASTICITY (GARCH) MODELS ****
  
  Parameters
  ----------
  data : pd.DataFrame or np.array
      Field to specify the time series data that will be used.
  
  p : int
      Field to specify how many GARCH terms the model will have.
  
  q : int
      Field to specify how many ARCH terms the model will have.
  
  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: Simulates a h-step ahead mean prediction
  
  Parameters
  ----------
  sigma2 : np.array
      The past predicted values
  
  Y : np.array
      The past data
  
  scores : np.array
      The past scores
  
  h : int
      How many steps ahead for the prediction
  
  t_params : np.array
      A vector of (transformed) latent variables
  
  simulations : int
      How many simulations to perform
  
  Returns
  ----------
  Matrix of simulations
docstr_tok: ["Simulates","a","h-step","ahead","mean","prediction","Parameters","--","--","--","--","--","sigma2",":","np.array","The","past","predicted","values","Y",":","np.array","The","past","data","scores",":","np.array","The","past","scores","h",":","int","How","many","steps","ahead","for","the","prediction","t_params",":","np.array","A","vector","of","(","transformed",")","latent","variables","simulations",":","int","How","many","simulations","to","perform","Returns","--","--","--","--","--","Matrix","of","simulations"]
code: def _sim_prediction(
      self, sigma2, Y, scores, h, t_params, simulations
  ):
      """Simulates a h-step ahead mean prediction
  
      Parameters
      ----------
      sigma2 : np.array
          The past predicted values
  
      Y : np.array
          The past data
  
      scores : np.array
          The past scores
  
      h : int
          How many steps ahead for the prediction
  
      t_params : np.array
          A vector of (transformed) latent variables
  
      simulations : int
          How many simulations to perform
  
      Returns
      ----------
      Matrix of simulations
      """
  
      sim_vector = np.zeros([simulations, h])
  
      for n in range(0, simulations):
          # Create arrays to iteratre over
          sigma2_exp = sigma2.copy()
          scores_exp = scores.copy()
  
          # Loop over h time periods
          for t in range(0, h):
              new_value = t_params[0]
  
              if self.q != 0:
                  for j in range(1, self.q + 1):
                      new_value += t_params[j] * scores_exp[-j]
  
              if self.p != 0:
                  for k in range(1, self.p + 1):
                      new_value += t_params[k + self.q] * sigma2_exp[-k]
  
              sigma2_exp = np.append(
                  sigma2_exp, [new_value]
              )  # For indexing consistency
              scores_exp = np.append(
                  scores_exp, scores[np.random.randint(scores.shape[0])]
              )  # expectation of score is zero
  
          sim_vector[n] = sigma2_exp[-h:]
  
      return np.transpose(sim_vector)
  
imports: import sys
  import numpy
  import pandas
  import scipy.stats
  from ..None import families
  from ..None import output
  from ..None import tests
  from ..None import tsm
  from ..None import data_check
  from .garch_recursions import garch_recursion
label_desc: Use image node_id 6 for calling the GARCH obj's underlying member method code with example usage: obj._sim_prediction(sigma2, Y, scores, h, t_params, simulations) and returns: np