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.
- 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:
IncShkDstn (Constructor, \(\psi\), \(\theta\)) – The agent’s income shock distributions.
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.construct_lognormal_income_process_unemployment()
aXtraGrid (Constructor) – The agent’s asset grid.
It’s default constructor is
HARK.utilities.make_assets_grid()
pLvlNextFunc (Constructor) – An arbitrary function used to evolve the GenIncShockConsumerType’s permanent income
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_trivial_pLvlNextFunc()
pLvlGrid (Constructor) – The agent’s pLvl grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_pLvlGrid_by_simulation()
pLvlPctiles (Constructor) – The agents income level percentile grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_basic_pLvlPctiles()
- 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). VisitHARK.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, useHARK.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:
IncShkDstn (Constructor, \(\psi\), \(\theta\)) – The agent’s income shock distributions.
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.construct_lognormal_income_process_unemployment()
aXtraGrid (Constructor) – The agent’s asset grid.
It’s default constructor is
HARK.utilities.make_assets_grid()
pLvlNextFunc (Constructor, (\(\Gamma\))) – An arbitrary function used to evolve the GenIncShockConsumerType’s permanent income
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_explicit_perminc_pLvlNextFunc()
pLvlGrid (Constructor) – The agent’s pLvl grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_pLvlGrid_by_simulation()
pLvlPctiles (Constructor) – The agents income level percentile grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_basic_pLvlPctiles()
- 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). VisitHARK.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:
IncShkDstn (Constructor, \(\psi\), \(\theta\)) – The agent’s income shock distributions.
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.construct_lognormal_income_process_unemployment()
aXtraGrid (Constructor) – The agent’s asset grid.
It’s default constructor is
HARK.utilities.make_assets_grid()
pLvlNextFunc (Constructor, (\(\Gamma\), \(\varphi\))) – An arbitrary function used to evolve the GenIncShockConsumerType’s permanent income
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_AR1_style_pLvlNextFunc()
pLvlGrid (Constructor) – The agent’s pLvl grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_pLvlGrid_by_simulation()
pLvlPctiles (Constructor) – The agents income level percentile grid
It’s default constructor is
HARK.Calibration.Income.IncomeProcesses.make_basic_pLvlPctiles()
- 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). VisitHARK.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}#