From a44e07fecd26bbe08527b5d024e754a8f238616f Mon Sep 17 00:00:00 2001 From: dominicWC <135868541+DominicWC@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:32:08 -0400 Subject: [PATCH] A PR with just the link fixes --- Documentation/conf.py | 5 ++++- Documentation/guides/quick_start.md | 16 +++++++++------- Documentation/overview/ARKitecture.md | 14 +++++++------- README.md | 12 ++++++------ examples/Journeys/Journey-PhD.ipynb | 14 +++++++------- 5 files changed, 33 insertions(+), 28 deletions(-) diff --git a/Documentation/conf.py b/Documentation/conf.py index d7ff37855..96fff5b8c 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -120,7 +120,7 @@ } nbsphinx_prolog = r""" -{% set docname = 'Documentation/' + env.doc2path(env.docname, base=None) %} +{% set docname = env.doc2path(env.docname, base=None) %} .. raw:: html @@ -164,6 +164,9 @@ # sphinx.ext.autosummary configuration autosummary_generate = True +# Orders functions by the source order +autodoc_member_order = "bysource" + # sphinx.ext.napoleon configuration napoleon_use_ivar = True # solves duplicate object description warning diff --git a/Documentation/guides/quick_start.md b/Documentation/guides/quick_start.md index bddb07ace..82ac21d7d 100644 --- a/Documentation/guides/quick_start.md +++ b/Documentation/guides/quick_start.md @@ -2,7 +2,7 @@ ## Installing HARK -HARK is an open source project that is compatible with Python 3. Currently, we recommend using version 3.10 or higher. +HARK is an open source project that is compatible with Python 3. Currently, HARK is supported for python versions 3.10 or higher. The simplest way to install HARK is to use [pip](https://pip.pypa.io/en/stable/installation/) by running `pip install econ-ark` in your command line. @@ -11,7 +11,7 @@ Before installing HARK, we recommend creating a new virtual environment, which i The easiest way to get started with managing environments is to use `conda`, which is packaged with either the [Anaconda](https://anaconda.com/) distribution or [Miniconda](https://docs.conda.io/projects/miniconda/en/latest/). To create a new virtual environment and install `econ-ark`, enter this in your command line: ``` -conda create -n econ-ark python=3.10 +conda create -n econ-ark conda activate econ-ark pip install econ-ark ``` @@ -20,12 +20,14 @@ pip install econ-ark We've prepared a set of 30-second Elevator Spiels describing the project, tailored to people with several different kinds of background. -To start learning HARK we recommend working through the [Overview and Examples](https://docs.econ-ark.org/overview/index.html) section starting with [A Gentle Introduction to HARK](https://docs.econ-ark.org/example_notebooks/Gentle-Intro-To-HARK.html). +To start learning HARK we recommend working through the [Overview and Examples](https://docs.econ-ark.org/Documentation/overview/index.html) section starting with [A Gentle Introduction to HARK](https://docs.econ-ark.org/examples/Gentle-Intro/Gentle-Intro-To-HARK.html). :::{dropdown} For people without a technical/scientific/computing background :color: secondary :icon: info Recent years have seen major advances in the ability of computational tools to explain the economic behavior of households, firms, and whole economies. But a major impediment to the widespread adoption of these techniques among economists has been the extent to which the advances are the culmination of years of development of intricate and hand-crafted (but mutually incomprehensible) computational tools by a few pioneering scholars and their students. The aim of the Econ-ARK project is to make it much easier for new scholars to begin using these techniques, by providing a modern, robust, open-source set of high-quality computational tools with components that can be mixed, matched, and extended to address the wide variety of problems across all fields of economics that can be effectively studied using such tools. + +For users unfamiliar with programming, we strongly encourage you to review the background material on python provided by the good people at [QuantEcon](https://python-programming.quantecon.org/intro.html) including the material on NumPy. ::: :::{dropdown} For people with a technical/scientific/computing background but little economics background @@ -41,7 +43,7 @@ Most of what economists have done so far with 'big data' has been like what Kepl The Econ-ARK project is motivated by a sense that quantitative structural modeling of economic agents' behavior (consumers; firms), at present, is roughly like econometric modeling in the 1960s: Lots of theoretical results are available and a great deal can be done in principle, but actually using such tools for any specific research question requires an enormous investment of a scholar's time and attention to learn techniques that are fundamentally not related to economics but instead are algorithmic/computational (in the 1960s, e.g., inverting matrices; now, e.g., solving dynamic stochastic optimization problems). The toolkit is built using the suite of open source, transparent tools for collaborative software development that have become ubiquitous in other fields in the last few years: Github, object-oriented coding, and methods that make it much easier to produce plug-and-play software modules that can be (relatively) easily combined, enhanced and adapted to address new problems. -After working through the [Overview and Examples](https://docs.econ-ark.org/overview/index.html) section: +After working through the [Overview and Examples](https://docs.econ-ark.org/Documentation/overview/index.html) section: - A full replication of the [Iskhakov, Jørgensen, Rust, and Schjerning](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE643) paper for solving the discrete-continuous retirement saving problem - An informal discussion of the issues involved is [here](https://github.com/econ-ark/DemARK/blob/master/notebooks/DCEGM-Upper-Envelope.ipynb) (part of the [DemARK](https://github.com/econ-ark/DemARK) repo) @@ -55,7 +57,7 @@ After working through the [Overview and Examples](https://docs.econ-ark.org/over Dissatisfaction with the ability of Representative Agent models to answer important questions raised by the Great Recession has led to a strong movement in the macroeconomics literature toward 'Heterogeneous Agent' models, in which microeconomic agents (consumers; firms) solve a structural problem calibrated to match microeconomic data; aggregate outcomes are derived by explicitly simulating the equilibrium behavior of populations solving such models. The same kinds of modeling techniques are also gaining popularity among microeconomists, in areas ranging from labor economics to industrial organization. In both macroeconomics and structural micro, the chief barrier to the wide adoption of these techniques has been that programming a structural model has, until now, required a great deal of specialized knowledge and custom software development. The aim of the Econ-ARK project is to provide a robust, well-designed, open-source infrastructure for building such models much more efficiently than has been possible in the past. -After working through the [Overview and Examples](https://docs.econ-ark.org/overview/index.html) section: +After working through the [Overview and Examples](https://docs.econ-ark.org/Documentation/overview/index.html) section: - A simple indirect inference/simulated method of moments structural estimation along the lines of Gourinchas and Parker's 2002 Econometrica paper or Cagetti's 2003 paper is performed by the [SolvingMicroDSOPs](https://github.com/econ-ark/SolvingMicroDSOPs/) [REMARK](https://github.com/econ-ark/REMARK); this code implements the solution methods described in the corresponding section of [these lecture notes](https://llorracc.github.io/SolvingMicroDSOPs/). ::: @@ -68,7 +70,7 @@ The Econ-ARK project's aim is to create a modular and extensible open-source too ### Demonstrations on using HARK -Most of the modules in HARK are just collections of tools. There are a few demonstrations/applications that use the tools that you automatically get when you install HARK -- they are available in [Overview & Examples](https://docs.econ-ark.org/overview/index.html). A much larger set of uses of HARK can be found at two repositories: +Most of the modules in HARK are just collections of tools. There are a few demonstrations/applications that use the tools that you automatically get when you install HARK -- they are available in [Overview & Examples](https://docs.econ-ark.org/Documentation/overview/index.html). A much larger set of uses of HARK can be found at two repositories: - [DemARK](https://github.com/econ-ark/DemARK): Demonstrations of the use of HARK - [REMARK](https://github.com/econ-ark/REMARK): Replications of existing papers made using HARK @@ -89,4 +91,4 @@ jupyter notebook ## Next steps -To learn more about how to use HARK, check the next sections in this documentation, in particular the example notebooks. For instructions on making changes to HARK, refer to our [contributing guide](https://docs.econ-ark.org/guides/contributing.html). +To learn more about how to use HARK, check the next sections in this documentation, in particular the example notebooks. For instructions on making changes to HARK, refer to our [contributing guide](https://docs.econ-ark.org/Documentation/guides/contributing.html). diff --git a/Documentation/overview/ARKitecture.md b/Documentation/overview/ARKitecture.md index 13d3a5bcf..1d30a407f 100644 --- a/Documentation/overview/ARKitecture.md +++ b/Documentation/overview/ARKitecture.md @@ -36,7 +36,7 @@ Python modules in HARK can generally be categorized into two types: tools and mo ## HARK -After you [installed](https://docs.econ-ark.org/guides/installation.html) or [cloned the repository of](https://github.com/econ-ark/HARK) HARK, you can explore the content of it. In the subfolder HARK, you can find a range of [general purpose tools](#general-purpose-tools), as well as the next subfolder ConsumptionSaving which has [AgentType subclasses](#agenttype-class) and [Market subclasses](#market-class). +After you [installed](https://docs.econ-ark.org/Documentation/guides/installation.html) or [cloned the repository of](https://github.com/econ-ark/HARK) HARK, you can explore the content of it. In the subfolder HARK, you can find a range of [general purpose tools](#general-purpose-tools), as well as the next subfolder ConsumptionSaving which has [AgentType subclasses](#agenttype-class) and [Market subclasses](#market-class). ### General Purpose Tools @@ -53,15 +53,15 @@ Macroeconomic models in HARK use the **_Market_** class to represent a market (o #### HARK.metric **_HARK.metric_** defines a superclass called **_MetricObject_** that is used throughout HARK's tools and models. When solving a dynamic microeconomic model with an infinite horizon (or searching for a dynamic general equilibrium), it is often required to consider whether two solutions are sufficiently close to each other to warrant stopping the process (i.e. approximate convergence). It is thus necessary to calculate the ''distance'' between two solutions, so HARK specifies that classes should have a **_distance_** method that takes a single input and returns a non-negative value representing the (generally unitless) distance between the object in question and the input to the method. As a convenient default, **_MetricObject_** provides a ''universal distance metric'' that should be useful in many contexts. (Roughly speaking, the universal distance metric is a recursive supnorm, returning the largest distance between two instances, among attributes named in **_distance_criteria_**. Those attributes might be complex objects themselves rather than real numbers, generating a recursive call to the universal distance metric. -) When defining a new subclass of **_MetricObject_**, the user simply defines the attribute **_distance_criteria_** as a list of strings naming the attributes of the class that should be compared when calculating the distance between two instances of that class. For example, the class **_ConsumerSolution_** has **_distance_criteria = ['cFunc']_**, indicating that only the consumption function attribute of the solution matters when comparing the distance between two instances of **_ConsumerSolution_**. See [here](https://docs.econ-ark.org/reference/tools/metric.html) for further documentation. +) When defining a new subclass of **_MetricObject_**, the user simply defines the attribute **_distance_criteria_** as a list of strings naming the attributes of the class that should be compared when calculating the distance between two instances of that class. For example, the class **_ConsumerSolution_** has **_distance_criteria = ['cFunc']_**, indicating that only the consumption function attribute of the solution matters when comparing the distance between two instances of **_ConsumerSolution_**. See [here](https://docs.econ-ark.org/Documentation/reference/tools/metric.html) for further documentation. #### HARK.utilities -The **_HARK.utilities_** module contains a variety of general purpose tools, including some data manipulation tools (e.g. for calculating an average of data conditional on being within a percentile range of different data), basic kernel regression tools, convenience functions for retrieving information about functions, and basic plotting tools using **_matplotlib.pyplot_**. See [here](https://docs.econ-ark.org/reference/tools/utilities.html) for further documentation. +The **_HARK.utilities_** module contains a variety of general purpose tools, including some data manipulation tools (e.g. for calculating an average of data conditional on being within a percentile range of different data), basic kernel regression tools, convenience functions for retrieving information about functions, and basic plotting tools using **_matplotlib.pyplot_**. See [here](https://docs.econ-ark.org/Documentation/reference/tools/utilities.html) for further documentation. #### HARK.distribution -The **_HARK.distribution_** module includes classes for representing continuous distributions in a relatively consistent framework. Critically for numeric purposes, it also has methods and functions for constructing discrete approximations to those distributions (e.g. **_approx\_lognormal()_** to approximate a log-normal distribution) as well as manipulating these representations (e.g. appending one outcome to an existing distribution, or combining independent univariate distributions into one multivariate distribution). As a convention in HARK, continuous distributions are approximated as finite discrete distributions when solving models. This both simplifies solution methods (reducing numeric integrals to simple dot products) and allows users to easily test whether their chosen degree of discretization yields a sufficient approximation to the full distribution. See [here](https://docs.econ-ark.org/reference/tools/distribution.html) for further documentation. +The **_HARK.distribution_** module includes classes for representing continuous distributions in a relatively consistent framework. Critically for numeric purposes, it also has methods and functions for constructing discrete approximations to those distributions (e.g. **_approx\_lognormal()_** to approximate a log-normal distribution) as well as manipulating these representations (e.g. appending one outcome to an existing distribution, or combining independent univariate distributions into one multivariate distribution). As a convention in HARK, continuous distributions are approximated as finite discrete distributions when solving models. This both simplifies solution methods (reducing numeric integrals to simple dot products) and allows users to easily test whether their chosen degree of discretization yields a sufficient approximation to the full distribution. See [here](https://docs.econ-ark.org/Documentation/reference/tools/distribution.html) for further documentation. #### HARK.interpolation @@ -69,15 +69,15 @@ The **_HARK.interpolation_** module defines classes for representing interpolate When evaluating a stopping criterion for an infinite horizon problem, it is often necessary to know the ''distance'' between functions generated by successive iterations of a solution procedure. To this end, each interpolator class in HARK must define a **_distance_** method that takes as an input another instance of the same class and returns a non-negative real number representing the ''distance'' between the two. As each of the **_HARKinterpolatorXD_** classes inherits from **_MetricObject_**, all interpolator classes have the default ''universal'' distance method; the user must simply list the names of the relevant attributes in the attribute **_distance_criteria_** of the class. -Interpolation methods currently implemented in HARK include (multi)linear interpolation up to 4D, 1D cubic spline interpolation, (multi)linear interpolation over 1D interpolations (up to 4D total), (multi)linear interpolation over 2D interpolations (up to 4D total), linear interpolation over 3D interpolations, 2D curvilinear interpolation over irregular grids, interpolors for representing functions whose domain lower bound in one dimension depends on the other domain values, and 1D lower/upper envelope interpolators. See [here](https://docs.econ-ark.org/reference/tools/interpolation.html) for further documentation. +Interpolation methods currently implemented in HARK include (multi)linear interpolation up to 4D, 1D cubic spline interpolation, (multi)linear interpolation over 1D interpolations (up to 4D total), (multi)linear interpolation over 2D interpolations (up to 4D total), linear interpolation over 3D interpolations, 2D curvilinear interpolation over irregular grids, interpolors for representing functions whose domain lower bound in one dimension depends on the other domain values, and 1D lower/upper envelope interpolators. See [here](https://docs.econ-ark.org/Documentation/reference/tools/interpolation.html) for further documentation. #### HARK.estimation -Functions for optimizing an objective function for the purposes of estimating a model can be found in **_HARK.estimation_**. As of this writing, the implementation includes only minimization by the Nelder-Mead simplex method, minimization by a derivative-free Powell method variant, and two small tools for resampling data (i.e. for a bootstrap); the minimizers are merely convenience wrappers (with result reporting) for optimizers included in **_scipy.optimize_**. The module also has functions for a parallel implementation of the Nelder-Mead simplex algorithm, as described in Wiswall and Lee (2011). Future functionality will include more robust global search methods, including genetic algorithms, simulated annealing, and differential evolution. See [here](https://docs.econ-ark.org/reference/tools/estimation.html) for full documentation. +Functions for optimizing an objective function for the purposes of estimating a model can be found in **_HARK.estimation_**. As of this writing, the implementation includes only minimization by the Nelder-Mead simplex method, minimization by a derivative-free Powell method variant, and two small tools for resampling data (i.e. for a bootstrap); the minimizers are merely convenience wrappers (with result reporting) for optimizers included in **_scipy.optimize_**. The module also has functions for a parallel implementation of the Nelder-Mead simplex algorithm, as described in Wiswall and Lee (2011). Future functionality will include more robust global search methods, including genetic algorithms, simulated annealing, and differential evolution. See [here](https://docs.econ-ark.org/Documentation/reference/tools/estimation.html) for full documentation. #### HARK.parallel -By default, processes in Python are single-threaded, using only a single CPU core. The **_HARK.parallel_** module provides basic tools for using multiple CPU cores simultaneously, with minimal effort. In particular, it provides the function **_multi\_thread\_commands_**, which takes two arguments: a list of **_AgentType_** s and a list of commands as strings; each command should be a method of the **_AgentType_** s. The function simply distributes the **_AgentType_** s across threads on different cores and executes each command in order, returning no output (the **_AgentType_** s themselves are changed by running the commands). Equivalent results would be achieved by simply looping over each type and running each method in the list. Indeed, **_HARK.parallel_** also has a function called **_multi\_thread\_commands\_fake_** that does just that, with identical syntax to **_multi\_thread_\commands_**. Multithreading in HARK can thus be easily turned on and off. See [here](https://docs.econ-ark.org/reference/tools/parallel.html) for full documentation. +By default, processes in Python are single-threaded, using only a single CPU core. The **_HARK.parallel_** module provides basic tools for using multiple CPU cores simultaneously, with minimal effort. In particular, it provides the function **_multi\_thread\_commands_**, which takes two arguments: a list of **_AgentType_** s and a list of commands as strings; each command should be a method of the **_AgentType_** s. The function simply distributes the **_AgentType_** s across threads on different cores and executes each command in order, returning no output (the **_AgentType_** s themselves are changed by running the commands). Equivalent results would be achieved by simply looping over each type and running each method in the list. Indeed, **_HARK.parallel_** also has a function called **_multi\_thread\_commands\_fake_** that does just that, with identical syntax to **_multi\_thread_\commands_**. Multithreading in HARK can thus be easily turned on and off. See [here](https://docs.econ-ark.org/Documentation/reference/tools/parallel.html) for full documentation. #### HARK.rewards diff --git a/README.md b/README.md index 1a79ff846..c50f2aff0 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ We have a [Gitter](https://gitter.im) Econ-ARK [community](https://gitter.im/eco - [Citation](#citation) - [Support](#support) - [Release Types](#release-types) -- [API Documentation](#api-documentation) +- [Documentation](#Documentation) - [Introduction](#introduction) - [For Students: A Gentle Introduction to Hark](#for-students-a-gentle-introduction-to-hark) - [For Economists: Structural Modeling with Hark](#for-economists-structural-modeling-with-hark) @@ -138,9 +138,9 @@ Or you can retrieve the solved value for human wealth normalized by permanent in PFexample.solution[0].hNrm ``` -For a detailed explanation of the above example please see the demo notebook [_A Gentle Introduction to HARK_](https://mybinder.org/v2/gh/econ-ark/HARK/master?filepath=examples/Gentle-Intro/Gentle-Intro-To-HARK.ipynb). +For a detailed explanation of the above example please see the demo notebook [_A Gentle Introduction to HARK_](https://docs.econ-ark.org/examples/Gentle-Intro/Gentle-Intro-To-HARK.html). -For more examples please visit the [econ-ark/DemARK](https://github.com/econ-ark/DemARK) repository. +For more examples please visit the [examples](https://docs.econ-ark.org/Documentation/overview/index.html) section of the [documentation](https://docs.econ-ark.org/index.html), or the [econ-ark/DemARK](https://github.com/econ-ark/DemARK) repository. ## Citation @@ -209,7 +209,7 @@ HARK provides a modular and extensible open-source toolkit for solving heterogen HARK is written in Python, making significant use of libraries such as numpy and scipy which offer a wide array of mathematical and statistical functions and tools. Our modules are generally categorized into Tools (mathematical functions and techniques), Models (particular economic models and solvers) and Applications (use of tools to simulate an economic phenomenon). -For more information on how you can create your own Models or use Tools and Model to create Applications please see the [documentation](https://docs.econ-ark.org/guides/quick_start.html#for-other-developers-of-software-for-computational-economics) +For more information on how you can create your own Models or use Tools and Model to create Applications please see the [documentation](https://docs.econ-ark.org/Documentation/guides/quick_start.html#for-other-developers-of-software-for-computational-economics) ### Contributing to HARK @@ -230,9 +230,9 @@ Contributions go far beyond pull requests and commits. Although we love giving y If you are worried or don’t know how to start, you can always reach out to us through the gitter [community](https://gitter.im/econ-ark/community)(#tsc-technical-steering-committee) or simply submit [an issue](https://github.com/econ-ark/HARK/issues/new) and a member can help give you guidance! -To install for development see the [Quickstart Guide](https://docs.econ-ark.org/guides/installation.html). +To install for development see the [Quickstart Guide](https://docs.econ-ark.org/Documentation/guides/installation.html). -For more information on contributing to HARK please see [the contributing guide](https://docs.econ-ark.org/guides/contributing.html). +For more information on contributing to HARK please see [the contributing guide](https://docs.econ-ark.org/Documentation/guides/contributing.html). This is the guide that collaborators follow in maintaining the Econ-ARK project. ## Disclaimer diff --git a/examples/Journeys/Journey-PhD.ipynb b/examples/Journeys/Journey-PhD.ipynb index d71a9a091..8c2f25f94 100644 --- a/examples/Journeys/Journey-PhD.ipynb +++ b/examples/Journeys/Journey-PhD.ipynb @@ -45,7 +45,7 @@ "M_{t+1} &=& R (M_{t}-C_{t}) + Y_t, \\\\\n", "\\end{eqnarray*}\n", "\n", - "Finding a distribution of agent assets (consumption, savings) must involve much more advanced numerical tools than in the representative agent setting. This is more demanding task to accomplish and master. Moreover, the knowledge about involved numerical methods is less systematic, and often hard to find. To quote the HARK [Documentation](https://docs.econ-ark.org/overview/introduction.html):\n", + "Finding a distribution of agent assets (consumption, savings) must involve much more advanced numerical tools than in the representative agent setting. This is more demanding task to accomplish and master. Moreover, the knowledge about involved numerical methods is less systematic, and often hard to find. To quote the HARK [Documentation](https://docs.econ-ark.org/Documentation/overview/introduction.html):\n", "\n", "*\"After months of effort, you may have had the character-improving experience of\n", "proudly explaining to your adviser that not only had you grafted two ideas\n", @@ -428,7 +428,7 @@ "\n", "The Market class was designed to be a general framework for many different macro models. It involves a procedure of aggregating the agents' choices: eg. aggregating consumption and savings (`reap_vars` in the code) and then transforming the aggregated variables (`mill_rule` in the code).\n", "\n", - "If you would like to get better knowledge about this structure, first take a look at the [Hark documentation](https://docs.econ-ark.org/overview/ARKitecture.html). Next, to understand how the HARK Market class works in less standard setting, look at the [Fashion victim model](https://github.com/econ-ark/DemARK/blob/99948acb7b59cc9a6fb7de758972266fa4b03a06/notebooks/Fashion-Victim-Model.ipynb).\n" + "If you would like to get better knowledge about this structure, first take a look at the [Hark documentation](https://docs.econ-ark.org/Documentation/overview/ARKitecture.html). Next, to understand how the HARK Market class works in less standard setting, look at the [Fashion victim model](https://github.com/econ-ark/DemARK/blob/99948acb7b59cc9a6fb7de758972266fa4b03a06/notebooks/Fashion-Victim-Model.ipynb).\n" ] }, { @@ -445,7 +445,7 @@ "\n", "When you look at the [HARK](https://github.com/econ-ark/HARK) sources, you will find the subdirectory called HARK. Next there is a script called \"core. py\". Surprisingly, you will not find this code in many of the subclasses which you learned during this journey!\n", "\n", - "The reason for this is that HARK.core.py is a core of the package: a framework for all models which can be coded in HARK. It contains the general framework of the agent-type classes (AgentType class) and for the market. The exact structure of modules in the HARK core you can find in the [Hark documentation](https://docs.econ-ark.org/overview/ARKitecture.html#general-purpose-tools). Here, you can also find the general structure of the [AgentType](https://docs.econ-ark.org/overview/ARKitecture.html#agenttype-class) and [Market classes](https://docs.econ-ark.org/overview/ARKitecture.html#market-class).\n", + "The reason for this is that HARK.core.py is a core of the package: a framework for all models which can be coded in HARK. It contains the general framework of the agent-type classes (AgentType class) and for the market. The exact structure of modules in the HARK core you can find in the [Hark documentation](https://docs.econ-ark.org/Documentation/overview/ARKitecture.html#general-purpose-tools). Here, you can also find the general structure of the [AgentType](https://docs.econ-ark.org/Documentation/overview/ARKitecture.html#agenttype-class) and [Market classes](https://docs.econ-ark.org/Documentation/overview/ARKitecture.html#market-class).\n", "\n", "Where are the subclasses which you'v learned during the journey? In HARK, the subclasses are located in the separate directories. For the AgentType subclasses, you need to look at HARK.ConsumptionSaving directory. For example, `PerfForesightConsumerType` and `IndShockConsumerType` can be found in ConsIndShockModel.py. Nevertheless, if you want to understand any of the HARK modules, you must first understand `HARK.core`.\n", "\n", @@ -472,12 +472,12 @@ "\n", "We hope that this section gave you some idea how the HARK library works. However, HARK contains much more than is discussed here. Here is some more guidance on how to continue your journey:\n", "\n", - "- Before you start make sure that you understand the endogenous grid method, as well as the general framework structure for AgentType and Market from [HARK documentation](https://docs.econ-ark.org/overview/ARKitecture.html#agenttype-class).\n", - "- When working through HARK.core, make sure that you see the connection between the structure in the documentation and the code (check autodoc from the [HARK documentation](https://docs.econ-ark.org/reference/tools/core.html) webpage).\n", + "- Before you start make sure that you understand the endogenous grid method, as well as the general framework structure for AgentType and Market from [HARK documentation](https://docs.econ-ark.org/Documentation/overview/ARKitecture.html#agenttype-class).\n", + "- When working through HARK.core, make sure that you see the connection between the structure in the documentation and the code (check autodoc from the [HARK documentation](https://docs.econ-ark.org/Documentation/reference/tools/core.html) webpage).\n", "- Proceed to the ConsumptionSaving/ConsIndShockModel.py and compare the tutorials with the source code.\n", - "- Proceed to the ConsumptionSaving/ConsAggShockModel.py and compare the tutorial on the Market class with the source code, check [autodoc](https://docs.econ-ark.org/reference/ConsumptionSaving/ConsAggShockModel.html).\n", + "- Proceed to the ConsumptionSaving/ConsAggShockModel.py and compare the tutorial on the Market class with the source code, check [autodoc](https://docs.econ-ark.org/Documentation/reference/ConsumptionSaving/ConsAggShockModel.html).\n", "\n", - "So in general, when you want to learn any of the modules in the HARK toolkit, first check autodoc from the [HARK documentation](https://docs.econ-ark.org/reference/index.html) webpage.\n" + "So in general, when you want to learn any of the modules in the HARK toolkit, first check autodoc from the [HARK documentation](https://docs.econ-ark.org/Documentation/reference/index.html) webpage.\n" ] } ],