code: def _uncythonized_model(self, beta):
          
  
          parm = np.array([self.latent_variables.z_list[k].prior.transform(beta[k]) for k in range(beta.shape[0])])
          coefficients = np.zeros((self.X.shape[1],self.model_Y.shape[0]+1))
          coefficients[:,0] = self.initial_values
          theta = np.zeros(self.model_Y.shape[0]+1)
          model_scale, model_shape, model_skewness = self._get_scale_and_shape(parm)
  
          # Loop over time series
          theta, self.model_scores, coefficients = gas_reg_recursion(parm, theta, self.X, coefficients, self.model_scores, self.model_Y, self.model_Y.shape[0], 
              self.family.reg_score_function, self.link, model_scale, model_shape, model_skewness, self.max_lag)
  
          return theta[:-1], self.model_Y, self.model_scores, coefficients
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