Skip to content

Commit 529af2d

Browse files
author
Junpeng Lao
committed
More bug fixed
tidy up pm.timeseries and fixed *arg for `tau` fixed _repr_latex for Normalmixture
1 parent 81da7e8 commit 529af2d

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

pymc3/distributions/mixture.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ class NormalMixture(Mixture):
168168
def __init__(self, w, mu, *args, **kwargs):
169169
_, sd = get_tau_sd(tau=kwargs.pop('tau', None),
170170
sd=kwargs.pop('sd', None))
171-
171+
self.mu = mu = tt.as_tensor_variable(mu)
172+
self.sd = sd = tt.as_tensor_variable(sd)
172173
super(NormalMixture, self).__init__(w, Normal.dist(mu, sd=sd),
173174
*args, **kwargs)
174175

@@ -177,8 +178,8 @@ def _repr_latex_(self, name=None, dist=None):
177178
dist = self
178179
mu = dist.mu
179180
w = dist.w
180-
sigma = dist.sigma
181+
sd = dist.sd
181182
return r'${} \sim \text{{NormalMixture}}(\mathit{{w}}={}, \mathit{{mu}}={}, \mathit{{sigma}}={})$'.format(name,
182183
get_variable_name(w),
183184
get_variable_name(mu),
184-
get_variable_name(sigma))
185+
get_variable_name(sd))

pymc3/distributions/multivariate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ def WishartBartlett(name, S, nu, is_cholesky=False, return_cholesky=False, testv
696696
c = tt.sqrt(ChiSquared('c', nu - np.arange(2, 2 + n_diag), shape=n_diag,
697697
testval=diag_testval))
698698
pm._log.info('Added new variable c to model diagonal of Wishart.')
699-
z = Normal('z', 0, 1, shape=n_tril, testval=tril_testval)
699+
z = Normal('z', 0., 1., shape=n_tril, testval=tril_testval)
700700
pm._log.info('Added new variable z to model off-diagonals of Wishart.')
701701
# Construct A matrix
702702
A = tt.zeros(S.shape, dtype=np.float32)

pymc3/distributions/timeseries.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from theano import scan
33

44
from pymc3.util import get_variable_name
5+
from .continuous import get_tau_sd, Normal, Flat
56
from . import multivariate
6-
from . import continuous
77
from . import distribution
88

99
__all__ = [
@@ -41,9 +41,9 @@ def logp(self, x):
4141

4242
x_im1 = x[:-1]
4343
x_i = x[1:]
44-
boundary = continuous.Normal.dist(0, tau_e).logp
44+
boundary = Normal.dist(0., tau=tau_e).logp
4545

46-
innov_like = continuous.Normal.dist(k * x_im1, tau_e).logp(x_i)
46+
innov_like = Normal.dist(k * x_im1, tau=tau_e).logp(x_i)
4747
return boundary(x[0]) + tt.sum(innov_like) + boundary(x[-1])
4848

4949
def _repr_latex_(self, name=None, dist=None):
@@ -72,9 +72,10 @@ class GaussianRandomWalk(distribution.Continuous):
7272
distribution for initial value (Defaults to Flat())
7373
"""
7474

75-
def __init__(self, tau=None, init=continuous.Flat.dist(), sd=None, mu=0.,
75+
def __init__(self, tau=None, init=Flat.dist(), sd=None, mu=0.,
7676
*args, **kwargs):
7777
super(GaussianRandomWalk, self).__init__(*args, **kwargs)
78+
tau, sd = get_tau_sd(tau=tau, sd=sd)
7879
self.tau = tau = tt.as_tensor_variable(tau)
7980
self.sd = sd = tt.as_tensor_variable(sd)
8081
self.mu = mu = tt.as_tensor_variable(mu)
@@ -90,7 +91,7 @@ def logp(self, x):
9091
x_im1 = x[:-1]
9192
x_i = x[1:]
9293

93-
innov_like = continuous.Normal.dist(mu=x_im1 + mu, tau=tau, sd=sd).logp(x_i)
94+
innov_like = Normal.dist(mu=x_im1 + mu, sd=sd).logp(x_i)
9495
return init.logp(x[0]) + tt.sum(innov_like)
9596

9697
def _repr_latex_(self, name=None, dist=None):
@@ -125,8 +126,8 @@ class GARCH11(distribution.Continuous):
125126
initial_vol >= 0, distribution for initial volatility, sigma_0
126127
"""
127128

128-
def __init__(self, omega=None, alpha_1=None, beta_1=None,
129-
initial_vol=None, *args, **kwargs):
129+
def __init__(self, omega, alpha_1, beta_1,
130+
initial_vol, *args, **kwargs):
130131
super(GARCH11, self).__init__(*args, **kwargs)
131132

132133
self.omega = omega = tt.as_tensor_variable(omega)
@@ -150,7 +151,7 @@ def volatility_update(x, vol, w, a, b):
150151

151152
def logp(self, x):
152153
vol = self.get_volatility(x)
153-
return tt.sum(continuous.Normal.dist(0, sd=vol).logp(x))
154+
return tt.sum(Normal.dist(0., sd=vol).logp(x))
154155

155156
def _repr_latex_(self, name=None, dist=None):
156157
if dist is None:
@@ -188,7 +189,7 @@ def logp(self, x):
188189
f, g = self.sde_fn(x[:-1], *self.sde_pars)
189190
mu = xt + self.dt * f
190191
sd = tt.sqrt(self.dt) * g
191-
return tt.sum(continuous.Normal.dist(mu=mu, sd=sd).logp(x[1:]))
192+
return tt.sum(Normal.dist(mu=mu, sd=sd).logp(x[1:]))
192193

193194
def _repr_latex_(self, name=None, dist=None):
194195
if dist is None:
@@ -211,7 +212,7 @@ class MvGaussianRandomWalk(distribution.Continuous):
211212
init : distribution
212213
distribution for initial value (Defaults to Flat())
213214
"""
214-
def __init__(self, mu=0., cov=None, init=continuous.Flat.dist(),
215+
def __init__(self, mu=0., cov=None, init=Flat.dist(),
215216
*args, **kwargs):
216217
super(MvGaussianRandomWalk, self).__init__(*args, **kwargs)
217218
if cov is None:
@@ -260,7 +261,7 @@ class MvStudentTRandomWalk(distribution.Continuous):
260261
init : distribution
261262
distribution for initial value (Defaults to Flat())
262263
"""
263-
def __init__(self, nu, mu=0., cov=None, init=continuous.Flat.dist(),
264+
def __init__(self, nu, mu=0., cov=None, init=Flat.dist(),
264265
*args, **kwargs):
265266
super(MvStudentTRandomWalk, self).__init__(*args, **kwargs)
266267
self.mu = mu = tt.as_tensor_variable(mu)

0 commit comments

Comments
 (0)