ConsGenIncProcessModel#

Classes to solve consumption-saving models with idiosyncratic shocks to income in which shocks are not necessarily fully transitory or fully permanent. Extends ConsIndShockModel by explicitly tracking persistent income as a state variable, and allows (log) persistent income to follow an AR1 process rather than random walk.

class HARK.ConsumptionSaving.ConsGenIncProcessModel.pLvlFuncAR1(pLogMean, PermGroFac, Corr)#

Bases: MetricObject

A class for representing AR1-style persistent income growth functions.

Parameters:
  • pLogMean (float) – Log persistent income level toward which we are drawn.

  • PermGroFac (float) – Autonomous (e.g. life cycle) pLvl growth (does not AR1 decay).

  • Corr (float) – Correlation coefficient on log income.

class HARK.ConsumptionSaving.ConsGenIncProcessModel.GenIncProcessConsumerType(**kwds)#

Bases: IndShockConsumerType

A consumer type with idiosyncratic shocks to persistent and transitory income. Their problem is defined by a sequence of income distributions, survival prob- abilities, and persistent income growth functions, as well as time invariant values for risk aversion, discount factor, the interest rate, the grid of end-of-period assets, and an artificial borrowing constraint.

\[\begin{split}\begin{eqnarray*} V_t(M_t,P_t) &=& \max_{C_t} U(C_t) + \beta (1-\mathsf{D}_{t+1}) \mathbb{E} [V_{t+1}(M_{t+1}, P_{t+1}) ], \\ A_t &=& M_t - C_t, \\ A_t/P_t &\geq& \underline{a}, \\ M_{t+1} &=& R A_t + \theta_{t+1}, \\ P_{t+1} &=& G_{t+1}(P_t)\psi_{t+1}, \\ (\psi_{t+1},\theta_{t+1}) &\sim& F_{t+1}, \\ \mathbb{E} [F_{t+1}] &=& 1, \\ U(C) &=& \frac{C^{1-\rho}}{1-\rho}. \\ \end{eqnarray*}\end{split}\]
Constructors:
Solving Parameters:
  • cycles (int) – 0 specifies an infinite horizon model, 1 specifies a finite model.

  • T_cycle (int) – Number of periods in the cycle for this agent type.

  • CRRA (float, \(\rho\)) – Coefficient of Relative Risk Aversion.

  • Rfree (float or list[float], time varying, \(\mathsf{R}\)) – Risk Free interest rate. Pass a list of floats to make Rfree time varying.

  • DiscFac (float, \(\beta\)) – Intertemporal discount factor.

  • LivPrb (list[float], time varying, \(1-\mathsf{D}\)) – Survival probability after each period.

  • BoroCnstArt (float, \(\underline{a}\)) – The minimum Asset/Perminant Income ratio, None to ignore.

  • vFuncBool (bool) – Whether to calculate the value function during solution.

  • CubicBool (bool) – Whether to use cubic spline interpoliation.

Simulation Parameters:
  • AgentCount (int) – Number of agents of this kind that are created during simulations.

  • T_age (int) – Age after which to automatically kill agents, None to ignore.

  • T_sim (int, required for simulation) – Number of periods to simulate.

  • track_vars (list[strings]) – List of variables that should be tracked when running the simulation. For this agent, the options are ‘PermShk’, ‘TranShk’, ‘aLvl’, ‘cLvl’, ‘mLvl’, ‘pLvl’, and ‘who_dies’.

    PermShk is the agent’s permanent income shock

    TranShk is the agent’s transitory income shock

    aLvl is the nominal asset level

    cLvl is the nominal consumption level

    mLvl is the nominal market resources

    pLvl is the permanent income level

    who_dies is the array of which agents died

  • aNrmInitMean (float) – Mean of Log initial Normalized Assets.

  • aNrmInitStd (float) – Std of Log initial Normalized Assets.

  • pLvlInitMean (float) – Mean of Log initial permanent income.

  • pLvlInitStd (float) – Std of Log initial permanent income.

  • PermGroFacAgg (float) – Aggregate permanent income growth factor (The portion of PermGroFac attributable to aggregate productivity growth).

  • PerfMITShk (boolean) – Do Perfect Foresight MIT Shock (Forces Newborns to follow solution path of the agent they replaced if True).

  • NewbornTransShk (boolean) – Whether Newborns have transitory shock.

