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)
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
def setUpClass(cls): """Test reference Link construction""" cls._link = glm.NominalLink(ratio='reference')
def setUpClass(cls): """Test reference FLink construction""" cls._link = glm.NominalLink(ratio='reference', distribution=cls._dist)
def setUpClass(cls): """Test Nominal Link construction""" cls._link = glm.NominalLink()