class_docstr: Inherits time series methods from TSM class.
  
  **** GENERALIZED AUTOREGRESSIVE SCORE LOCAL LEVEL MODELS ****
  
  Parameters
  ----------
  data : pd.DataFrame or np.array
      Field to specify the univariate time series data that will be used.
  
  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.
  
  dist : str
      Which distribution to use
code: def __init__(self, data, family, integ=0, target=None):
      # Initialize TSM object
      super(GASLLEV, self).__init__("GASLLEV")
  
      self.integ = integ
      self.z_no = 1
      self.max_lag = 1
      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
  
      (
          self.data,
          self.data_name,
          self.is_pandas,
          self.index,
      ) = dc.data_check(data, target)
      self.data = self.data.astype(np.float)
      self.data_original = self.data.copy()
  
      for order in range(0, self.integ):
          self.data = np.diff(self.data)
          self.data_name = "Differenced " + self.data_name
  
      self.data_length = self.data.shape[0]
  
      self._create_model_matrices()
      self._create_latent_variables()
  
      self.family = family
  
      (
          self.model_name2,
          self.link,
          self.scale,
          self.shape,
          self.skewness,
          self.mean_transform,
          self.cythonized,
      ) = self.family.setup()
  
      # Identify whether model has cythonized backend - then choose update type
      if self.cythonized is True:
          self._model = self._cythonized_model
          self._mb_model = self._cythonized_mb_model
          if self.family.gradient_only is True:
              self.recursion = (
                  self.family.gradientllev_recursion()
              )  # first-order update
          else:
              self.recursion = (
                  self.family.newtonllev_recursion()
              )  # second-order update
      else:
          self._model = self._uncythonized_model
          self._mb_model = self._uncythonized_mb_model
  
      self.model_name = self.model_name2 + " GAS LLM"
  
      # Build any remaining latent variables that are specific to the family chosen
      for no, i in enumerate(self.family.build_latent_variables()):
          self.latent_variables.add_z(i[0], i[1], i[2])
          self.latent_variables.z_list[no + 1].start = i[3]
  
      self.family_z_no = len(self.family.build_latent_variables())
      self.z_no = len(self.latent_variables.z_list)
  
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_llev_recursion
label_desc: Use image node_id 1 to create a new GASLLEV object from inherited base classes: tsm with example: obj = GASLLEV(data, family, integ, target)