Attributes:
  • solution (list[Consumer solution object]) – Created by the solve() method. Finite horizon models create a list with T_cycle+1 elements, for each period in the solution. Infinite horizon solutions return a list with T_cycle elements for each period in the cycle.

    Unlike other models with this solution type, this model’s variables are NOT normalized. The solution functions also depend on the permanent income level. For example, \(C=\text{cFunc}(M,P)\). hNrm has been replaced by hLvl which is a function of permanent income. MPC max has not yet been implemented for this class. It will be a function of permanent income.

    Visit HARK.ConsumptionSaving.ConsIndShockModel.ConsumerSolution for more information about the solution.

  • history (Dict[Array]) – Created by running the simulate() method. Contains the variables in track_vars. Each item in the dictionary is an array with the shape (T_sim,AgentCount). Visit HARK.core.AgentType.simulate for more information.

IncShkDstn_default = {'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005}#
aXtraGrid_default = {'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3}#
pLvlNextFunc_default = {}#
pLvlGrid_default = {'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.4}#
pLvlPctiles_default = {'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045}#
solving_default = {'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'LivPrb': [0.98], 'Rfree': 1.03, 'T_cycle': 1, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_trivial_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'vFuncBool': False}#
simulation_default = {'AgentCount': 10000, 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFacAgg': 1.0, 'T_age': None, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'neutral_measure': False, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0}#
state_vars = ['pLvl', 'mLvl', 'aLvl']#
default_params_ = {'AgentCount': 10000, 'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'LivPrb': [0.98], 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFacAgg': 1.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'Rfree': 1.03, 'T_age': None, 'T_cycle': 1, 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_trivial_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'neutral_measure': False, 'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0, 'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045, 'vFuncBool': False}#
pre_solve()#

Method that is run automatically just before solution by backward iteration. Solves the (trivial) terminal period and does a quick check on the borrowing constraint and MaxKinks attribute (only relevant in constrained, infinite horizon problems).

update()#

Update the income process, the assets grid, the persistent income grid, and the terminal solution.

Parameters:

None

Return type:

None

update_pLvlNextFunc()#

Update the function that maps this period’s permanent income level to next period’s expected permanent income level.

Parameters:

None

Return type:

None

install_retirement_func()#

Installs a special pLvlNextFunc representing retirement in the correct element of self.pLvlNextFunc. Draws on the attributes T_retire and pLvlNextFuncRet. If T_retire is zero or pLvlNextFuncRet does not exist, this method does nothing. Should only be called from within the method update_pLvlNextFunc, which ensures that time is flowing forward.

Parameters:

None

Return type:

None

update_pLvlGrid()#

Update the grid of persistent income levels.

Parameters:

None

Return type:

None

sim_birth(which_agents)#

Makes new consumers for the given indices. Initialized variables include aNrm and pLvl, as well as time variables t_age and t_cycle. Normalized assets and persistent income levels are drawn from lognormal distributions given by aNrmInitMean and aNrmInitStd (etc).

Parameters:

which_agents (np.array(Bool)) – Boolean array of size self.AgentCount indicating which agents should be “born”.

Return type:

None

transition()#

Calculates updated values of normalized market resources and persistent income level for each agent. Uses pLvlNow, aLvlNow, PermShkNow, TranShkNow.

Parameters:

None

Returns:

  • pLvlNow

  • mLvlNow

get_controls()#

Calculates consumption for each consumer of this type using the consumption functions.

Parameters:

None

Return type:

None

get_poststates()#

Calculates end-of-period assets for each consumer of this type. Identical to version in IndShockConsumerType but uses Lvl rather than Nrm variables.

Parameters:

None

Return type:

None

class HARK.ConsumptionSaving.ConsGenIncProcessModel.IndShockExplicitPermIncConsumerType(**kwds)#

Bases: GenIncProcessConsumerType

A consumer type based on GenIncProcessModel, where the general function describing the path of permanent income multiplies the current permanent income by the PermGroFac (\(\Gamma\)). It’s behavior is the same as HARK.ConsumptionSaving.ConsIndShockModel.IndShockConsumerType, except that the variables aren’t normalized. This makes the result less accurate. This Model uses a lognormal random walk income process. If you would like to use a different income process, use HARK.ConsumptionSaving.ConsGenIncProcessModel.GenIncProcessConsumerType

\[\begin{split}\begin{eqnarray*} V_t(M_t,P_t) &=& \max_{C_t} U(C_t) + \beta (1-\mathsf{D}_{t+1}) \mathbb{E} [V_{t+1}(M_{t+1}, P_{t+1}) ], \\ A_t &=& M_t - C_t, \\ A_t/P_t &\geq& \underline{a}, \\ M_{t+1} &=& R A_t + \theta_{t+1}, \\ P_{t+1} &=& G_{t+1}(P_t)\psi_{t+1}, \\ (\psi_{t+1},\theta_{t+1}) &\sim& F_{t+1}, \\ \mathbb{E} [F_{t+1}] &=& 1, \\ U(C) &=& \frac{C^{1-\rho}}{1-\rho}. \\ G_{t+1} (x) &=&\Gamma_{t+1} x \end{eqnarray*}\end{split}\]
Constructors:
Solving Parameters:
  • cycles (int) – 0 specifies an infinite horizon model, 1 specifies a finite model.

  • T_cycle (int) – Number of periods in the cycle for this agent type.

  • CRRA (float, \(\rho\)) – Coefficient of Relative Risk Aversion.

  • Rfree (float or list[float], time varying, \(\mathsf{R}\)) – Risk Free interest rate. Pass a list of floats to make Rfree time varying.

  • DiscFac (float, \(\beta\)) – Intertemporal discount factor.

  • LivPrb (list[float], time varying, \(1-\mathsf{D}\)) – Survival probability after each period.

  • PermGroFac (list[float], time varying, \(\Gamma\)) – Permanent income growth factor.

  • BoroCnstArt (float, \(\underline{a}\)) – The minimum Asset/Perminant Income ratio, None to ignore.

  • vFuncBool (bool) – Whether to calculate the value function during solution.

  • CubicBool (bool) – Whether to use cubic spline interpoliation.

Simulation Parameters:
  • AgentCount (int) – Number of agents of this kind that are created during simulations.

  • T_age (int) – Age after which to automatically kill agents, None to ignore.

  • T_sim (int, required for simulation) – Number of periods to simulate.

  • track_vars (list[strings]) – List of variables that should be tracked when running the simulation. For this agent, the options are ‘PermShk’, ‘TranShk’, ‘aLvl’, ‘cLvl’, ‘mLvl’, ‘pLvl’, and ‘who_dies’.

    PermShk is the agent’s permanent income shock

    TranShk is the agent’s transitory income shock

    aLvl is the nominal asset level

    cLvl is the nominal consumption level

    mLvl is the nominal market resources

    pLvl is the permanent income level

    who_dies is the array of which agents died

  • aNrmInitMean (float) – Mean of Log initial Normalized Assets.

  • aNrmInitStd (float) – Std of Log initial Normalized Assets.

  • pLvlInitMean (float) – Mean of Log initial permanent income.

  • pLvlInitStd (float) – Std of Log initial permanent income.

  • PermGroFacAgg (float) – Aggregate permanent income growth factor (The portion of PermGroFac attributable to aggregate productivity growth).

  • PerfMITShk (boolean) – Do Perfect Foresight MIT Shock (Forces Newborns to follow solution path of the agent they replaced if True).

  • NewbornTransShk (boolean) – Whether Newborns have transitory shock.

Attributes:
  • solution (list[Consumer solution object]) – Created by the solve() method. Finite horizon models create a list with T_cycle+1 elements, for each period in the solution. Infinite horizon solutions return a list with T_cycle elements for each period in the cycle.

    Unlike other models with this solution type, this model’s variables are NOT normalized. The solution functions also depend on the permanent income level. For example, \(C=\text{cFunc}(M,P)\). hNrm has been replaced by hLvl which is a function of permanent income. MPC max has not yet been implemented for this class. It will be a function of permanent income.

    Visit HARK.ConsumptionSaving.ConsIndShockModel.ConsumerSolution for more information about the solution.

  • history (Dict[Array]) – Created by running the simulate() method. Contains the variables in track_vars. Each item in the dictionary is an array with the shape (T_sim,AgentCount). Visit HARK.core.AgentType.simulate for more information.

IncShkDstn_default = {'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005}#
aXtraGrid_default = {'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3}#
pLvlNextFunc_default = {}#
pLvlGrid_default = {'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.4}#
pLvlPctiles_default = {'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045}#
solving_default = {'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'LivPrb': [0.98], 'Rfree': 1.03, 'T_cycle': 1, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_trivial_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'vFuncBool': False}#
simulation_default = {'AgentCount': 10000, 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFacAgg': 1.0, 'T_age': None, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'neutral_measure': False, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0}#
default_params_ = {'AgentCount': 10000, 'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'LivPrb': [0.98], 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFac': [1.0], 'PermGroFacAgg': 1.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'Rfree': 1.03, 'T_age': None, 'T_cycle': 1, 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_explicit_perminc_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'neutral_measure': False, 'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0, 'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045, 'vFuncBool': False}#
class HARK.ConsumptionSaving.ConsGenIncProcessModel.PersistentShockConsumerType(**kwds)#

Bases: GenIncProcessConsumerType

A consumer type based on GenIncProcessModel, where the log permanent income follows an AR1 process. If you would like to use a different income process, use HARK.ConsumptionSaving.ConsGenIncProcessModel.GenIncProcessConsumerType

\[\begin{split}\begin{eqnarray*} V_t(M_t,P_t) &=& \max_{C_t} U(C_t) + \beta (1-\mathsf{D}_{t+1}) \mathbb{E} [V_{t+1}(M_{t+1}, P_{t+1}) ], \\ A_t &=& M_t - C_t, \\ A_t/P_t &\geq& \underline{a}, \\ M_{t+1} &=& R A_t + \theta_{t+1}, \\ p_{t+1} &=& G_{t+1}(P_t)\psi_{t+1}, \\ (\psi_{t+1},\theta_{t+1}) &\sim& F_{t+1}, \\ \mathbb{E} [F_{t+1}] &=& 1, \\ U(C) &=& \frac{C^{1-\rho}}{1-\rho}, \\ log(G_{t+1} (x)) &=&\varphi log(x) + (1-\varphi) log(\overline{P}_{t})+log(\Gamma_{t+1}) + log(\psi_{t+1}), \\ \overline{P}_{t+1} &=& \overline{P}_{t} \Gamma_{t+1} \\ \end{eqnarray*}\end{split}\]
Constructors:
Solving Parameters:
  • cycles (int) – 0 specifies an infinite horizon model, 1 specifies a finite model.

  • T_cycle (int) – Number of periods in the cycle for this agent type.

  • CRRA (float, \(\rho\)) – Coefficient of Relative Risk Aversion.

  • Rfree (float or list[float], time varying, \(\mathsf{R}\)) – Risk Free interest rate. Pass a list of floats to make Rfree time varying.

  • DiscFac (float, \(\beta\)) – Intertemporal discount factor.

  • LivPrb (list[float], time varying, \(1-\mathsf{D}\)) – Survival probability after each period.

  • PermGroFac (list[float], time varying, \(\Gamma\)) – Permanent income growth factor.

  • BoroCnstArt (float, \(\underline{a}\)) – The minimum Asset/Perminant Income ratio, None to ignore.

  • vFuncBool (bool) – Whether to calculate the value function during solution.

  • CubicBool (bool) – Whether to use cubic spline interpoliation.

Simulation Parameters:
  • AgentCount (int) – Number of agents of this kind that are created during simulations.

  • T_age (int) – Age after which to automatically kill agents, None to ignore.

  • T_sim (int, required for simulation) – Number of periods to simulate.

  • track_vars (list[strings]) – List of variables that should be tracked when running the simulation. For this agent, the options are ‘PermShk’, ‘TranShk’, ‘aLvl’, ‘cLvl’, ‘mLvl’, ‘pLvl’, and ‘who_dies’.

    PermShk is the agent’s permanent income shock

    TranShk is the agent’s transitory income shock

    aLvl is the nominal asset level

    cLvl is the nominal consumption level

    mLvl is the nominal market resources

    pLvl is the permanent income level

    who_dies is the array of which agents died

  • aNrmInitMean (float) – Mean of Log initial Normalized Assets.

  • aNrmInitStd (float) – Std of Log initial Normalized Assets.

  • pLvlInitMean (float) – Mean of Log initial permanent income.

  • pLvlInitStd (float) – Std of Log initial permanent income.

  • PermGroFacAgg (float) – Aggregate permanent income growth factor (The portion of PermGroFac attributable to aggregate productivity growth).

  • PerfMITShk (boolean) – Do Perfect Foresight MIT Shock (Forces Newborns to follow solution path of the agent they replaced if True).

  • NewbornTransShk (boolean) – Whether Newborns have transitory shock.

Attributes:
  • solution (list[Consumer solution object]) – Created by the solve() method. Finite horizon models create a list with T_cycle+1 elements, for each period in the solution. Infinite horizon solutions return a list with T_cycle elements for each period in the cycle.

    Unlike other models with this solution type, this model’s variables are NOT normalized. The solution functions also depend on the permanent income level. For example, \(C=\text{cFunc}(M,P)\). hNrm has been replaced by hLvl which is a function of permanent income. MPC max has not yet been implemented for this class. It will be a function of permanent income.

    Visit HARK.ConsumptionSaving.ConsIndShockModel.ConsumerSolution for more information about the solution.

  • history (Dict[Array]) – Created by running the simulate() method. Contains the variables in track_vars. Each item in the dictionary is an array with the shape (T_sim,AgentCount). Visit HARK.core.AgentType.simulate for more information.

IncShkDstn_default = {'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005}#
aXtraGrid_default = {'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3}#
pLvlNextFunc_default = {'PermGroFac': [1.0], 'PrstIncCorr': 0.98}#
pLvlGrid_default = {'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.4}#
pLvlPctiles_default = {'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045}#
solving_default = {'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'LivPrb': [0.98], 'Rfree': 1.03, 'T_cycle': 1, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_AR1_style_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'vFuncBool': False}#
simulation_default = {'AgentCount': 10000, 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFacAgg': 1.0, 'T_age': None, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'neutral_measure': False, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0}#
default_params_ = {'AgentCount': 10000, 'BoroCnstArt': 0.0, 'CRRA': 2.0, 'CubicBool': False, 'DiscFac': 0.96, 'IncUnemp': 0.3, 'IncUnempRet': 0.0, 'LivPrb': [0.98], 'NewbornTransShk': False, 'PerfMITShk': False, 'PermGroFac': [1.0], 'PermGroFacAgg': 1.0, 'PermShkCount': 7, 'PermShkStd': [0.1], 'PrstIncCorr': 0.98, 'Rfree': 1.03, 'T_age': None, 'T_cycle': 1, 'T_retire': 0, 'TranShkCount': 7, 'TranShkStd': [0.1], 'UnempPrb': 0.05, 'UnempPrbRet': 0.005, 'aNrmInitMean': 0.0, 'aNrmInitStd': 1.0, 'aXtraCount': 48, 'aXtraExtra': [0.005, 0.01], 'aXtraMax': 30, 'aXtraMin': 0.001, 'aXtraNestFac': 3, 'constructors': {'IncShkDstn': <function construct_lognormal_income_process_unemployment>, 'PermShkDstn': <function get_PermShkDstn_from_IncShkDstn>, 'TranShkDstn': <function get_TranShkDstn_from_IncShkDstn>, 'aXtraGrid': <function make_assets_grid>, 'pLvlGrid': <function make_pLvlGrid_by_simulation>, 'pLvlNextFunc': <function make_AR1_style_pLvlNextFunc>, 'pLvlPctiles': <function make_basic_pLvlPctiles>, 'solution_terminal': <function make_2D_CRRA_solution_terminal>}, 'cycles': 1, 'neutral_measure': False, 'pLvlExtra': None, 'pLvlInitMean': 0.0, 'pLvlInitStd': 0.0, 'pLvlPctiles_bound': [0.05, 0.95], 'pLvlPctiles_count': 19, 'pLvlPctiles_tail_count': 4, 'pLvlPctiles_tail_order': 2.718281828459045, 'vFuncBool': False}#