class_docstr: Inherits time series methods from TSM class.
  
  **** skew BETA-t-EGARCH 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 SCORE 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.
class_docstr_tok: ["Inherits","time","series","methods","from","TSM","class",".","*","*","*","*","skew","BETA-t-EGARCH","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","SCORE","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
  ----------
  lmda : 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","--","--","--","--","--","lmda",":","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, lmda, Y, scores, h, t_params, simulations):
      """Simulates a h-step ahead mean prediction
  
      Parameters
      ----------
      lmda : 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])
      m1 = (
          np.sqrt(t_params[-2]) * sp.gamma((t_params[-2] - 1.0) / 2.0)
      ) / (np.sqrt(np.pi) * sp.gamma(t_params[-2] / 2.0))
      for n in range(0, simulations):
          # Create arrays to iteratre over
          lmda_exp = lmda.copy()
          scores_exp = scores.copy()
          Y_exp = Y.copy()
          temp_theta = (
              t_params[-1]
              + (t_params[-3] - (1.0 / t_params[-3]))
              * np.exp(lmda_exp[-1] / 2.0)
              * m1
          )
  
          # Loop over h time periods
          for t in range(0, h):
              new_value = t_params[0]
  
              if self.p != 0:
                  for j in range(1, self.p + 1):
                      new_value += t_params[j] * lmda_exp[-j]
  
              if self.q != 0:
                  for k in range(1, self.q + 1):
                      new_value += t_params[k + self.p] * scores_exp[-k]
  
              if self.leverage is True:
                  m1 = (
                      np.sqrt(t_params[-2])
                      * sp.gamma((t_params[-2] - 1.0) / 2.0)
                  ) / (np.sqrt(np.pi) * sp.gamma(t_params[-2] / 2.0))
                  new_value += (
                      t_params[1 + self.p + self.q]
                      * np.sign(-(Y_exp[-1] - temp_theta))
                      * (scores_exp[-1] + 1)
                  )
              temp_theta = (
                  t_params[-1]
                  + (t_params[-3] - (1.0 / t_params[-3]))
                  * np.exp(new_value / 2.0)
                  * m1
              )
  
              lmda_exp = np.append(
                  lmda_exp, [new_value]
              )  # For indexing consistency
              scores_exp = np.append(
                  scores_exp, scores[np.random.randint(scores.shape[0])]
              )  # expectation of score is zero
              Y_exp = np.append(
                  Y_exp, Y[np.random.randint(Y.shape[0])]
              )  # bootstrap returns
  
          sim_vector[n] = lmda_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 output
  from ..None import tests
  from ..None import tsm
  from ..None import gas
  from ..None import data_check
label_desc: Use image node_id 6 for calling the SEGARCH obj's underlying member method code with example usage: obj._sim_prediction(lmda, Y, scores, h, t_params, simulations) and returns: np