|
17 | 17 | from scipy import stats
|
18 | 18 | import warnings
|
19 | 19 |
|
20 |
| -from pymc3.util import get_variable_name |
21 | 20 | from .dist_math import bound, factln, binomln, betaln, logpow, random_choice
|
22 | 21 | from .distribution import Discrete, draw_values, generate_samples
|
23 | 22 | from .shape_utils import broadcast_distribution_samples
|
@@ -123,15 +122,6 @@ def logp(self, value):
|
123 | 122 | 0 <= value, value <= n,
|
124 | 123 | 0 <= p, p <= 1)
|
125 | 124 |
|
126 |
| - def _repr_latex_(self, name=None, dist=None): |
127 |
| - if dist is None: |
128 |
| - dist = self |
129 |
| - n = dist.n |
130 |
| - p = dist.p |
131 |
| - name = r'\text{%s}' % name |
132 |
| - return r'${} \sim \text{{Binomial}}(\mathit{{n}}={},~\mathit{{p}}={})$'.format(name, |
133 |
| - get_variable_name(n), |
134 |
| - get_variable_name(p)) |
135 | 125 |
|
136 | 126 | class BetaBinomial(Discrete):
|
137 | 127 | R"""
|
@@ -259,16 +249,6 @@ def logp(self, value):
|
259 | 249 | value >= 0, value <= self.n,
|
260 | 250 | alpha > 0, beta > 0)
|
261 | 251 |
|
262 |
| - def _repr_latex_(self, name=None, dist=None): |
263 |
| - if dist is None: |
264 |
| - dist = self |
265 |
| - alpha = dist.alpha |
266 |
| - beta = dist.beta |
267 |
| - name = r'\text{%s}' % name |
268 |
| - return r'${} \sim \text{{BetaBinomial}}(\mathit{{alpha}}={},~\mathit{{beta}}={})$'.format(name, |
269 |
| - get_variable_name(alpha), |
270 |
| - get_variable_name(beta)) |
271 |
| - |
272 | 252 |
|
273 | 253 | class Bernoulli(Discrete):
|
274 | 254 | R"""Bernoulli log-likelihood
|
@@ -371,13 +351,8 @@ def logp(self, value):
|
371 | 351 | value >= 0, value <= 1,
|
372 | 352 | p >= 0, p <= 1)
|
373 | 353 |
|
374 |
| - def _repr_latex_(self, name=None, dist=None): |
375 |
| - if dist is None: |
376 |
| - dist = self |
377 |
| - p = dist.p |
378 |
| - name = r'\text{%s}' % name |
379 |
| - return r'${} \sim \text{{Bernoulli}}(\mathit{{p}}={})$'.format(name, |
380 |
| - get_variable_name(p)) |
| 354 | + def _distr_parameters_for_repr(self): |
| 355 | + return ["p"] |
381 | 356 |
|
382 | 357 |
|
383 | 358 | class DiscreteWeibull(Discrete):
|
@@ -486,16 +461,6 @@ def random(self, point=None, size=None):
|
486 | 461 | dist_shape=self.shape,
|
487 | 462 | size=size)
|
488 | 463 |
|
489 |
| - def _repr_latex_(self, name=None, dist=None): |
490 |
| - if dist is None: |
491 |
| - dist = self |
492 |
| - q = dist.q |
493 |
| - beta = dist.beta |
494 |
| - name = r'\text{%s}' % name |
495 |
| - return r'${} \sim \text{{DiscreteWeibull}}(\mathit{{q}}={},~\mathit{{beta}}={})$'.format(name, |
496 |
| - get_variable_name(q), |
497 |
| - get_variable_name(beta)) |
498 |
| - |
499 | 464 |
|
500 | 465 | class Poisson(Discrete):
|
501 | 466 | R"""
|
@@ -590,14 +555,6 @@ def logp(self, value):
|
590 | 555 | return tt.switch(tt.eq(mu, 0) * tt.eq(value, 0),
|
591 | 556 | 0, log_prob)
|
592 | 557 |
|
593 |
| - def _repr_latex_(self, name=None, dist=None): |
594 |
| - if dist is None: |
595 |
| - dist = self |
596 |
| - mu = dist.mu |
597 |
| - name = r'\text{%s}' % name |
598 |
| - return r'${} \sim \text{{Poisson}}(\mathit{{mu}}={})$'.format(name, |
599 |
| - get_variable_name(mu)) |
600 |
| - |
601 | 558 |
|
602 | 559 | class NegativeBinomial(Discrete):
|
603 | 560 | R"""
|
@@ -717,16 +674,6 @@ def logp(self, value):
|
717 | 674 | Poisson.dist(self.mu).logp(value),
|
718 | 675 | negbinom)
|
719 | 676 |
|
720 |
| - def _repr_latex_(self, name=None, dist=None): |
721 |
| - if dist is None: |
722 |
| - dist = self |
723 |
| - mu = dist.mu |
724 |
| - alpha = dist.alpha |
725 |
| - name = r'\text{%s}' % name |
726 |
| - return r'${} \sim \text{{NegativeBinomial}}(\mathit{{mu}}={},~\mathit{{alpha}}={})$'.format(name, |
727 |
| - get_variable_name(mu), |
728 |
| - get_variable_name(alpha)) |
729 |
| - |
730 | 677 |
|
731 | 678 | class Geometric(Discrete):
|
732 | 679 | R"""
|
@@ -810,14 +757,6 @@ def logp(self, value):
|
810 | 757 | return bound(tt.log(p) + logpow(1 - p, value - 1),
|
811 | 758 | 0 <= p, p <= 1, value >= 1)
|
812 | 759 |
|
813 |
| - def _repr_latex_(self, name=None, dist=None): |
814 |
| - if dist is None: |
815 |
| - dist = self |
816 |
| - p = dist.p |
817 |
| - name = r'\text{%s}' % name |
818 |
| - return r'${} \sim \text{{Geometric}}(\mathit{{p}}={})$'.format(name, |
819 |
| - get_variable_name(p)) |
820 |
| - |
821 | 760 |
|
822 | 761 | class DiscreteUniform(Discrete):
|
823 | 762 | R"""
|
@@ -913,16 +852,6 @@ def logp(self, value):
|
913 | 852 | return bound(-tt.log(upper - lower + 1),
|
914 | 853 | lower <= value, value <= upper)
|
915 | 854 |
|
916 |
| - def _repr_latex_(self, name=None, dist=None): |
917 |
| - if dist is None: |
918 |
| - dist = self |
919 |
| - lower = dist.lower |
920 |
| - upper = dist.upper |
921 |
| - name = r'\text{%s}' % name |
922 |
| - return r'${} \sim \text{{DiscreteUniform}}(\mathit{{lower}}={},~\mathit{{upper}}={})$'.format(name, |
923 |
| - get_variable_name(lower), |
924 |
| - get_variable_name(upper)) |
925 |
| - |
926 | 855 |
|
927 | 856 | class Categorical(Discrete):
|
928 | 857 | R"""
|
@@ -1044,14 +973,6 @@ def logp(self, value):
|
1044 | 973 | return bound(a, value >= 0, value <= (k - 1),
|
1045 | 974 | tt.all(p_ >= 0, axis=-1), tt.all(p <= 1, axis=-1))
|
1046 | 975 |
|
1047 |
| - def _repr_latex_(self, name=None, dist=None): |
1048 |
| - if dist is None: |
1049 |
| - dist = self |
1050 |
| - p = dist.p |
1051 |
| - name = r'\text{%s}' % name |
1052 |
| - return r'${} \sim \text{{Categorical}}(\mathit{{p}}={})$'.format(name, |
1053 |
| - get_variable_name(p)) |
1054 |
| - |
1055 | 976 |
|
1056 | 977 | class Constant(Discrete):
|
1057 | 978 | r"""
|
@@ -1112,12 +1033,6 @@ def logp(self, value):
|
1112 | 1033 | c = self.c
|
1113 | 1034 | return bound(0, tt.eq(value, c))
|
1114 | 1035 |
|
1115 |
| - def _repr_latex_(self, name=None, dist=None): |
1116 |
| - if dist is None: |
1117 |
| - dist = self |
1118 |
| - name = r'\text{%s}' % name |
1119 |
| - return r'${} \sim \text{{Constant}}()$'.format(name) |
1120 |
| - |
1121 | 1036 |
|
1122 | 1037 | ConstantDist = Constant
|
1123 | 1038 |
|
@@ -1231,16 +1146,6 @@ def logp(self, value):
|
1231 | 1146 | 0 <= psi, psi <= 1,
|
1232 | 1147 | 0 <= theta)
|
1233 | 1148 |
|
1234 |
| - def _repr_latex_(self, name=None, dist=None): |
1235 |
| - if dist is None: |
1236 |
| - dist = self |
1237 |
| - theta = dist.theta |
1238 |
| - psi = dist.psi |
1239 |
| - name = r'\text{%s}' % name |
1240 |
| - return r'${} \sim \text{{ZeroInflatedPoisson}}(\mathit{{theta}}={},~\mathit{{psi}}={})$'.format(name, |
1241 |
| - get_variable_name(theta), |
1242 |
| - get_variable_name(psi)) |
1243 |
| - |
1244 | 1149 |
|
1245 | 1150 | class ZeroInflatedBinomial(Discrete):
|
1246 | 1151 | R"""
|
@@ -1354,22 +1259,6 @@ def logp(self, value):
|
1354 | 1259 | 0 <= psi, psi <= 1,
|
1355 | 1260 | 0 <= p, p <= 1)
|
1356 | 1261 |
|
1357 |
| - def _repr_latex_(self, name=None, dist=None): |
1358 |
| - if dist is None: |
1359 |
| - dist = self |
1360 |
| - n = dist.n |
1361 |
| - p = dist.p |
1362 |
| - psi = dist.psi |
1363 |
| - |
1364 |
| - name_n = get_variable_name(n) |
1365 |
| - name_p = get_variable_name(p) |
1366 |
| - name_psi = get_variable_name(psi) |
1367 |
| - name = r'\text{%s}' % name |
1368 |
| - return (r'${} \sim \text{{ZeroInflatedBinomial}}' |
1369 |
| - r'(\mathit{{n}}={},~\mathit{{p}}={},~' |
1370 |
| - r'\mathit{{psi}}={})$' |
1371 |
| - .format(name, name_n, name_p, name_psi)) |
1372 |
| - |
1373 | 1262 |
|
1374 | 1263 | class ZeroInflatedNegativeBinomial(Discrete):
|
1375 | 1264 | R"""
|
@@ -1523,22 +1412,6 @@ def logp(self, value):
|
1523 | 1412 | 0 <= psi, psi <= 1,
|
1524 | 1413 | mu > 0, alpha > 0)
|
1525 | 1414 |
|
1526 |
| - def _repr_latex_(self, name=None, dist=None): |
1527 |
| - if dist is None: |
1528 |
| - dist = self |
1529 |
| - mu = dist.mu |
1530 |
| - alpha = dist.alpha |
1531 |
| - psi = dist.psi |
1532 |
| - |
1533 |
| - name_mu = get_variable_name(mu) |
1534 |
| - name_alpha = get_variable_name(alpha) |
1535 |
| - name_psi = get_variable_name(psi) |
1536 |
| - name = r'\text{%s}' % name |
1537 |
| - return (r'${} \sim \text{{ZeroInflatedNegativeBinomial}}' |
1538 |
| - r'(\mathit{{mu}}={},~\mathit{{alpha}}={},~' |
1539 |
| - r'\mathit{{psi}}={})$' |
1540 |
| - .format(name, name_mu, name_alpha, name_psi)) |
1541 |
| - |
1542 | 1415 |
|
1543 | 1416 | class OrderedLogistic(Categorical):
|
1544 | 1417 | R"""
|
@@ -1619,12 +1492,3 @@ def __init__(self, eta, cutpoints, *args, **kwargs):
|
1619 | 1492 | p = p_cum[..., 1:] - p_cum[..., :-1]
|
1620 | 1493 |
|
1621 | 1494 | super().__init__(p=p, *args, **kwargs)
|
1622 |
| - |
1623 |
| - def _repr_latex_(self, name=None, dist=None): |
1624 |
| - if dist is None: |
1625 |
| - dist = self |
1626 |
| - name_eta = get_variable_name(dist.eta) |
1627 |
| - name_cutpoints = get_variable_name(dist.cutpoints) |
1628 |
| - return (r'${} \sim \text{{OrderedLogistic}}' |
1629 |
| - r'(\mathit{{eta}}={}, \mathit{{cutpoints}}={}$' |
1630 |
| - .format(name, name_eta, name_cutpoints)) |
0 commit comments