def test_contrast2(self): dummy = formula.Term('zero') self.namespace['zero'] = np.zeros((40, ), np.float64) term = dummy + self.terms[2] c = contrast.Contrast(term, self.formula) test = [0] * 2 + [1] + [0] * 7 assert_almost_equal(c.matrix, test)
def test_contrast1(self): term = self.terms[0] + self.terms[2] c = contrast.Contrast(term, self.formula) col1 = self.formula.termcolumns(self.terms[0], dict=False) col2 = self.formula.termcolumns(self.terms[1], dict=False) test = [[1] + [0] * 9, [0] * 2 + [1] + [0] * 7] assert_almost_equal(c.matrix, test)
def test_contrast4(self): f = self.formula + self.terms[5] + self.terms[5] f.namespace = self.namespace estimable = False c = contrast.Contrast(self.terms[5], f) self.assertEquals(estimable, False)
def test_contrast3(self): X = self.formula.design() P = np.dot(X, L.pinv(X)) dummy = formula.Term('noise') resid = np.identity(40) - P self.namespace['noise'] = np.transpose( np.dot(resid, R.standard_normal((40, 5)))) terms = dummy + self.terms[2] terms.namespace = self.formula.namespace c = contrast.Contrast(terms, self.formula) self.assertEquals(c.matrix.shape, (10, ))
''' print(form.hasterm('C')) print(form.termcolumns(formula.Term('C'))) #doesn't work with string argument #Example: use two columns and get contrast f2 = (form['A'] + form['B']) print(f2) print(repr(f2)) list(iterkeys(f2.namespace)) #namespace is still empty f2.namespace = namespace #associate data iterkeys(f2.namespace) f2.design().shape contrast.Contrast(formula.Term('A'), f2).matrix ''' >>> f2 = (form['A']+form['B']) >>> print f2 <formula: A + B> >>> print repr(f2) <statsmodels.sandbox.formula.Formula object at 0x036BAE70> >>> f2.namespace.keys() #namespace is still empty [] >>> f2.namespace = namespace #associate data >>> f2.namespace.keys() ['A', 'C', 'B', 'E', 'D', 'G', 'F', 'I', 'H', 'J'] >>> f2.design().shape (40, 2) >>> contrast.Contrast(formula.Term('A'), f2).matrix array([ 1., 0.])