Ejemplo n.º 1
0
    def test_populate_shape(self):

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)
        modobj.populate(self.nsim)

        self.assertEqual(self.params_shape, modobj.params_shape)
Ejemplo n.º 2
0
    def test_model_jk(self):
        """ Test that I've understood J and K correctly """

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)

        self.assertEqual(self.J, modobj.model.model.J)
        self.assertEqual(self.K, modobj.model.model.K)
Ejemplo n.º 3
0
    def test_model_params_shape(self):
        """ Test that I've understood n_params properly """

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)

        # ravel (flatten) the parameters to get their number
        self.assertEqual(self.n_params, len(np.ravel(modobj.model.params)))
        self.assertEqual(self.params_shape, modobj.model.params.shape)
Ejemplo n.º 4
0
    def test_private_draw_betas_shape(self):
        """ Test that drawn betas have correct shape """

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)

        betas_100 = SMMNLogit._draw_betas(modobj.model, 100)
        betas_1 = SMMNLogit._draw_betas(modobj.model, 1)

        self.assertEqual((100, self.n_params), betas_100.shape)
        self.assertEqual((1, self.n_params), betas_1.shape)
Ejemplo n.º 5
0
    def test_predict_insert_into_df(self):

        ts = 0
        te = self.n - 1

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)
        modobj.populate(self.nsim)
        prediction, varname = modobj.predict(sim=0, data=self.df.loc[ts:te])

        self.df[varname] = 0
        self.df.loc[ts:te, varname] = prediction[0]
Ejemplo n.º 6
0
    def test_private_extract_classes_from_model(self):

        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)
        model = modobj.model

        classes_from_func = SMMNLogit._extract_classes_from_model(model)

        classes_from_data = self.df['conflict'].unique()

        for c in classes_from_data:
            self.assertIn(c, classes_from_func)
Ejemplo n.º 7
0
    def test_save_load(self):

        with tempfile.TemporaryDirectory() as tempdir:
            fname = "smnlogit_testing.hdf5"
            path = os.path.join(tempdir, fname)

            # Set the descriptions path_output to this temp dir
            this_desc = self.model_description.copy()
            this_desc['path_output'] = path

            modobj_saving = SMMNLogit(this_desc)
            modobj_saving.train(df=self.df)
            modobj_saving.populate(nsim=self.nsim)
            modobj_saving.save()

            modobj_loaded = SMMNLogit(this_desc)
            modobj_loaded.from_file()

            same_beta = np.array_equal(modobj_saving.betas,
                                       modobj_loaded.betas)
            self.assertTrue(same_beta)
            self.assertEqual(modobj_saving.lhsvar, modobj_loaded.lhsvar)
            self.assertEqual(modobj_saving.formula, modobj_loaded.formula)
Ejemplo n.º 8
0
 def test_predict_returns_tuple(self):
     modobj = SMMNLogit(self.model_description)
     modobj.train(self.df)
     modobj.populate(self.nsim)
     prediction = modobj.predict(sim=0, data=self.df.loc[5])
     self.assertIsInstance(prediction, tuple)
Ejemplo n.º 9
0
    def test_populate_sets_lhsvar(self):
        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)
        modobj.populate(self.nsim)

        self.assertEqual(modobj.lhsvar, "conflict")
Ejemplo n.º 10
0
    def test_train_sets_summary(self):
        modobj = SMMNLogit(self.model_description)
        modobj.train(self.df)

        self.assertIsInstance(modobj.summary, str)