class_docstr: TSM PARENT CLASS
  
  Contains general time series methods to be inherited by models.
  
  Parameters
  ----------
  model_type : str
      The type of model (e.g. 'ARIMA', 'GARCH')
class_docstr_tok: ["TSM","PARENT","CLASS","Contains","general","time","series","methods","to","be","inherited","by","models",".","Parameters","--","--","--","--","--","model_type",":","str","The","type","of","model","(","e.g",".","'ARIMA","'",",","'GARCH","'",")"]
code: def _categorize_model_output(self, z):
      if self.model_type in [
          "GAS",
          "GASX",
          "GASLLEV",
          "GARCH",
          "EGARCH",
          "EGARCHM",
      ]:
          theta, Y, scores = self._model(z)
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["GASRank"]:
          theta, Y, states = self._model(z)
          scores = None
          states_var = None
          X_names = None
      elif self.model_type in ["Skellam"]:
          theta_1, theta_2, Y_1, Y_2 = self._model(z)
          Y = Y_1 - Y_2
          theta = np.exp(theta_1) - np.exp(theta_2)
          scores = None
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["DoubleGASRank"]:
          theta_1, theta_2, Y_1, Y_2, _, _ = self._model(z)
          Y = Y_1 - Y_2
          theta = theta_1
          scores = None
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["GASLLT"]:
          theta, mu_t, Y, scores = self._model(z)
          states = np.array([theta, mu_t])
          states_var = None
          X_names = None
      elif self.model_type in ["LMEGARCH"]:
          theta, _, Y, scores = self._model(z)
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["SEGARCH", "SEGARCHM"]:
          theta, Y, scores, y_theta = self._model(z)
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["EGARCHMReg"]:
          theta, Y, scores, _ = self._model(z)
          states = None
          states_var = None
          X_names = None
      elif self.model_type in ["GASReg"]:
          theta, Y, scores, states = self._model(z)
          states_var = None
          X_names = self.X_names
      elif self.model_type in ["LLEV", "LLT", "DynReg", "DAR"]:
          Y = self.data
          scores = None
          states, states_var = self.smoothed_state(self.data, z)
          theta = states[0][:-1]
          X_names = None
      elif self.model_type in ["GPNARX", "GPR", "GP"]:
          Y = self.data * self._norm_std + self._norm_mean
          scores = None
          theta = (
              self.expected_values(z) * self._norm_std + self._norm_mean
          )
          X_names = None
          states = None
          states_var = None
      else:
          theta, Y = self._model(z)
          scores = None
          states = None
          states_var = None
          X_names = None
  
      return theta, Y, scores, states, states_var, X_names
  
imports: from math import exp, sqrt, log, tanh
  import copy
  import sys
  import warnings
  import numpy
  from scipy import optimize
  import numdifftools
  import pandas
  from .covariances import acf
  from .families import Normal
  from .inference import BBVI, BBVIM, MetropolisHastings, norm_post_sim
  from .output import TablePrinter
  from .tests import find_p_value
  from .latent_variables import LatentVariable, LatentVariables
  from .results import BBVIResults, MLEResults, LaplaceResults, MCMCResults
label_desc: Use image node_id 2 for calling the TSM obj's underlying member method code with example usage: obj._categorize_model_output(z) and returns: theta,  Y,  scores,  states,  states_var,  X_names