Exemplo n.º 1
0
def test_ordered():
    check_vector_transform(tr.ordered, SortedVector(6))

    check_jacobian_det(tr.ordered, Vector(R, 2), aet.dvector, np.array([0, 0]), elemwise=False)

    vals = get_values(tr.ordered, Vector(R, 3), aet.dvector, np.zeros(3))
    close_to_logical(np.diff(vals) >= 0, True, tol)
Exemplo n.º 2
0
def test_chain():
    chain_tranf = tr.Chain([tr.logodds, tr.ordered])
    check_vector_transform(chain_tranf, UnitSortedVector(3))

    check_jacobian_det(chain_tranf, Vector(R, 4), aet.dvector, np.zeros(4), elemwise=False)

    vals = get_values(chain_tranf, Vector(R, 5), aet.dvector, np.zeros(5))
    close_to_logical(np.diff(vals) >= 0, True, tol)
 def test_mv_t(self):
     for n in [2, 3]:
         pymc3_random(MvStudentT, {'nu': Domain([5, 10, 25, 50]), 'Sigma': PdMatrix(n),
                                   'mu':Vector(R,n)}, size=100,
                  valuedomain=Vector(R,n),
                  ref_rand=(lambda nu=None, Sigma=None, mu=None, size=None:
                     mu + np.sqrt(nu)
                     * (st.multivariate_normal.rvs(cov=Sigma, size=size).T
                     / st.chi2.rvs(df=nu, size=size)).T))
Exemplo n.º 4
0
def test_stickbreaking_bounds():
    vals = get_values(tr.stick_breaking, Vector(R, 2), at.dvector,
                      np.array([0, 0]))

    close_to(vals.sum(axis=1), 1, tol)
    close_to_logical(vals > 0, True, tol)
    close_to_logical(vals < 1, True, tol)

    check_jacobian_det(tr.stick_breaking, Vector(R, 2), at.dvector,
                       np.array([0, 0]), lambda x: x[:-1])
Exemplo n.º 5
0
 def test_dirichlet(self):
     for n in [2, 3]:
         pymc3_random(Dirichlet, {'a': Vector(Rplus, n)},
                      valuedomain=Simplex(n),
                      size=100,
                      ref_rand=lambda a=None, size=None: st.dirichlet.rvs(
                          a, size=size))
Exemplo n.º 6
0
def test_sum_to_1():
    check_vector_transform(tr.sum_to_1, Simplex(2))
    check_vector_transform(tr.sum_to_1, Simplex(4))

    check_jacobian_det(
        tr.sum_to_1, Vector(Unit, 2), aet.dvector, np.array([0, 0]), lambda x: x[:-1]
    )
Exemplo n.º 7
0
def test_chain_jacob_det():
    chain_tranf = tr.Chain([tr.logodds, tr.ordered])
    check_jacobian_det(chain_tranf,
                       Vector(R, 4),
                       at.dvector,
                       np.zeros(4),
                       elemwise=False)
Exemplo n.º 8
0
def test_log_exp_m1():
    check_transform(tr.log_exp_m1, Rplusbig)

    check_jacobian_det(tr.log_exp_m1, Rplusbig, elemwise=True)
    check_jacobian_det(tr.log_exp_m1, Vector(Rplusbig, 2), aet.dvector, [0, 0], elemwise=True)

    vals = get_values(tr.log_exp_m1)
    close_to_logical(vals > 0, True, tol)
Exemplo n.º 9
0
def test_upperbound():
    trans = tr.upperbound(0.0)
    check_transform(trans, Rminusbig)

    check_jacobian_det(trans, Rminusbig, elemwise=True)
    check_jacobian_det(trans, Vector(Rminusbig, 2), aet.dvector, [-1, -1], elemwise=True)

    vals = get_values(trans)
    close_to_logical(vals < 0, True, tol)
Exemplo n.º 10
0
def test_lowerbound():
    trans = tr.lowerbound(0.0)
    check_transform(trans, Rplusbig)

    check_jacobian_det(trans, Rplusbig, elemwise=True)
    check_jacobian_det(trans, Vector(Rplusbig, 2), aet.dvector, [0, 0], elemwise=True)

    vals = get_values(trans)
    close_to_logical(vals > 0, True, tol)
Exemplo n.º 11
0
def test_logodds():
    check_transform(tr.logodds, Unit)

    check_jacobian_det(tr.logodds, Unit, elemwise=True)
    check_jacobian_det(tr.logodds, Vector(Unit, 2), aet.dvector, [0.5, 0.5], elemwise=True)

    vals = get_values(tr.logodds)
    close_to_logical(vals > 0, True, tol)
    close_to_logical(vals < 1, True, tol)
Exemplo n.º 12
0
def test_quad_limb_dark_transform():
    values = get_values(
        tr.quad_limb_dark,
        Vector(R, 2),
        constructor=tt.vector,
        test=np.array([0.0, 0.0]),
    )
    domain = namedtuple("Domain", ["vals"])(values)
    check_transform(
        tr.quad_limb_dark,
        domain,
        constructor=tt.vector,
        test=np.array([0.0, 0.0]),
    )
Exemplo n.º 13
0
def test_lowerbound():
    def transform_params(rv_var):
        return 0.0, None

    trans = tr.interval(transform_params)
    check_transform(trans, Rplusbig)

    check_jacobian_det(trans, Rplusbig, elemwise=True)
    check_jacobian_det(trans,
                       Vector(Rplusbig, 2),
                       at.dvector, [0, 0],
                       elemwise=True)

    vals = get_values(trans)
    close_to_logical(vals > 0, True, tol)
Exemplo n.º 14
0
def test_upperbound():
    def transform_params(rv_var):
        return None, 0.0

    trans = tr.interval(transform_params)
    check_transform(trans, Rminusbig)

    check_jacobian_det(trans, Rminusbig, elemwise=True)
    check_jacobian_det(trans,
                       Vector(Rminusbig, 2),
                       at.dvector, [-1, -1],
                       elemwise=True)

    vals = get_values(trans)
    close_to_logical(vals < 0, True, tol)
Exemplo n.º 15
0
 def test_multinomial(self):
    for n in [2, 3]:
        pymc3_random_discrete(Multinomial, {'p': Simplex(n), 'n' : Nat},
                     valuedomain=Vector(Nat, n), size=100,
                     ref_rand=lambda n=None, p=None, size=None: \
                         nr.multinomial(n, p, size=size))
Exemplo n.º 16
0
 def test_mv_normal(self):
     for n in [2, 3]:
         pymc3_random(MvNormal, {'mu':Vector(R,n), 'tau': PdMatrix(n)}, size=100,
                  valuedomain=Vector(R,n),
                  ref_rand=lambda mu=None, tau=None, size=None: \
                     st.multivariate_normal.rvs(mean=mu, cov=tau, size=size))
Exemplo n.º 17
0
def test_chain_values():
    chain_tranf = tr.Chain([tr.logodds, tr.ordered])
    vals = get_values(chain_tranf, Vector(R, 5), at.dvector, np.zeros(5))
    close_to_logical(np.diff(vals) >= 0, True, tol)