@@ -174,6 +174,7 @@ def __init__(
174
174
prior = None ,
175
175
posterior_predictive = None ,
176
176
log_likelihood = False ,
177
+ log_prior = False ,
177
178
predictions = None ,
178
179
coords : Optional [CoordSpec ] = None ,
179
180
dims : Optional [DimSpec ] = None ,
@@ -215,6 +216,7 @@ def __init__(
215
216
self .prior = prior
216
217
self .posterior_predictive = posterior_predictive
217
218
self .log_likelihood = log_likelihood
219
+ self .log_prior = log_prior
218
220
self .predictions = predictions
219
221
220
222
if all (elem is None for elem in (trace , predictions , posterior_predictive , prior )):
@@ -446,6 +448,17 @@ def to_inference_data(self):
446
448
sample_dims = self .sample_dims ,
447
449
progressbar = False ,
448
450
)
451
+ if self .log_prior :
452
+ from pymc .stats .log_density import compute_log_prior
453
+
454
+ idata = compute_log_prior (
455
+ idata ,
456
+ var_names = None if self .log_prior is True else self .log_prior ,
457
+ extend_inferencedata = True ,
458
+ model = self .model ,
459
+ sample_dims = self .sample_dims ,
460
+ progressbar = False ,
461
+ )
449
462
return idata
450
463
451
464
@@ -455,6 +468,7 @@ def to_inference_data(
455
468
prior : Optional [Mapping [str , Any ]] = None ,
456
469
posterior_predictive : Optional [Mapping [str , Any ]] = None ,
457
470
log_likelihood : Union [bool , Iterable [str ]] = False ,
471
+ log_prior : Union [bool , Iterable [str ]] = False ,
458
472
coords : Optional [CoordSpec ] = None ,
459
473
dims : Optional [DimSpec ] = None ,
460
474
sample_dims : Optional [list ] = None ,
@@ -481,8 +495,11 @@ def to_inference_data(
481
495
Dictionary with the variable names as keys, and values numpy arrays
482
496
containing posterior predictive samples.
483
497
log_likelihood : bool or array_like of str, optional
484
- List of variables to calculate `log_likelihood`. Defaults to True which calculates
485
- `log_likelihood` for all observed variables. If set to False, log_likelihood is skipped.
498
+ List of variables to calculate `log_likelihood`. Defaults to False.
499
+ If set to True, computes `log_likelihood` for all observed variables.
500
+ log_prior : bool or array_like of str, optional
501
+ List of variables to calculate `log_prior`. Defaults to False.
502
+ If set to True, computes `log_prior` for all unobserved variables.
486
503
coords : dict of {str: array-like}, optional
487
504
Map of coordinate names to coordinate values
488
505
dims : dict of {str: list of str}, optional
@@ -509,6 +526,7 @@ def to_inference_data(
509
526
prior = prior ,
510
527
posterior_predictive = posterior_predictive ,
511
528
log_likelihood = log_likelihood ,
529
+ log_prior = log_prior ,
512
530
coords = coords ,
513
531
dims = dims ,
514
532
sample_dims = sample_dims ,
0 commit comments