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.
code: def __init__(self, data, p, q, target=None):
      # Initialize TSM object
      super(GARCH, self).__init__("GARCH")
  
      # Latent Variables
      self.p = p
      self.q = q
      self.z_no = self.p + self.q + 2
      self.max_lag = max(self.p, self.q)
      self.model_name = "GARCH(" + str(self.p) + "," + str(self.q) + ")"
      self._z_hide = (
          0  # Whether to cutoff variance latent variables from results
      )
      self.supported_methods = ["MLE", "PML", "Laplace", "M-H", "BBVI"]
      self.default_method = "MLE"
      self.multivariate_model = False
  
      # Format the data
      (
          self.data,
          self.data_name,
          self.is_pandas,
          self.index,
      ) = dc.data_check(data, target)
      self.data_length = self.data.shape[0]
      self._create_latent_variables()
  
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 1 to create a new GARCH object from inherited base classes: tsm with example: obj = GARCH(data, p, q, target)