code: def __init__(self, i_t: np.array, s_t: np.array, m_t: np.array):
      exog = np.c_[
          s_t, np.repeat(1, len(s_t))
      ]  # exog.shape => (nobs, 2)
  
      super().__init__(
          endog=np.c_[i_t, m_t],
          exog=exog,
          k_states=2,
          initialization="diffuse",
      )
  
      self.ssm["design"] = np.zeros(
          (self.k_endog, self.k_states, self.nobs)
      )
      self.ssm["design", 0, 0, :] = s_t
      self.ssm["design", 1, 1, :] = 1
  
      # These have ok shape. Placeholders since I'm changing them
      # in the update() function
      self.ssm["selection"] = np.eye(self.k_states)
      self.ssm["transition"] = np.eye(self.k_states)
  
      # Dictionary of positions to names
      self.position_dict = OrderedDict(
          var_e1=1,
          var_e2=2,
          var_w1=3,
          var_w2=4,
          delta1=5,
          delta2=6,
          delta3=7,
      )
      self.initial_values = starting_values
      self.positive_parameters = slice(0, 4)
  
imports: from collections import OrderedDict
  import matplotlib.pyplot
  import numpy
  import pandas
  import statsmodels.api
  import pymc3
  import theano
  import theano.tensor
label_desc: Use image node_id 1 to create a new MultipleYsModel object from inherited base classes: sm.tsa.statespace with example: obj = MultipleYsModel(i_t, s_t, m_t)