Skip to content

Releases: econ-ark/HARK

0.14.1

28 Feb 17:13
649d8c6
Compare
Choose a tag to compare

Major Changes

none

Minor Changes

  • Fixes a bug in make_figs arising from the metadata argument being incompatible with jpg. #1386
  • Reverts behavior of the repr method of the Model class, so that long strings aren't generated. Full description is available with describe(). #1390

0.14.0

12 Feb 20:42
Compare
Choose a tag to compare

Major Changes

  • Adds HARK.core.AgentPopulation class to represent a population of agents with ex-ante heterogeneous parametrizations as distributions. #1237
  • Adds HARK.core.Parameters class to represent a collection of time varying and time invariant parameters in a model. #1240
  • Adds HARK.simulation.monte_carlo module for generic Monte Carlo simulation functions using Python model configurations. 1296

Minor Changes

  • Adds option sim_common_Rrisky to control whether risky-asset models draw common or idiosyncratic returns in simulation. #1250,#1253
  • Addresses #1255. Makes age-varying stochastic returns possible and draws from their discretized version. #1262
  • Fixes bug in the metric that compares dictionaries with the same keys. #1260
  • Fixes bug in the calc_jacobian method. #1342
  • Fixes bug that prevented risky-asset consumer types from working with time-varying interest rates Rfree. 1343
  • Overhauls and expands condition checking for the ConsIndShock model #1294. Condition values and a description of their interpretation is stored in the bilt dictionary of IndShockConsumerType.
  • Creates a models/ directory with Python model configurations for perfect foresight and Fisher 2-period models. 1347
  • Fixes bug in AgentType simulations where 'who_dies' for period t was being recorded in period t-1 in the history Carlo simulation functions using Python model configurations.1296
  • Removes unused simulation.py .1296
  • Fixes bug that default seed was being used in the initializing of income shock distributions. 1380

0.13.0

16 Feb 15:27
Compare
Choose a tag to compare

Major Changes

  • Updates the DCEGM tools to address the flaws identified in issue #1062. PR: 1100.
  • Updates IndexDstn, introducing the option to use an existing RNG instead of creating a new one, and creating and storing all the conditional distributions at initialization. 1104
  • make_shock_history and read_shocks == True now store and use the random draws that determine newborn's initial states #1101.
  • FrameModel and FrameSet classes introduced for more modular construction of framed models. FrameAgentType dedicated to simulation. #1117
  • General control transitions based on decision rules in FrameAgentType. #1117
  • Adds distr_of_function tool to calculate the distribution of a function of a discrete random variable. #1144
  • Changes the DiscreteDistribution class to allow for arbitrary array-valued random variables. #1146
  • Adds IndShockRiskyAssetConsumerType as agent which can invest savings all in safe asset, all in risky asset, a fixed share in risky asset, or optimize its portfolio. #1107
  • Updates all HARK models to allow for age-varying interest rates. #1150
  • Adds DiscreteDistribution.expected method which expects vectorized functions and is faster than HARK.distribution.calc_expectation. #1156
  • Adds DiscreteDistributionXRA class which extends DiscreteDistribution to allow for underlying data to be stored in a xarray.DataArray object. #1156
  • Adds keyword argument labels to expected() when using DiscreteDistributionXRA to allow for expressive functions that use labeled xarrays. #1156
  • Adds a wrapper for interpolation.py for fast multilinear interpolation. #1151
  • Adds support for the calculation of dreivatives in the interpolation.py wrappers. #1157
  • Adds class DecayInterp to econforgeinterp.py. It implements interpolators that "decay" to some limiting function when extrapolating. #1165
  • Add methods to non stochastically simulate an economy by computing transition matrices. Functions to compute transition matrices and ergodic distribution have been added #1155.
  • Fixes a bug that causes t_age and t_cycle to get out of sync when reading pre-computed mortality. #1181
  • Adds Methods to calculate Heterogenous Agent Jacobian matrices. #1185
  • Enhances combine_indep_dstns to work with labeled distributions (DiscreteDistributionLabeled). #1191
  • Updates the numpy random generator from RandomState to Generator. #1193
  • Turns the income and income+return distributions into DiscreteDistributionLabeled objects. #1189
  • Creates UtilityFuncCRRA which is an object oriented utility function with a coefficient of constant relative risk aversion and includes derivatives and inverses. Also creates UtilityFuncCobbDouglas, UtilityFuncCobbDouglasCRRA, and UtilityFuncConstElastSubs. #1168
  • Reorganizes HARK.distribution. All distributions now inherit all features from scipy.stats. New ContinuousFrozenDistribution and DiscreteFrozenDistribution to use scipy.stats distributions not yet implemented in HARK. New Distribution.discretize(N, method = "***") replaces Distribution.approx(N). New DiscreteDistribution.limit attribute describes continuous origin and discretization method. #1197.
  • Creates new class of labeled models under ConsLabeledModel that use xarray for more expressive modeling of underlying mathematical and economics variables. #1177

