Example #1
0
 def test_get_set_regression(self):
     """Test hierarchical regression get and set regression model"""
     model_root = self._model.get_regression("")
     model_root.predictor = self._pred
     model_root.link = glm.OrdinalLink(ratio='cumulative')
     self._model.set_regression("", model_root)
     model_B = self._model.get_regression("B")
     model_B.predictor = self._pred
     model_B.link = glm.NominalLink(ratio='reference')
     self._model.set_regression("B", model_B)
Example #2
0
class TestReferenceRegression(unittest.TestCase,
                              AbstractTestCategoricalRegression):
    _alpha = linalg.Vector([1., 2.])
    _delta = linalg.Matrix([[-1.5, 2.], [-2., 2.5]])
    _x = [1, 1.6]
    _nb_param = 6
    _eta = linalg.Vector([2.7, 4.])
    _canonical_link = glm.NominalLink(ratio='reference')
    _norm = 1 + math.exp(_eta[0]) + math.exp(_eta[1])
    _mu = linalg.Vector(
        [math.exp(_eta[0]) / _norm,
         math.exp(_eta[1]) / _norm, 1 / _norm])
    _categories = {'Bb', 'Bc', 'Ba'}
    _places = 10

    @classmethod
    def setUpClass(cls):
        """Test reference regression construction"""
        cls.predictor_init()
        nss = core.NominalSampleSpace(*cls._categories)
        cls._model = glm.NominalRegression(nss, cls._pred, cls._canonical_link)

    def test_get_nb_parameters(self):
        """Test reference regression get number of parameters"""
        self.assertEqual(self._model.nb_parameters, self._nb_param)

    def test_conditional(self):
        """Test reference regression conditional operator"""
        response_distribution = self._model(*self._x)
        self.assertAlmostEqual(response_distribution.pdf('Ba'),
                               self._mu[0],
                               places=self._places)
        self.assertAlmostEqual(response_distribution.pdf('Bb'),
                               self._mu[1],
                               places=self._places)
        self.assertAlmostEqual(response_distribution.pdf('Bc'),
                               self._mu[2],
                               places=self._places)

    @classmethod
    def tearDownClass(cls):
        """Test reference regression deletion"""
        del cls._model
Example #3
0
 def setUpClass(cls):
     """Test reference Link construction"""
     cls._link = glm.NominalLink(ratio='reference')      
Example #4
0
 def setUpClass(cls):
     """Test reference FLink construction"""
     cls._link = glm.NominalLink(ratio='reference', distribution=cls._dist)      
Example #5
0
 def setUpClass(cls):
     """Test Nominal Link construction"""
     cls._link = glm.NominalLink()