class_docstr: Parameters
  ----------
  regressor_col : list
      Names of regressor columns, if any
  regressor_sign :  list
      list with values { '+', '-', '=' } such that
      '+' indicates regressor coefficient estimates are constrained to [0, inf).
      '-' indicates regressor coefficient estimates are constrained to (-inf, 0].
      '=' indicates regressor coefficient estimates can be any value between (-inf, inf).
      The length of `regressor_sign` must be the same length as `regressor_col`. If None,
      all elements of list will be set to '='.
  regressor_beta_prior : list
      list of prior float values for regressor coefficient betas. The length of `regressor_beta_prior`
      must be the same length as `regressor_col`. If None, use non-informative priors.
  regressor_sigma_prior : list
      list of prior float values for regressor coefficient sigmas. The length of `regressor_sigma_prior`
      must be the same length as `regressor_col`. If None, use non-informative priors.
  regression_penalty : { 'fixed_ridge', 'lasso', 'auto_ridge' }
      regression penalty method
  lasso_scale : float
      float value between [0, 1], applicable only if `regression_penalty` == 'lasso'
  auto_ridge_scale : float
      float value between [0, 1], applicable only if `regression_penalty` == 'auto_ridge'
  slope_sm_input : float
      float value between [0, 1]. A larger value puts more weight on the current slope.
      If None, the model will estimate this value.
code: def __init__(
      self,
      regressor_col=None,
      regressor_sign=None,
      regressor_beta_prior=None,
      regressor_sigma_prior=None,
      regression_penalty="fixed_ridge",
      lasso_scale=0.5,
      auto_ridge_scale=0.5,
      slope_sm_input=None,
      **kwargs,
  ):
      # introduce extra parameters
      self.min_nu = 5.0
      self.max_nu = 40.0
  
      self.slope_sm_input = slope_sm_input
      if regressor_col:
          warnings.warn(
              "Regression for LGT model will be deprecated in next version, please use DLT instead",
              PendingDeprecationWarning,
          )
      self.regressor_col = regressor_col
      self.regressor_sign = regressor_sign
      self.regressor_beta_prior = regressor_beta_prior
      self.regressor_sigma_prior = regressor_sigma_prior
      self.regression_penalty = regression_penalty
      self.lasso_scale = lasso_scale
      self.auto_ridge_scale = auto_ridge_scale
  
      # set private var to arg value
      # if None set default in _set_default_base_args()
      self._slope_sm_input = self.slope_sm_input
  
      self._regressor_sign = self.regressor_sign
      self._regressor_beta_prior = self.regressor_beta_prior
      self._regressor_sigma_prior = self.regressor_sigma_prior
      self._regression_penalty = None
      self._regressor_col = list()
  
      self.num_of_regressors = 0
      # positive regressors
      self.num_of_positive_regressors = 0
      self.positive_regressor_col = list()
      self.positive_regressor_beta_prior = list()
      self.positive_regressor_sigma_prior = list()
      # negative regressors
      self.num_of_negative_regressors = 0
      self.negative_regressor_col = list()
      self.negative_regressor_beta_prior = list()
      self.negative_regressor_sigma_prior = list()
      # regular regressors
      self.num_of_regular_regressors = 0
      self.regular_regressor_col = list()
      self.regular_regressor_beta_prior = list()
      self.regular_regressor_sigma_prior = list()
  
      # init dynamic data attributes
      # the following are set by `_set_dynamic_attributes()` and generally set during fit()
      # from input df
      # response data
      self.cauchy_sd = None
  
      # regression data
      self.positive_regressor_matrix = None
      self.negative_regressor_matrix = None
      self.regular_regressor_matrix = None
  
      super().__init__(**kwargs)
  
imports: import numpy
  import pandas
  from scipy.stats import nct
  from copy import deepcopy
  import torch
  from enum import Enum
  import warnings
  from ..constants.constants import DEFAULT_REGRESSOR_SIGN, DEFAULT_REGRESSOR_BETA, DEFAULT_REGRESSOR_SIGMA, COEFFICIENT_DF_COLS, PredictMethod, PredictionKeys, TrainingMetaKeys, PredictionMetaKeys
  from ..exceptions import IllegalArgument, ModelException, DataInputException
  from .ets import ETSModel
  from ..estimators.stan_estimator import StanEstimatorMCMC, StanEstimatorMAP
  from ..estimators.pyro_estimator import PyroEstimatorSVI
label_desc: Use image node_id 1 to create a new LGTModel object from inherited base classes: ETSModel with example: obj = LGTModel(regressor_col, regressor_sign, regressor_beta_prior, regressor_sigma_prior, regression_penalty, lasso_scale, auto_ridge_scale, slope_sm_input)