Minor Changes

  • Updates the lognormal-income-process constructor from ConsIndShockModel.py to use IndexDistribution. #1024, #1115
  • Allows for age-varying unemployment probabilities and replacement incomes with the lognormal income process constructor. #1112
  • Option to have newborn IndShockConsumerType agents with a transitory income shock in the first period. Default is false, meaning they only have a permanent income shock in period 1 and permanent AND transitory in the following ones. #1126
  • Adds benchmark utility to profile the performance of HARK solvers. #1131
  • Fixes scaling bug in Normal equiprobable approximation method. 1139
  • Removes the extra-dimension that was returned by calc_expectations in some instances. #1149
  • Adds HARK.distribution.expected alias for DiscreteDistribution.expected. #1156
  • Renames attributes in DiscreteDistribution: X to atoms and pmf to pmv. #1164, #1051, #1159.
  • Remove or replace automated tests that depend on brittle simulation results. #1148
  • Updates asset grid constructor from ConsIndShockModel.py to allow for linearly-spaced grids when aXtraNestFac == -1. #1172
  • Renames DiscreteDistributionXRA to DiscreteDistributionLabeled and updates methods #1170
  • Renames HARK.numba to HARK.numba_tools #1183
  • Adds the RNG seed as a property of DiscreteDistributionLabeled #1184
  • Updates the approx method of HARK.distributions.Uniform to include the endpoints of the distribution with infinitesimally small (zero) probability mass. #1180
  • Refactors tests to incorporate custom precision HARK_PRECISION = 4. #1193
  • Cast DiscreteDistribution.pmv attribute as a np.ndarray. #1199
  • Update structure of dynamic interest rate. #1221

0.12.0

14 Dec 16:54
a2b6917
Compare
Choose a tag to compare

Major Changes

  • FrameAgentType for modular definitions of agents #865 #1064
  • Frame relationships with backward and forward references, with plotting example #1071
  • PortfolioConsumerFrameType, a port of PortfolioConsumerType to use Frames #865
  • Input parameters for cyclical models now indexed by t #1039
  • A IndexDistribution class for representing time-indexed probability distributions #1018.
  • Adds new consumption-savings-portfolio model RiskyContrib, which represents an agent who can save in risky and risk-free assets but faces
    frictions to moving funds between them. To circumvent these frictions, he has access to an income-deduction scheme to accumulate risky assets.
    PR: #832. See this forthcoming REMARK for the model's details.
  • 'cycles' agent property moved from constructor argument to parameter #1031
  • Uses iterated expectations to speed-up the solution of RiskyContrib when income and returns are independent #1058.
  • ConsPortfolioSolver class for solving portfolio choice model replaces solveConsPortfolio method #1047
  • ConsPortfolioDiscreteSolver class for solving portfolio choice model when allowed share is on a discrete grid #1047
  • ConsPortfolioJointDistSolver class for solving portfolio chioce model when the income and risky return shocks are not independent #1047

