def polynomial(lowbound, highbound, betas, covas, num=40): betas = np.array(betas) covas = np.mat(covas) if covas.shape[0] != covas.shape[1] and len(betas) != covas.shape[0]: return "Error: Please provide a complete covariance matrix." if np.any(linalg.eig(covas)[0] < 0): return "Error: Covariance matrix is not positive definite." xx = np.linspace(lowbound, highbound, num=num) xxs = {} for x in xx: xvec = np.mat([[1, x, x**2, x**3][0:len(betas)]]) serr = np.sqrt(xvec * covas * np.transpose(xvec)) xxs[x] = (betas.dot(np.squeeze(np.asarray(xvec))), serr[0,0]) return SplineModel.create_gaussian(xxs, xx, False)
import sys, StringIO sys.path.append("../lib/models") from model import Model from ddp_model import DDPModel from spline_model import SplineModel mod1 = DDPModel.create_lin([0, 1], dict(control=[.5, .5], treatment=[0, 1])) mod2 = DDPModel.create_lin([0, 1], dict(control=[.5, .5], treatment=[1, 0])) def printmod(mod): output = StringIO.StringIO() mod.write(output, ',') print output.getvalue() printmod(Model.combine([mod1, mod2], [.5, .5])) printmod(Model.combine([mod1, mod2], [.25, 2])) mod1 = SplineModel.create_gaussian(dict(control=(0, 1), treatment=(1, 1e-3))) mod2 = SplineModel.create_gaussian(dict(control=(0, 1), treatment=(0, 1e-3))) def printmod2(mod): output = StringIO.StringIO() mod.write_gaussian_plus(output, ',') print output.getvalue() printmod2(Model.combine([mod1, mod2], [.5, .5])) printmod2(Model.combine([mod1, mod2], [.25, 2]))
from model import Model from ddp_model import DDPModel from spline_model import SplineModel mod1 = DDPModel.create_lin([0, 1], dict(control=[.5, .5], treatment=[0, 1])) mod2 = DDPModel.create_lin([0, 1], dict(control=[.5, .5], treatment=[1, 0])) def printmod(mod): output = StringIO.StringIO() mod.write(output, ',') print output.getvalue() printmod(Model.combine([mod1, mod2], [.5, .5])) printmod(Model.combine([mod1, mod2], [.25, 2])) mod1 = SplineModel.create_gaussian(dict(control=(0, 1), treatment=(1, 1e-3))) mod2 = SplineModel.create_gaussian(dict(control=(0, 1), treatment=(0, 1e-3))) def printmod2(mod): output = StringIO.StringIO() mod.write_gaussian_plus(output, ',') print output.getvalue() printmod2(Model.combine([mod1, mod2], [.5, .5])) printmod2(Model.combine([mod1, mod2], [.25, 2]))