def predictive_log_likelihood(self, Z_pred, X_pred):
        _, mu_pred, Sig_pred = self.predict(Z_pred, full_output=True)

        psis = np.array([np.random.multivariate_normal(mu, Sig) for mu,Sig in zip(mu_pred, Sig_pred)])
        pis = ln_psi_to_pi(psis.T)

        pll = 0
        pll += gammaln(X_pred.sum(axis=1)+1).sum() - gammaln(X_pred+1).sum()
        pll += np.nansum(X_pred * np.log(pis))

        return pll, pis
Predict the GP value at the inputs Z_pred and evaluate the likelihood of X_pred
dataset/ETHPy150Open HIPS/pgmult/pgmult/gp.py/LogisticNormalGP.predictive_log_likelihood