cFunc = [solution_regular.cFunc, solution_insured.cFunc] solution_t = DiscreteChoiceSolution(vFunc,vPfunc) solution_t.cFunc = cFunc # Add the "pass through" attributes to the solution and report it other_attributes = [key for key in solution_regular.__dict__] other_attributes.remove('vFunc') other_attributes.remove('vPfunc') other_attributes.remove('cFunc') for name in other_attributes: do_string = 'solution_t.' + name + ' = solution_regular.' + name exec(do_string) return solution_t # Make an infinite horizon agent that has the option of buying out of income shocks TestType = ConsumerType(**Params.init_consumer_objects) TestType.timeFwd() TestType.assignParameters(survival_prob = [None,0.98], beta = [None,0.96], Gamma = [None,1.01], sigma_epsilon = [0.2,None], state_grid = setupGridsExpMult(0.00001, 50, 64, 3), a_size = 48, calc_vFunc = True, cubic_splines = False, constrained = True, #transFunc = lambda x : CRRAutility_inv(x,gam=TestType.rho), #transFuncP = lambda x : CRRAutility_invP(x,gam=TestType.rho), transFunc = identityFunc, transFuncP = onesFunc, income_distrib = [None,TestType.income_distrib[0]],
from TractableBufferStockModel import TractableConsumerType >>>>>>> eeb37f24755d0c683c9d9efbe5e7447425c98b86 from copy import deepcopy import unittest import numpy as np class Compare_PerfectForesight_and_Infinite(unittest.TestCase): def setUp(self): # Set up and solve infinite type <<<<<<< HEAD import SetupConsumerParameters as Params InfiniteType = ConsumerType(**Params.init_consumer_objects) InfiniteType.solveOnePeriod = consumptionSavingSolverENDG InfiniteType.assignParameters(LivPrb = [1.], DiscFac = [0.955], ======= import ConsumerParameters as Params InfiniteType = IndShockConsumerType(**Params.init_idiosyncratic_shocks) InfiniteType.assignParameters(LivPrb = [1.], DiscFac = 0.955, >>>>>>> eeb37f24755d0c683c9d9efbe5e7447425c98b86 PermGroFac = [1.], PermShkStd = [0.], TempShkStd = [0.], T_total = 1, T_retire = 0, BoroCnstArt = None, UnempPrb = 0., cycles = 0) # This is what makes the type infinite horizon
solution_t.kappa_min = kappa_min[v_best] solution_t.kappa_max = np.min(kappa_max) solution_t.gothic_h = gothic_h[v_best] solution_t.v_lim_slope = solution_t.kappa_min**(-rho/(1.0-rho)) solution_t.v_lim_intercept = solution_t.gothic_h*solution_t.v_lim_slope return solution_t # Make an infinite horizon agent that has the option of buying out of income shocks Params.init_consumer_objects['xi_sigma'] = [0.1,0.1,0.1] Params.init_consumer_objects['psi_sigma'] = [0.1,0.15,0.2] Params.init_consumer_objects['T_retire'] = 0 Params.init_consumer_objects['T_total'] = 3 Gamma_set = [1.01,1.02,1.03] TestType = ConsumerType(**Params.init_consumer_objects) TestType.timeFwd() TestType.assignParameters(survival_prob = [None,0.98], beta = [None,0.96], Gamma = [None,Gamma_set], rho = 3.0, sigma_epsilon = [0.0001,None], state_grid = setupGridsExpMult(0.001, 50, 64, 3), a_max = 20, a_size = 48, calc_vFunc = True, cubic_splines = False, constrained = True, income_distrib = [None,TestType.income_distrib], p_zero_income = [None,TestType.p_zero_income], solveAPeriod = [discreteChoiceContinuousStateSolver, occupationalChoiceSolver],
"a_min": 0.001, "a_max": ExampleType.m_max, "a_size": 16, "a_extra": [None], "exp_nest": 3, "survival_prob": [1.0], "beta": [base_primitives["beta"]], "Nagents": 1, "psi_seed": 0, "xi_seed": 0, "unemp_seed": 0, "tax_rate": 0.0, "calc_vFunc": False, "cubic_splines": True, } MarkovType = ConsumerType(**init_consumer_objects) transition_matrix = np.array([[1.0 - base_primitives["mho"], base_primitives["mho"]], [0.0, 1.0]]) employed_income_dist = [np.ones(1), np.ones(1), np.ones(1)] unemployed_income_dist = [np.ones(1), np.ones(1), np.zeros(1)] p_zero_income = [np.array([0.0, 1.0])] MarkovType.solution_terminal.cFunc = 2 * [MarkovType.solution_terminal.cFunc] MarkovType.solution_terminal.vFunc = 2 * [MarkovType.solution_terminal.vFunc] MarkovType.solution_terminal.vPfunc = 2 * [MarkovType.solution_terminal.vPfunc] MarkovType.solution_terminal.vPPfunc = 2 * [MarkovType.solution_terminal.vPPfunc] MarkovType.solution_terminal.m_underbar = 2 * [MarkovType.solution_terminal.m_underbar] MarkovType.income_distrib = [[employed_income_dist, unemployed_income_dist]] MarkovType.p_zero_income = p_zero_income MarkovType.transition_matrix = transition_matrix MarkovType.time_inv.append("transition_matrix") MarkovType.solveAPeriod = consumptionSavingSolverMarkov MarkovType.cycles = 0