code: def _model_one_components(self,beta):
          
  
          parm = np.array([self.latent_variables.z_list[k].prior.transform(beta[k]) for k in range(beta.shape[0])])
          scale, shape, skewness = self._get_scale_and_shape(parm)
          state_vectors = np.zeros(shape=(self.max_team+1))
          theta = np.zeros(shape=(self.data.shape[0]))
  
          for t in range(0,self.data.shape[0]):
              theta[t] = parm[0] + state_vectors[self.home_id[t]] - state_vectors[self.away_id[t]]
  
              state_vectors[self.home_id[t]] += parm[1]*self.family.score_function(self.data[t], self.link(theta[t]), scale, shape, skewness)
              state_vectors[self.away_id[t]] += -parm[1]*self.family.score_function(self.data[t], self.link(theta[t]), scale, shape, skewness)
  
          return theta, self.data, state_vectors
docs: Creates the structure of the model
  
          Parameters
          ----------
          beta : np.array
              Contains untransformed starting values for latent variables
  
          Returns
          ----------
          theta : np.array
              Contains the predicted values for the time series
  
          Y : np.array
              Contains the length-adjusted time series (accounting for lags)
  
          scores : np.array
              Contains the scores for the time series