def test_chi_square(self, exp): """Test chi-square distribution""" # test equal distribution tbl = np.array([[5, 5], [5, 5]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue(chi == 0.0) self.assertTrue(p == 1.0) # test perfect "generalization" tbl = np.array([[4, 0], [0, 4]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue(chi == 8.0) self.assertTrue(p < 0.05)
def test_chi_square(self, exp): """Test chi-square distribution""" # test equal distribution tbl = np.array([[5, 5], [5, 5]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue( chi == 0.0 ) self.assertTrue( p == 1.0 ) # test perfect "generalization" tbl = np.array([[4, 0], [0, 4]]) chi, p = chisquare(tbl, exp=exp) self.assertTrue(chi == 8.0) self.assertTrue(p < 0.05)
def test_chi_square_disbalanced(self): # test perfect "generalization" tbl = np.array([[1, 100], [1, 100]]) chi, p = chisquare(tbl, exp='indep_rows') self.assertTrue(chi == 0) self.assertTrue(p == 1) chi, p = chisquare(tbl, exp='uniform') self.assertTrue(chi > 194) self.assertTrue(p < 1e-10) # by default lets do uniform chi_, p_ = chisquare(tbl) self.assertTrue(chi == chi_) self.assertTrue(p == p_)
def getconfusion(data): cv(data) return chisquare(cv.ca.stats.matrix)[0]