@@ -364,6 +364,40 @@ def dist(
364
364
365
365
366
366
class SymbolicDistribution :
367
+ """Symbolic statistical distribution
368
+
369
+ While traditional PyMC distributions are represented by a single RandomVariable
370
+ graph, Symbolic distributions correspond to a larger graph that contains one or
371
+ more RandomVariables and an arbitrary number of deterministic operations, which
372
+ represent their own kind of distribution.
373
+
374
+ The graphs returned by symbolic distributions can be evaluated directly to
375
+ obtain valid draws and can further be parsed by Aeppl to derive the
376
+ corresponding logp at runtime.
377
+
378
+ Check pymc.distributions.Censored for an example of a symbolic distribution.
379
+
380
+ Symbolic distributions must implement the following classmethods:
381
+ cls.dist
382
+ Performs input validation and converts optional alternative parametrizations
383
+ to a canonical parametrization. It should call `super().dist()`, passing a
384
+ list with the default parameters as the first and only non keyword argument,
385
+ followed by other keyword arguments like size and rngs, and return the result
386
+ cls.num_rngs
387
+ Returns the number of rngs given the same arguments passed by the user when
388
+ calling the distribution
389
+ cls.ndim_supp
390
+ Returns the support of the symbolic distribution, given the default set of
391
+ parameters. This may not always be constant, for instance if the symbolic
392
+ distribution can be defined based on an arbitrary base distribution.
393
+ cls.rv_op
394
+ Returns a TensorVariable that represents the symbolic distribution
395
+ parametrized by a default set of parameters and a size and rngs arguments
396
+ cls.change_size
397
+ Returns an equivalent symbolic distribution with a different size. This is
398
+ analogous to `pymc.aesaraf.change_rv_size` for `RandomVariable`s.
399
+ """
400
+
367
401
def __new__ (
368
402
cls ,
369
403
name : str ,
@@ -379,37 +413,6 @@ def __new__(
379
413
"""Adds a TensorVariable corresponding to a PyMC symbolic distribution to the
380
414
current model.
381
415
382
- While traditional PyMC distributions are represented by a single RandomVariable
383
- graph, Symbolic distributions correspond to a larger graph that contains one or
384
- more RandomVariables and an arbitrary number of deterministic operations, which
385
- represent their own kind of distribution.
386
-
387
- The graphs returned by symbolic distributions can be evaluated directly to
388
- obtain valid draws and can further be parsed by Aeppl to derive the
389
- corresponding logp at runtime.
390
-
391
- Check pymc.distributions.Censored for an example of a symbolic distribution.
392
-
393
- Symbolic distributions must implement the following classmethods:
394
- cls.dist
395
- Performs input validation and converts optional alternative parametrizations
396
- to a canonical parametrization. It should call `super().dist()`, passing a
397
- list with the default parameters as the first and only non keyword argument,
398
- followed by other keyword arguments like size and rngs, and return the result
399
- cls.num_rngs
400
- Returns the number of rngs given the same arguments passed by the user when
401
- calling the distribution
402
- cls.ndim_supp
403
- Returns the support of the symbolic distribution, given the default set of
404
- parameters. This may not always be constant, for instance if the symbolic
405
- distribution can be defined based on an arbitrary base distribution.
406
- cls.rv_op
407
- Returns a TensorVariable that represents the symbolic distribution
408
- parametrized by a default set of parameters and a size and rngs arguments
409
- cls.change_size
410
- Returns an equivalent symbolic distribution with a different size. This is
411
- analogous to `pymc.aesaraf.change_rv_size` for `RandomVariable`s.
412
-
413
416
Parameters
414
417
----------
415
418
cls : type
@@ -524,7 +527,6 @@ def dist(
524
527
The inputs to the `RandomVariable` `Op`.
525
528
shape : int, tuple, Variable, optional
526
529
A tuple of sizes for each dimension of the new RV.
527
-
528
530
An Ellipsis (...) may be inserted in the last position to short-hand refer to
529
531
all the dimensions that the RV would get if no shape/size/dims were passed at all.
530
532
size : int, tuple, Variable, optional
0 commit comments