Minor Changes

  • Using Lognormal.from_mean_std in the forward simulation of the RiskyAsset model #1019
  • Fix bug in DCEGM's primary kink finder due to numpy no longer accepting NaN in integer arrays #990.
  • Add a general class for consumers who can save using a risky asset #1012.
  • Add Boolean attribute 'PerfMITShk' to consumption models. When true, allows perfect foresight MIT shocks to be simulated. #1013.
  • Track and update start-of-period (pre-income) risky and risk-free assets as states in the RiskyContrib model 1046.
  • distribute_params now uses assign_params to create consistent output #1044
  • The function that computes end-of-period derivatives of the value function was moved to the inside of ConsRiskyContrib's solver #1057
  • Use np.fill(np.nan) to clear or initialize the arrays that store simulations. #1068
  • Add Boolean attribute 'neutral_measure' to consumption models. When true, simulations are more precise by allowing permanent shocks to be drawn from a neutral measure (see Harmenberg 2021). #1069
  • Fix mathematical limits of model example in example_ConsPortfolioModel.ipynb #1047
  • Update ConsGenIncProcessModel.py to use calc_expectation method #1072
  • Fix bug in calc_normal_style_pars_from_lognormal_pars due to math error. #1076
  • Fix bug in distribute_params so that AgentCount parameter is updated. #1089

0.11.0

04 Mar 17:33
0a0909d
Compare
Choose a tag to compare

0.11.0

Release Data: March 4, 2021

