|
50 | 50 | class AnalyzeMCMC(LoadCatalog): |
51 | 51 | """Analyzes the results of a MCMC run.""" |
52 | 52 |
|
53 | | - info: Annotated[ |
| 53 | + evidence: Annotated[ |
54 | 54 | bool, |
55 | 55 | typer.Option( |
56 | | - help="Prints information about the MCMC file.", |
| 56 | + help=( |
| 57 | + "Computes the ln-Bayesian evidence and the 1sigma parameter " |
| 58 | + "space ln-volume." |
| 59 | + ), |
57 | 60 | ), |
58 | | - ] = True |
| 61 | + ] = False |
59 | 62 |
|
60 | 63 | def __post_init__(self) -> None: |
| 64 | + """Analyzes the results of a MCMC run.""" |
61 | 65 | super().__post_init__() |
62 | 66 |
|
63 | 67 | mcat = self.mcat |
@@ -317,6 +321,43 @@ def __post_init__(self) -> None: |
317 | 321 | covariance_matrix.add_row(*row) |
318 | 322 |
|
319 | 323 | main_table.add_row(covariance_matrix) |
| 324 | + |
| 325 | + if self.evidence: |
| 326 | + evidence_table = Table(title="Posterior Analysis", expand=False) |
| 327 | + evidence_table.add_column("Evidence Type", justify="left", style=desc_color) |
| 328 | + evidence_table.add_column( |
| 329 | + "Value +/- 1-sigma", justify="left", style=values_color |
| 330 | + ) |
| 331 | + evidence_table.add_column( |
| 332 | + "1-sigma volume", justify="left", style=values_color |
| 333 | + ) |
| 334 | + evidence_table.add_column( |
| 335 | + "2-sigma volume", justify="left", style=values_color |
| 336 | + ) |
| 337 | + |
| 338 | + be, be_sd = mcat.get_post_lnnorm() |
| 339 | + lnevol_1s, glnvol_1s = mcat.get_post_lnvol(0.682689492137086) |
| 340 | + lnevol_2s, glnvol_2s = mcat.get_post_lnvol(0.954499736103642) |
| 341 | + |
| 342 | + evidence_table.add_row( |
| 343 | + "Bayesian ln-Evidence", f"{be:.5g} +/- {be_sd:.5g}", "--", "--" |
| 344 | + ) |
| 345 | + |
| 346 | + evidence_table.add_row( |
| 347 | + "Posterior ln-volume", |
| 348 | + "--", |
| 349 | + f"{lnevol_1s:.5g}", |
| 350 | + f"{lnevol_2s:.5g}", |
| 351 | + ) |
| 352 | + evidence_table.add_row( |
| 353 | + "Posterior ln-volume (Gaussian approx.)", |
| 354 | + "--", |
| 355 | + f"{glnvol_1s:.5g}", |
| 356 | + f"{glnvol_2s:.5g}", |
| 357 | + ) |
| 358 | + |
| 359 | + main_table.add_row(evidence_table) |
| 360 | + |
320 | 361 | self.console.print(main_table) |
321 | 362 |
|
322 | 363 | self.end_experiment() |
@@ -428,6 +469,7 @@ class CalibrateCatalog(LoadCatalog): |
428 | 469 | ] = False |
429 | 470 |
|
430 | 471 | def __post_init__(self) -> None: |
| 472 | + """Calibrate the APES sampler using a given catalog.""" |
431 | 473 | super().__post_init__() |
432 | 474 |
|
433 | 475 | mcat = self.mcat |
@@ -598,6 +640,7 @@ class PlotCorner(LoadCatalog): |
598 | 640 | ] = 0 |
599 | 641 |
|
600 | 642 | def __post_init__(self) -> None: |
| 643 | + """Corner plot of the catalog.""" |
601 | 644 | super().__post_init__() |
602 | 645 |
|
603 | 646 | mcat = self.mcat |
|
0 commit comments