コード例 #1
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
 def test_add(self):
     t1 = formula.term("t1")
     t2 = formula.term("t2")
     f = t1 + t2
     self.assert_(isinstance(f, formula.formula))
     self.assert_(f.hasterm(t1))
     self.assert_(f.hasterm(t2))
コード例 #2
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
    def test_init(self):
        t1 = formula.term("trivial")
        sqr = lambda x: x*x

        t2 = formula.term("not_so_trivial", sqr, "sqr")

        self.assertRaises(ValueError, formula.term, "name", termname=0)
コード例 #3
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
 def test_termcolumns(self):
     t1 = formula.term("A")
     t2 = formula.term("B")
     f = t1 + t2 + t1 * t2
     def other(val):
         return N.array([3.2*val,4.342*val**2, 5.234*val**3])
     q = formula.quantitative(['other%d' % i for i in range(1,4)], termname='other', func=t1, transform=other)
     f += q
     q.namespace = f.namespace = self.formula.namespace
     assert_almost_equal(q(), f()[f.termcolumns(q)])
コード例 #4
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
    def test_mul(self):
        t1 = formula.term("t1")
        t2 = formula.term("t2")
        f = t1 * t2
        self.assert_(isinstance(f, formula.formula))

        intercept = formula.term("intercept")
        f = t1 * intercept
        self.assertEqual(str(f), str(formula.formula(t1)))

        f = intercept * t1
        self.assertEqual(str(f), str(formula.formula(t1)))
コード例 #5
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
 def test_contrast2(self):
 
     dummy = formula.term('zero')
     self.namespace['zero'] = N.zeros((40,), N.float64)
     term = dummy + self.terms[2]
     c = contrast.Contrast(term, self.formula)
     c.getmatrix()
     test = [0]*2 + [1] + [0]*7
     assert_almost_equal(c.matrix, test)
コード例 #6
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
    def setUp(self):
        self.X = R.standard_normal((40,10))
        self.namespace = {}
        self.terms = []
        for i in range(10):
            name = '%s' % string.uppercase[i]
            self.namespace[name] = self.X[:,i]
            self.terms.append(formula.term(name))

        self.formula = self.terms[0]
        for i in range(1, 10):
            self.formula += self.terms[i]
        self.formula.namespace = self.namespace
コード例 #7
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
 def test_contrast3(self):
 
     X = self.formula.design()
     P = N.dot(X, L.pinv(X))
     
     dummy = formula.term('noise')
     resid = N.identity(40) - P
     self.namespace['noise'] = N.transpose(N.dot(resid, R.standard_normal((40,5))))
     terms = dummy + self.terms[2]
     terms.namespace = self.formula.namespace
     c = contrast.Contrast(terms, self.formula)
     c.getmatrix()
     self.assertEquals(c.matrix.shape, (10,))
コード例 #8
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
    def test_namespace(self):
        space1 = {'X':N.arange(50), 'Y':N.arange(50)*2}
        space2 = {'X':N.arange(20), 'Y':N.arange(20)*2}
        X = formula.term('X')
        Y = formula.term('Y')

        X.namespace = space1 
        assert_almost_equal(X(), N.arange(50))

        Y.namespace = space2
        assert_almost_equal(Y(), N.arange(20)*2)

        f = X + Y

        f.namespace = space1
        self.assertEqual(f().shape, (2,50))
        assert_almost_equal(Y(), N.arange(50)*2)
        assert_almost_equal(X(), N.arange(50))

        f.namespace = space2
        self.assertEqual(f().shape, (2,20))
        assert_almost_equal(Y(), N.arange(20)*2)
        assert_almost_equal(X(), N.arange(20))
コード例 #9
0
ファイル: mixed.py プロジェクト: mbentz80/jzigbeercp
            self._compute_sigma(ML=ML)
            self._compute_D(ML=ML)
            if not self.cont(ML=ML):
                break
            

if __name__ == '__main__':
    import numpy.random as R

    nsubj = 400
    units  = []
    
    n = 3

    from scipy.sandbox.models.formula import term
    fixed = term('f')
    random = term('r')
    response = term('y')

    for i in range(nsubj):
        d = R.standard_normal()
        X = R.standard_normal((10,n))
        Z = X[0:2]
        Y = R.standard_normal((n,)) + d * 4
        units.append(Unit({'f':X, 'r':Z, 'y':Y}))

    #m = Mixed(units, response)#, fixed, random)
    m = Mixed(units, response, fixed, random)
    m.initialize()
    m.fit()
コード例 #10
0
ファイル: test_formula.py プロジェクト: mbentz80/jzigbeercp
 def test_str(self):
     t = formula.term("name")
     s = str(t)