def test_factor3(self): f = ['a', 'b', 'c'] * 10 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} m = fac.main_effect(reference=1) m.namespace = fac.namespace self.assertEquals(m().shape, (2, 30))
def test_ordinal_factor2(self): f = ['b', 'c', 'a'] * 3 fac = formula.Factor('ff', ['a', 'b', 'c'], ordinal=True) fac.namespace = {'ff': f} assert_equal(fac(), [1, 2, 0] * 3) assert_equal(fac['a'], [0, 0, 1] * 3) assert_equal(fac['b'], [1, 0, 0] * 3) assert_equal(fac['c'], [0, 1, 0] * 3)
def test_factor5(self): f = ['a', 'b', 'c'] * 3 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} assert_equal(fac(), [[1, 0, 0] * 3, [0, 1, 0] * 3, [0, 0, 1] * 3]) assert_equal(fac['a'], [1, 0, 0] * 3) assert_equal(fac['b'], [0, 1, 0] * 3) assert_equal(fac['c'], [0, 0, 1] * 3)
def test_factor4(self): f = ['a', 'b', 'c'] * 10 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} m = fac.main_effect(reference=2) m.namespace = fac.namespace r = np.array([np.identity(3)] * 10) r.shape = (30, 3) r = r.T _m = np.array([r[0] - r[2], r[1] - r[2]]) assert_almost_equal(_m, m())
#Other #----- '''Exception if there is no data or key: >>> contrast.Contrast(formula.Term('a'), f2).matrix Traceback (most recent call last): File "c:\..\scikits\statsmodels\sandbox\contrast_old.py", line 112, in _get_matrix self.compute_matrix() File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 91, in compute_matrix T = np.transpose(np.array(t(*args, **kw))) File "c:\...\scikits\statsmodels\sandbox\formula.py", line 150, in __call__ If the term has no 'func' attribute, it returns KeyError: 'a' ''' f = ['a'] * 3 + ['b'] * 3 + ['c'] * 2 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} #Example: formula with factor # I don't manage to combine factors with formulas, e.g. a joint # designmatrix # also I don't manage to get contrast matrices with factors # it looks like I might have to add namespace for dummies myself ? # even then combining still doesn't work f5 = formula.Term('A') + fac namespace['A'] = form.namespace['A'] formula.Formula(fac).design() '''
def test_factor2(self): f = ['a', 'b', 'c'] * 10 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} self.assertEquals(fac().shape, (3, 30))
def test_factor1(self): f = ['a', 'b', 'c'] * 10 fac = formula.Factor('ff', f) fac.namespace = {'ff': f} self.assertEquals(list(fac.values()), f)