Example #1
0
 def testParameterEstimation(self):
     
     mu, shape = 1, 3
     data = numpy.random.wald(mu, shape, 100000)
     
     pdf = InverseGaussian(1, 1)
     pdf.estimate(data)
     
     self.assertAlmostEqual(pdf.mu, mu, places=2)
     self.assertAlmostEqual(pdf.shape, shape, delta=0.05)
Example #2
0
    def testParameterEstimation(self):

        mu, shape = 1, 3
        data = numpy.random.wald(mu, shape, 100000)

        pdf = InverseGaussian(1, 1)
        pdf.estimate(data)

        self.assertAlmostEqual(pdf.mu, mu, places=2)
        self.assertAlmostEqual(pdf.shape, shape, delta=0.05)
Example #3
0
 def testParameters(self):
 
     pdf = InverseGaussian(1.5, 2.5)
     pdf.mu = 3
     pdf.shape = 4
     
     self.assertEqual(pdf.mu, 3)
     self.assertEqual(pdf.shape, 4)
     self.assertEqual(pdf.mu, pdf['mu'])
     
     def propertyAssignment():
         pdf.shape = -1
     def directAssignment():
         pdf['shape'] = -1
     
     self.assertRaises(ParameterValueError, propertyAssignment)
     self.assertRaises(ParameterValueError, directAssignment)
Example #4
0
    def testParameters(self):

        pdf = InverseGaussian(1.5, 2.5)
        pdf.mu = 3
        pdf.shape = 4

        self.assertEqual(pdf.mu, 3)
        self.assertEqual(pdf.shape, 4)
        self.assertEqual(pdf.mu, pdf['mu'])

        def propertyAssignment():
            pdf.shape = -1

        def directAssignment():
            pdf['shape'] = -1

        self.assertRaises(ParameterValueError, propertyAssignment)
        self.assertRaises(ParameterValueError, directAssignment)
Example #5
0
    def testRandom(self):
        
        ig = InverseGaussian(1., 1.)
        samples = ig.random(1000000)
        mu = numpy.mean(samples)
        var = numpy.var(samples)
        
        self.assertAlmostEqual(ig.mu, mu, delta=1e-1)
        self.assertAlmostEqual(ig.mu ** 3 / ig.shape, var, delta=1e-1)

        ig = InverseGaussian(3., 6.)

        samples = ig.random(1000000)
        mu = numpy.mean(samples)
        var = numpy.var(samples)
        
        self.assertAlmostEqual(ig.mu, mu, delta=1e-1)
        self.assertAlmostEqual(ig.mu ** 3 / ig.shape, var, delta=5e-1)
Example #6
0
    def testLogProb(self):

        ig = InverseGaussian(1., 1.)

        self.assertAlmostEqual(ig(1.),
                               numpy.sqrt(1 / (2 * numpy.pi)),
                               delta=1e-5)
        self.assertAlmostEqual(
            ig(2.),
            (numpy.sqrt(1 / (2 * numpy.pi * 2**3)) * numpy.exp(-1. / 4.)),
            delta=1e-5)
Example #7
0
    def testParameterValidation(self):
        """
        @see: [CSB 0000132]
        """
        self.assertRaises(ParameterValueError, InverseGaussian, -1, 1)

        pdf = InverseGaussian()
        data = [3.1, 1.15, 6.86, 0.69, -1.73, -2.91, -2.2800744]

        def testMu(v):
            pdf['mu'] = v
            pdf.mu = v

        self.assertRaises(ParameterValueError, testMu, -1)
        self.assertRaises(EstimationFailureError, pdf.estimate, data)
Example #8
0
    def testRandom(self):

        ig = InverseGaussian(1., 1.)
        samples = ig.random(1000000)
        mu = numpy.mean(samples)
        var = numpy.var(samples)

        self.assertAlmostEqual(ig.mu, mu, delta=1e-1)
        self.assertAlmostEqual(ig.mu**3 / ig.shape, var, delta=1e-1)

        ig = InverseGaussian(3., 6.)

        samples = ig.random(1000000)
        mu = numpy.mean(samples)
        var = numpy.var(samples)

        self.assertAlmostEqual(ig.mu, mu, delta=1e-1)
        self.assertAlmostEqual(ig.mu**3 / ig.shape, var, delta=5e-1)