def __init__(self, solution_next, IncomeDstn, PrefShkDstn, LivPrb, DiscFac, CRRA, Rfree, PermGroFac, BoroCnstArt, aXtraGrid, vFuncBool, CubicBool): ''' Constructor for a new solver for problems with risky income, a different interest rate on borrowing and saving, and multiplicative shocks to utility. Parameters ---------- solution_next : ConsumerSolution The solution to the succeeding one period problem. IncomeDstn : [np.array] A list containing three arrays of floats, representing a discrete approximation to the income process between the period being solved and the one immediately following (in solution_next). Order: event probabilities, permanent shocks, transitory shocks. PrefShkDstn : [np.array] Discrete distribution of the multiplicative utility shifter. Order: probabilities, preference shocks. LivPrb : float Survival probability; likelihood of being alive at the beginning of the succeeding period. DiscFac : float Intertemporal discount factor for future utility. CRRA : float Coefficient of relative risk aversion. Rfree : float Risk free interest factor on end-of-period assets. PermGroGac : float Expected permanent income growth factor at the end of this period. BoroCnstArt: float or None Borrowing constraint for the minimum allowable assets to end the period with. If it is less than the natural borrowing constraint, then it is irrelevant; BoroCnstArt=None indicates no artificial bor- rowing constraint. aXtraGrid: np.array Array of "extra" end-of-period asset values-- assets above the absolute minimum acceptable level. vFuncBool: boolean An indicator for whether the value function should be computed and included in the reported solution. CubicBool: boolean An indicator for whether the solver should use cubic or linear inter- polation. Returns ------- None ''' ConsIndShockSolver.__init__(self, solution_next, IncomeDstn, LivPrb, DiscFac, CRRA, Rfree, PermGroFac, BoroCnstArt, aXtraGrid, vFuncBool, CubicBool) self.PrefShkPrbs = PrefShkDstn[0] self.PrefShkVals = PrefShkDstn[1]
def __init__( self, solution_next, IncShkDstn, PrefShkDstn, LivPrb, DiscFac, CRRA, Rfree, PermGroFac, BoroCnstArt, aXtraGrid, vFuncBool, CubicBool, ): """ Constructor for a new solver for problems with risky income, a different interest rate on borrowing and saving, and multiplicative shocks to utility. Returns ------- None """ ConsIndShockSolver.__init__( self, solution_next, IncShkDstn, LivPrb, DiscFac, CRRA, Rfree, PermGroFac, BoroCnstArt, aXtraGrid, vFuncBool, CubicBool, ) self.PrefShkPrbs = PrefShkDstn.pmf self.PrefShkVals = PrefShkDstn.X
def calc_EndOfPrdvPcond(self): """ Calculate end-of-period marginal value of assets at each point in aNrmNow conditional on a particular state occuring in the next period. Parameters ---------- None Returns ------- EndOfPrdvP : np.array A 1D array of end-of-period marginal value of assets. """ EndOfPrdvPcond = ConsIndShockSolver.calc_EndOfPrdvP(self) return EndOfPrdvPcond
def __init__(self,solution_next,IncomeDstn_list,LivPrb,DiscFac, CRRA,Rfree_list,PermGroFac_list,MrkvArray,BoroCnstArt, aXtraGrid,vFuncBool,CubicBool): ''' Constructor for a new solver for a one period problem with risky income and transitions between discrete Markov states. In the descriptions below, N is the number of discrete states. Parameters ---------- solution_next : ConsumerSolution The solution to next period's one period problem. IncomeDstn_list : [[np.array]] A length N list of income distributions in each succeeding Markov state. Each income distribution contains three arrays of floats, representing a discrete approximation to the income process at the beginning of the succeeding period. Order: event probabilities, permanent shocks, transitory shocks. LivPrb : np.array Survival probability; likelihood of being alive at the beginning of the succeeding period for each Markov state. DiscFac : float Intertemporal discount factor for future utility. CRRA : float Coefficient of relative risk aversion. Rfree_list : np.array Risk free interest factor on end-of-period assets for each Markov state in the succeeding period. PermGroFac_list : np.array Expected permanent income growth factor at the end of this period for each Markov state in the succeeding period. MrkvArray : np.array An NxN array representing a Markov transition matrix between discrete states. The i,j-th element of MrkvArray is the probability of moving from state i in period t to state j in period t+1. BoroCnstArt: float or None Borrowing constraint for the minimum allowable assets to end the period with. If it is less than the natural borrowing constraint, then it is irrelevant; BoroCnstArt=None indicates no artificial bor- rowing constraint. aXtraGrid: np.array Array of "extra" end-of-period asset values-- assets above the absolute minimum acceptable level. vFuncBool: boolean An indicator for whether the value function should be computed and included in the reported solution. CubicBool: boolean An indicator for whether the solver should use cubic or linear inter- polation. Returns ------- None ''' # Set basic attributes of the problem ConsIndShockSolver.assignParameters(self,solution_next,np.nan,LivPrb,DiscFac,CRRA,np.nan, np.nan,BoroCnstArt,aXtraGrid,vFuncBool,CubicBool) self.defUtilityFuncs() # Set additional attributes specific to the Markov model self.IncomeDstn_list = IncomeDstn_list self.Rfree_list = Rfree_list self.PermGroFac_list = PermGroFac_list self.MrkvArray = MrkvArray self.StateCount = MrkvArray.shape[0]