def setAGrid(self): if all([val for val in self.AReady.values()]): self.A, self.prob = approx_markov(rho=self.rho, sigma_u=self.sigma, m=3, n=self.Angp) self.A = np.exp(self.A) self.AMean = np.dot(solveStationary(self.prob), self.A) self.KStarReady['AMean'] = True self.setKStar()
def setsGrid(self): if all([val for val in self.sReady.values()]): self.s, self.prob = approx_markov(rho=self.rho, sigma_u=self.sigma, m=3, n=self.sngp) self.s = np.exp(self.s) * self.scale self.sMean = np.dot(solveStationary(self.prob), self.s) self.IReady['sMean'] = True self.setIGrid() self.etaReady['sMean'] = True self.setEta()
def __init__(self, gamma=1.5, beta=0.97, R=1.025, rho=0.9, sigma=0.1, yngp=7, WMax=100.0, Wngp=10, spline_order=3, quad_order=5, approach='value'): self.gamma = gamma self.beta = beta self.R = R self.approach = approach # approach should be one of 'value' or 'euler' self.WMax = WMax self.tol = 0.0001 self.cMin = 0.000001 self.rho = rho self.sigma = sigma self.yngp = yngp # yProb[0,:] contains the transition probabilities for yGrid[0] self.yGrid, self.yProb = approx_markov(rho=self.rho, sigma_u=self.sigma, m=3, n=self.yngp) self.yGrid = np.exp(self.yGrid) self.yGridFine, self.yProbFine = approx_markov(rho=self.rho, sigma_u=self.sigma, m=3, n=self.yngp * 4) self.yGridFine = np.exp(self.yGridFine) # E[Fy|y=y[0]] = yProb[0, :] * yGrid self.Wngp = Wngp self.WGrid = np.linspace(self.WMin, self.WMax, num=self.Wngp) self.WGridFine = np.linspace(self.WMin, self.WMax, num=self.Wngp * 10) self.spline_order = spline_order self.quad_order = quad_order
def sigma_u(self, value): self._sigma_u = value self.isSet3['sigma_u'] = True if all([val for val in self.isSet3.values()]): #mc = tauchen(rho=self.rho, sigma_u=self.sigma_u, b=0., m=3, n=self.Angp) #self.p = mc.P #self.A = np.exp(mc.state_values) self.A, self.p = approx_markov(rho=self.rho, sigma_u=self.sigma_u, m=3, n=self.Angp) self.A = np.exp(self.A) self.AMean = np.dot(solveStationary(self.p), self.A)
def Angp(self, value): self._Angp = value self.isSet3['Angp'] = True self.isSet4['Angp'] = True if all([val for val in self.isSet3.values()]): #mc = tauchen(rho=self.rho, sigma_u=self.sigma_u, b=0., m=3, n=self.Angp) #self.p = mc.P #self.A = np.exp(mc.state_values) self.A, self.p = approx_markov(rho=self.rho, sigma_u=self.sigma_u, m=3, n=self.Angp) self.A = np.exp(self.A) self.AMean = np.dot(solveStationary(self.p), self.A) if all([val for val in self.isSet4.values()]): self.currReturn = np.empty((self.Angp, self.kngp, self.kngp)) self.ixnBest = np.empty((self.Angp, self.kngp, self.kngp)) self.EV = np.zeros((self.Angp, self.kngp)) self.ixk1policy = np.empty((self.Angp, self.kngp), dtype=np.int32) self.ixnpolicy = np.empty((self.Angp, self.kngp), dtype=np.int32)
def Sngp(self, value): self._Sngp = value self.isSet5['Sngp'] = True self.isSet4['Sngp'] = True if all([val for val in self.isSet5.values()]): self.S, self.q = approx_markov(rho=self.phi, sigma_u=self.sigma_v, m=3, n=self.Sngp) self.S = np.exp(self.S) self.SMean = np.dot(solveStationary(self.q), self.S) if all([val for val in self.isSet4.values()]): self.currReturn = np.empty( (self.kngp, self.Angp, self.Sngp, self.kngp)) self.ixnBest = np.empty( (self.kngp, self.Angp, self.Sngp, self.kngp)) self.EV = np.zeros((self.kngp, self.Angp, self.Sngp)) self.ixk1policy = np.empty((self.kngp, self.Angp, self.Sngp), dtype=np.int32) self.ixnpolicy = np.empty((self.kngp, self.Angp, self.Sngp), dtype=np.int32)
def setwGrid(self): if all([val for val in self.wReady.values()]): self.w, self.prob = approx_markov(rho=0.0, sigma_u=self.sigma, m=3, n=self.wngp) self.w = np.exp(self.w)
def setAGrid(self): if all([val for val in self.AReady.values()]): self.A, self.prob = approx_markov(rho=self.rho, sigma_u=self.sigma, m=3, n=self.Angp) self.A = np.exp(self.A)