Exemple #1
0
    def test_update_sufficient_statistics(self):
        """Test sufficient statistics correctly updated."""
        n = 10
        for i in range(10):
            x = np.random.uniform(-100, 100, n)
            jx = 2 * np.ones_like(x)
            sumx = x.sum()
            sumx2 = (x**2).sum()
            logJX = np.log(jx).sum()
            f = FStudentT(x, jx, 1., 10., 10., "test")
            stats = f.get_sufficient_statistics()
            self.assertAlmostEqual(stats[0], sumx, delta=1e-4)
            self.assertAlmostEqual(stats[1], sumx2, delta=1e-2)
            self.assertAlmostEqual(stats[2], n, delta=1e-6)
            self.assertAlmostEqual(f.get_LogJX(), logJX, delta=1e-6)

            x = np.random.uniform(-100, 100, n)
            jx = 3 * np.ones_like(x)
            sumx = x.sum()
            sumx2 = (x**2).sum()
            logJX = np.log(jx).sum()
            f.update_sufficient_statistics(x, jx)
            stats = f.get_sufficient_statistics()
            self.assertAlmostEqual(stats[0], sumx, delta=1e-4)
            self.assertAlmostEqual(stats[1], sumx2, delta=1e-2)
            self.assertAlmostEqual(stats[2], n, delta=1e-6)
            self.assertAlmostEqual(f.get_LogJX(), logJX, delta=1e-6)
Exemple #2
0
 def test_create_from_sufficient_statistics(self):
     """Test constructor with sufficient stats."""
     n = 10
     for i in range(10):
         x = np.random.uniform(-100, 100, n)
         jx = 2 * np.ones_like(x)
         sumx = x.sum()
         sumx2 = (x**2).sum()
         logJX = np.log(jx).sum()
         f = FStudentT(sumx, sumx2, n, logJX, 1., 10., 10., "test")
         stats = f.get_sufficient_statistics()
         self.assertAlmostEqual(stats[0], sumx, delta=1e-4)
         self.assertAlmostEqual(stats[1], sumx2, delta=1e-2)
         self.assertAlmostEqual(stats[2], n, delta=1e-6)
         self.assertAlmostEqual(f.get_LogJX(), logJX, delta=1e-6)