Draws latent variables from the model (for Bayesian inference)

        Parameters
        ----------
        nsims : int
            How many draws to take

        Returns
        ----------
        - np.ndarray of draws

def draw_latent_variables(self, nsims=5000):
        """ Draws latent variables from the model (for Bayesian inference)

        Parameters
        ----------
        nsims : int
            How many draws to take

        Returns
        ----------
        - np.ndarray of draws
        """
        if self.latent_variables.estimation_method is None:
            raise Exception("No latent variables estimated!")
        elif self.latent_variables.estimation_method == 'BBVI':
            return np.array([i.q.draw_variable_local(size=nsims) for i in self.latent_variables.z_list])
        elif self.latent_variables.estimation_method == "M-H":
            chain = np.array([self.latent_variables.z_list[i].sample for i in range(len(self.latent_variables.z_list))])
            return chain[:,np.random.choice(chain.shape[1], nsims)]
        else:
            raise Exception("No latent variables estimated through Bayesian inference")