def summary(self, prob=0.9): """ Prints a summary table displaying diagnostics of samples obtained from posterior. The diagnostics displayed are mean, standard deviation, median, the 90% Credibility Interval, :func:`~pyro.ops.stats.effective_sample_size`, :func:`~pyro.ops.stats.split_gelman_rubin`. :param float prob: the probability mass of samples within the credibility interval. """ summary(self._samples, prob=prob)
def get_summary_table(posterior, sites, player_names, transforms={}, diagnostics=False, group_by_chain=False): """ Return summarized statistics for each of the ``sites`` in the traces corresponding to the approximate posterior. """ site_stats = {} for site_name in sites: marginal_site = posterior[site_name].cpu() if site_name in transforms: marginal_site = transforms[site_name](marginal_site) site_summary = summary({site_name: marginal_site}, prob=0.5, group_by_chain=group_by_chain)[site_name] if site_summary["mean"].shape: site_df = pd.DataFrame(site_summary, index=player_names) else: site_df = pd.DataFrame(site_summary, index=[0]) if not diagnostics: site_df = site_df.drop(["n_eff", "r_hat"], axis=1) site_stats[site_name] = site_df.astype(float).round(2) return site_stats
def get_summary_table(posterior, sites): """ Return summarized statistics for each of the ``sites`` in the traces corresponding to the approximate posterior. """ site_stats = {} for site_name in sites: marginal_site = posterior[site_name].cpu() site_summary = summary({site_name: marginal_site}, prob=0.5, group_by_chain=group_by_chain)[site_name] if site_summary["mean"].shape: site_df = pd.DataFrame(site_summary) else: site_df = pd.DataFrame(site_summary, index=[0]) site_stats[site_name] = site_df.astype(float).round(2) return site_stats
def summary(self, p=0.9, verbose=False): self.results = pd.DataFrame(summary(self.mcmc_res._samples, prob=0.9)) if verbose: print(self.results) return self.results