code: def full_neg_loglik(self, beta):
                       
          parm = np.array([self.latent_variables.z_list[k].prior.transform(beta[k]) for k in range(beta.shape[0])])
          L = self._L(parm)
          return -(-0.5*(np.dot(np.transpose(self.data),self._alpha(L))) - np.log(np.diag(L)).sum() - (self.data.shape[0]/2.0)*np.log(2.0*np.pi))
docs: Creates the negative log marginal likelihood of the model
          
          Parameters
          ----------
          beta : np.array
              Contains untransformed starting values for latent variables
          
          Returns
          ----------
          The negative log marginal logliklihood of the model