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.
docstr: Set regressor matrix based on the input data-frame.
  Notes
  -----
  In case of absence of regression, they will be set to np.array with dim (num_of_obs, 0) to fit Stan requirement
code: def _set_regressor_matrix(self, df, num_of_observations):
      """Set regressor matrix based on the input data-frame.
      Notes
      -----
      In case of absence of regression, they will be set to np.array with dim (num_of_obs, 0) to fit Stan requirement
      """
      # init of regression matrix depends on length of response vector
      self.positive_regressor_matrix = np.zeros(
          (num_of_observations, 0), dtype=np.double
      )
      self.negative_regressor_matrix = np.zeros(
          (num_of_observations, 0), dtype=np.double
      )
      self.regular_regressor_matrix = np.zeros(
          (num_of_observations, 0), dtype=np.double
      )
  
      # update regression matrices
      if self.num_of_positive_regressors > 0:
          self.positive_regressor_matrix = df.filter(
              items=self.positive_regressor_col,
          ).values
  
      if self.num_of_negative_regressors > 0:
          self.negative_regressor_matrix = df.filter(
              items=self.negative_regressor_col,
          ).values
  
      if self.num_of_regular_regressors > 0:
          self.regular_regressor_matrix = df.filter(
              items=self.regular_regressor_col,
          ).values
  
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 10 for calling the LGTModel obj's underlying member method code with example usage: obj._set_regressor_matrix(df, num_of_observations) without return types