code: def _uncythonized_mb_model(self, beta, mini_batch):
          
  
          rand_int =  np.random.randint(low=0, high=self.data.shape[0]-mini_batch-self.max_lag+1)
          sample = np.arange(start=rand_int, stop=rand_int+mini_batch)
  
          Y = self.model_Y[sample]
  
          parm = np.array([self.latent_variables.z_list[k].prior.transform(beta[k]) for k in range(beta.shape[0])])
          theta = np.zeros(Y.shape[0])
          theta_t = np.zeros(Y.shape[0])
          model_scale, model_shape, model_skewness = self._get_scale_and_shape(parm)
  
          # Loop over time series
          theta, self.model_scores = gas_llt_recursion(parm, theta, theta_t, self.model_scores, Y, Y.shape[0], 
              self.family.score_function, self.link, model_scale, model_shape, model_skewness, self.max_lag)
  
          return theta, theta_t, Y, self.model_scores
docs: Creates the structure of the model
  
          Parameters
          ----------
          beta : np.array
              Contains untransformed starting values for latent variables
  
          mini_batch : int
              Size of each mini batch of data
  
          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