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)))
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() ''' >>> formula.Formula(fac).design() array([[ 1., 0., 0.], [ 1., 0., 0.], [ 1., 0., 0.], [ 0., 1., 0.], [ 0., 1., 0.], [ 0., 1., 0.], [ 0., 0., 1.], [ 0., 0., 1.]]) >>> contrast.Contrast(formula.Term('(ff==a)'), fac).matrix Traceback (most recent call last): File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 112, in _get_matrix
if __name__ == '__main__': import numpy.random as R n = 100 X = np.array([0]*n + [1]*n) b = 0.4 lin = 1 + b*X Y = R.standard_exponential((2*n,)) / lin delta = R.binomial(1, 0.9, size=(2*n,)) subjects = [Observation(Y[i], delta[i]) for i in range(2*n)] for i in range(2*n): subjects[i].X = X[i] import statsmodels.sandbox.formula as F x = F.Quantitative('X') f = F.Formula(x) c = CoxPH(subjects, f) # c.cache() # temp file cleanup doesn't work on windows c = CoxPH(subjects, f, time_dependent=True) c.cache() #this creates tempfile cache, # no tempfile cache is created in normal use of CoxPH #res = c.newton([0.4]) #doesn't work anymore res=c.fit([0.4],method="bfgs") print res.params print dir(c) #print c.fit(Y)