Exemplo n.º 1
0
    def test_gamma_gamma(self):
        x_data = np.array([0.1, 0.5, 3.3, 2.7])

        alpha0 = 0.5
        beta0 = 1.75
        alpha_likelihood = 2.3
        beta = rvs.Gamma(alpha0, beta0)
        x = rvs.Gamma(alpha_likelihood, beta, sample_shape=4)

        beta_cond = ed.complete_conditional(beta, [beta, x])

        self.assertIsInstance(beta_cond, rvs.Gamma)

        with self.test_session() as sess:
            alpha_val, beta_val = sess.run(
                [beta_cond.concentration, beta_cond.rate], {x: x_data})
        self.assertAllClose(alpha_val, alpha0 + alpha_likelihood * len(x_data))
        self.assertAllClose(beta_val, beta0 + x_data.sum())
Exemplo n.º 2
0
  def test_gamma_exponential(self):
    x_data = np.array([0.1, 0.5, 3.3, 2.7])

    alpha0 = 0.5
    beta0 = 1.75
    lam = rvs.Gamma(alpha=alpha0, beta=beta0)
    x = rvs.Exponential(lam=lam, sample_shape=4)

    lam_cond = ed.complete_conditional(lam, [lam, x])

    self.assertIsInstance(lam_cond, rvs.Gamma)

    with self.test_session() as sess:
      alpha_val, beta_val = sess.run(
          [lam_cond.alpha, lam_cond.beta], {x: x_data})

    self.assertAllClose(alpha_val, alpha0 + len(x_data))
    self.assertAllClose(beta_val, beta0 + x_data.sum())
Exemplo n.º 3
0
  def test_gamma_poisson(self):
    x_data = np.array([0, 1, 0, 7, 0, 0, 2, 0, 0, 1])

    alpha0 = 0.5
    beta0 = 1.75
    lam = rvs.Gamma(alpha=alpha0, beta=beta0)
    # use value since cannot sample
    x = rvs.Poisson(lam=lam, value=tf.zeros(10), sample_shape=10)

    lam_cond = ed.complete_conditional(lam, [lam, x])

    self.assertIsInstance(lam_cond, rvs.Gamma)

    with self.test_session() as sess:
      alpha_val, beta_val = sess.run(
          [lam_cond.alpha, lam_cond.beta], {x: x_data})

    self.assertAllClose(alpha_val, alpha0 + x_data.sum())
    self.assertAllClose(beta_val, beta0 + len(x_data))