code: def sample(self, nsims=1000):
               
          if self.latent_variables.estimation_method not in ['BBVI', 'M-H']:
              raise Exception("No latent variables estimated!")
          else:
              lv_draws = self.draw_latent_variables(nsims=nsims)
              sigmas = [self._model(lv_draws[:,i])[0] for i in range(nsims)]
              data_draws = np.array([ss.t.rvs(loc=self.latent_variables.z_list[-1].prior.transform(lv_draws[-1,i]),
                  df=self.latent_variables.z_list[-2].prior.transform(lv_draws[-2,i]), scale=np.exp(sigmas[i]/2.0)) for i in range(nsims)])
              return data_draws
docs: Samples from the posterior predictive distribution
  
          Parameters
          ----------
          nsims : int (default : 1000)
              How many draws from the posterior predictive distribution
  
          Returns
          ----------
          - np.ndarray of draws from the data