示例#1
0
 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()
示例#2
0
 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()
示例#3
0
    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)
示例#7
0
 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)
示例#8
0
 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)