class_docstr: Inherits time series methods from TSM class.
  
  **** GENERALIZED AUTOREGRESSIVE SCORE (GAS) MODELS ****
  
  Parameters
  ----------
  data : pd.DataFrame or np.array
      Field to specify the univariate time series data that will be used.
  
  ar : int
      Field to specify how many AR lags the model will have.
  
  sc : int
      Field to specify how many score lags terms the model will have.
  
  family : GAS family object
      Which distribution to use, e.g. GASNormal()
  
  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: Simulates a h-step ahead mean prediction
  
  Parameters
  ----------
  h : int
      How many steps ahead for the prediction
  
  simulations : int
      How many simulations to perform
  
  Returns
  ----------
  Matrix of simulations
docstr_tok: ["Simulates","a","h-step","ahead","mean","prediction","Parameters","--","--","--","--","--","h",":","int","How","many","steps","ahead","for","the","prediction","simulations",":","int","How","many","simulations","to","perform","Returns","--","--","--","--","--","Matrix","of","simulations"]
code: def _sim_prediction_bayes(self, h, simulations):
      """Simulates a h-step ahead mean prediction
  
      Parameters
      ----------
      h : int
          How many steps ahead for the prediction
  
      simulations : int
          How many simulations to perform
  
      Returns
      ----------
      Matrix of simulations
      """
  
      sim_vector = np.zeros([simulations, h])
  
      for n in range(0, simulations):
          t_z = self.draw_latent_variables(nsims=1).T[0]
          theta, Y, scores = self._model(t_z)
          t_z = np.array(
              [
                  self.latent_variables.z_list[k].prior.transform(
                      t_z[k]
                  )
                  for k in range(t_z.shape[0])
              ]
          )
  
          (
              model_scale,
              model_shape,
              model_skewness,
          ) = self._get_scale_and_shape(t_z)
  
          Y_exp = Y.copy()
          theta_exp = theta.copy()
          scores_exp = scores.copy()
  
          # (TODO: vectorize the inner construction here)
          for t in range(0, h):
              new_value = t_z[0]
  
              if self.ar != 0:
                  for j in range(1, self.ar + 1):
                      new_value += t_z[j] * theta_exp[-j]
  
              if self.sc != 0:
                  for k in range(1, self.sc + 1):
                      new_value += t_z[k + self.ar] * scores_exp[-k]
  
              if self.model_name2 == "Exponential":
                  rnd_value = self.family.draw_variable(
                      1.0 / self.link(new_value),
                      model_scale,
                      model_shape,
                      model_skewness,
                      1,
                  )[0]
              else:
                  rnd_value = self.family.draw_variable(
                      self.link(new_value),
                      model_scale,
                      model_shape,
                      model_skewness,
                      1,
                  )[0]
  
              Y_exp = np.append(Y_exp, [rnd_value])
              theta_exp = np.append(
                  theta_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] = Y_exp[-h:]
  
      return np.transpose(sim_vector)
  
imports: import sys
  import numpy
  import pandas
  import scipy.stats
  import scipy.special
  from ..None import families
  from ..None import tsm
  from ..None import data_check
  from .gas_core_recursions import gas_recursion
label_desc: Use image node_id 13 for calling the GAS obj's underlying member method code with example usage: obj._sim_prediction_bayes(h, simulations) and returns: np