Major Changes

  • Converts non-mathematical code to PEP8 compliant form #953
  • Adds a constructor for LogNormal distributions from mean and standard deviation #891
  • Uses new LogNormal constructor in ConsPortfolioModel #891
  • calcExpectations method for taking the expectation of a distribution over a function [#884](https://github.com/econ-ark/HARK/pull/884/] (#897)[https://github.com//pull/897/)
  • Centralizes the definition of value, marginal value, and marginal marginal value functions that use inverse-space
    interpolation for problems with CRRA utility. See #888.
  • MarkovProcess class used in ConsMarkovModel, ConsRepAgentModel, ConsAggShockModel #902 #929
  • replace HARKobject base class with MetricObject and Model classes #903
  • Add repr and eq methods to Model class #903
  • Adds SSA life tables and methods to extract survival probabilities from them #986.
  • Adds the U.S. CPI research series and tools to extract inflation adjustments from it #930.
  • Adds a module for extracting initial distributions of permanent income (pLvl) and normalized assets (aNrm) from the SCF #932.
  • Fix the return fields of dcegm/calcCrossPoints#909.
  • Corrects location of constructor documentation to class string for Sphinx rendering #908
  • Adds a module with tools for parsing and using various income calibrations from the literature. It includes the option of using life-cycle profiles of income shock variances from Sabelhaus and Song (2010). See #921, #941, #980.
  • remove "Now" from model variable names #936
  • remove Model.call; use Model init in Market and AgentType init to standardize on parameters dictionary #947
  • Moves state MrkvNow to shocks['Mrkv'] in AggShockMarkov and KrusellSmith models #935
  • Replaces ConsIndShock's init_lifecycle with an actual life-cycle calibration #951.

Minor Changes

  • Move AgentType constructor parameters docs to class docstring so it is rendered by Sphinx.
  • Remove uses of deprecated time.clock #887
  • Change internal representation of parameters to Distributions to ndarray type
  • Rename IncomeDstn to IncShkDstn
  • AgentType simulate() method now returns history. #916
  • Rename DiscreteDistribution.drawDiscrete() to draw()
  • Update documentation and warnings around IncShkDstn #955
  • Adds csv files to MANIFEST.in. 957

0.10.8

05 Nov 16:56
0714bf4
Compare
Choose a tag to compare

Release Date: Nov. 05 2020

Major Changes

  • Namespace variables for the Market class #765
  • We now have a Numba based implementation of PerfForesightConsumerType model available as PerfForesightConsumerTypeFast #774
  • Namespace for exogenous shocks #803
  • Namespace for controls #855
  • State and poststate attributes replaced with state_now and state_prev namespaces #836

Minor Changes

  • Use shock_history namespace for pre-evaluated shock history #812
  • Fixes seed of PrefShkDstn on initialization and add tests for simulation output
  • Reformat code style using black

0.10.7

07 Aug 19:50
c9138af
Compare
Choose a tag to compare

0.10.7

Release Date: 08-08-2020

Major Changes

  • Add a custom KrusellSmith Model #762
  • Simulations now uses a dictionary history to store state history instead of _hist attributes #674
  • Removed time flipping and time flow state, "forward/backward time" through data access #570
  • Simulation draw methods are now individual distributions like Uniform, Lognormal, Weibull #624

Minor Changes

  • unpackcFunc is deprecated, use unpack(parameter) to unpack a parameter after solving the model #784
  • Remove deprecated Solution Class, use HARKObject across the codebase #772
  • Add option to find crossing points in the envelope step of DCEGM algorithm #758
  • Fix reset bug in the behaviour of AgentType.resetRNG(), implemented individual resetRNG methods for AgentTypes #757
  • Seeds are set at initialisation of a distribution object rather than draw method #691 #750, #729
  • Deal with portfolio share of 'bad' assets #749
  • Fix bug in make_figs utilities function #755
  • Fix typo bug in Perfect Foresight Model solver #743
  • Add initial support for logging in ConsIndShockModel #714
  • Speed up simulation in AggShockMarkovConsumerType #702
  • Fix logic bug in DiscreteDistribution draw method #715
  • Implemented distributeParams to distributes heterogeneous values of one parameter to a set of agents #692
  • NelderMead is now part of estimation #693
  • Fix typo bug in parallel #682
  • Fix DiscreteDstn to make it work with multivariate distributions #646
  • BayerLuetticke removed from HARK, is now a REMARK #603
  • cstwMPC removed from HARK, is now a REMARK #666
  • SolvingMicroDSOPs removed from HARK, is now a REMARK #651
  • constructLogNormalIncomeProcess is now a method of IndShockConsumerType #661
  • Discretize continuous distributions #657
  • Data used in cstwMPC is now in HARK.datasets #622
  • Refactor checkConditions by adding a checkCondition method instead of writing custom checks for each condition #568
  • Examples update #768, #759, #756, #727, #698, #697, #561, #654, #633, #775

0.10.6

17 Apr 21:18
8073a17
Compare
Choose a tag to compare

0.10.6

Release Date: 17-04-2020

Major Changes

  • Add Bellman equations for cyclical model example #600

  • read_shocks now reads mortality as well #613

  • Discrete probability distributions are now classes #610

Minor Changes

0.10.5

23 Mar 23:51
65bc76c
Compare
Choose a tag to compare

0.10.5

Release Date: 24-03-2020

Major Changes

  • Default parameters dictionaries for ConsumptionSaving models have been moved from ConsumerParameters to nearby the classes that use them. #527

  • Improvements and cleanup of ConsPortfolioModel, and adding the ability to specify an age-varying list of RiskyAvg and RiskyStd. #577

  • Rewrite and simplification of ConsPortfolioModel solver. #594

Minor Changes

0.10.4

05 Mar 17:58
08c7ec5
Compare
Choose a tag to compare

0.10.4

Release Date: 05-03-2020

Major Changes

  • Last release to support Python 2.7, future releases of econ-ark will support Python 3.6+ #478
  • Move non-reusable model code to examples directory, BayerLuetticke, FashionVictim now in examples instead of in HARK code #442
  • Load default parameters for ConsumptionSaving models #466
  • Improved implementaion of parallelNelderMead #300

Minor Changes

  • Notebook utility functions for determining platform, GUI, latex (installation) are available in HARK.utilities #512
  • Few DemARKs moved to examples #472
  • MaxKinks available in ConsumerParameters again #486