/QuantEcon.py

A community based Python library for quantitative economics

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Quantitative Economics (Python)

A code library for quantitative economic modeling in Python

Libary Website: https://quantecon.org/quantecon-py/

Installation

See the library website for instructions

Build and Coverage Status:

Build Status Coverage Status Code Quality: Python Total Alerts

ReadTheDocs Status:

Documentation Status

Gitter

Join the chat at https://gitter.im/QuantEcon/QuantEcon.py

Additional Links

  1. Project Coordinators
  2. Lead Developers
  3. QuantEcon Lecture Website

License

Copyright © 2013-2017 Thomas J. Sargent and John Stachurski: BSD-3 All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Major Changes

Ver 0.4.6 (09-December-2019)

  1. Adds a rank size plot to inequality #518 (jstac)
  2. General cleanup of Package #515 (mmcky)
  3. [FIX] Fix Future Warnings in ivp.py and test_quad.py and RuntimeError in lq_control.py. #509 (duncanhobbs)
  4. FIX: Player.is_dominated: Fix warnings #504 (oyamad)
  5. FIX: random.draw: Replace random\_sample with random #503 (oyamad)
  6. FIX: two minor modifications in lqcontrol #498 (shizejin)
  7. UPD: Update travis to use python=3.7 #494 (mmcky)

Ver 0.4.5 (08-July-2019)

  1. ENH: Add LQMarkov. #489 (shizejin)
  2. FIX: Increase tol in rouwenhorst test. #492 (shizejin) to fix #491
  3. TRAVIS: Set coverage branch as linux. #490 (shizejin)
  4. FIX: DOC: Remove matplotlib.sphinxext.only\_directives #488 (oyamad)

Ver 0.4.4 (24-May-2019)

  1. FEAT: Add drift term keyword to markov.tauchen. #484 (shizejin)
  2. FIX: Import scipy.sparse.linalg #482 (oyamad)
  3. FIX: sample\_without\_replacement using guvectorize #479 (oyamad)
  4. FEAT: Add random\_pure\_actions and random\_mixed\_actions #477 (okuchap)
  5. FIX: Raise correct error when A is not square in LinearStateSpace #475 (QBatista)
  6. FIX: alerts by lgtm #474 (okuchap)
  7. Fix flake8 errors #470 (rht)
  8. TEST: Fix the names of tests for brent\_max #469 (QBatista)
  9. DOC: Update example for nelder\_mead #468 (QBatista)
  10. FIX: all F401 unused imports #467 (rht)

Ver 0.4.3 (17-December-2018)

  1. INFRA: Isolate rtd-specific requirements to doc-requirements.txt #464 (rht)
  2. DOCS: fix for lorenz documentation #462 (natashawatkins)
  3. INFRA: Disable performance tests #461 (rht)
  4. ENH: quad: Import sympy only when necessary #459 (rht)
  5. INFRA: Travis: Move dependency installs with wheels available to pip #458 (rht)
  6. DOCS: Update Documentation #454 (mmcky)
  7. README: Update coveralls badge to use svg #453 (rht)
  8. FIX: Fix warning in test_pure_nash #451 (oyamad)
  9. ENH: Add errors for invalid inputs for brent\_max #450 (QBatista)
  10. INFRA: Travis: Add macOS to the build matrix #448 (rht)
  11. FEAT: Add Shorrocks mobility index #447 (natashawatkins)
  12. FIX: test method keyword of RepeatedGame.equilibrium\_payoffs\(\). #446 (shizejin)

Ver 0.4.2 (26-November-2018)

  1. FEAT: Add AS algorithm. #433 (shizejin)
  2. FEAT: Add method option in robustlq.py #437 (hinayuki64)
  3. FEAT: Add Player.delete_action, NormalFormGame.delete_action #444 (oyamad)
  4. FEAT: Add the Nelder-Mead algorithm #441 (QBatista)
  5. FEAT: Added basic inequality mesasures: lorenz curve and gini #414 (cdagnino)
  6. MAINT: Remove from future import ... #436 (hinayuki64)
  7. FIX: Force tuple elements to have the same dtype #435 (oyamad)
  8. DOC: fix brent_max docstring #440 (natashawatkins)
  9. FIX: Disallow Player with 0 actions #443 (oyamad)

Ver 0.4.1 (17-September-2018)

  1. FEAT: add solver for dynamic linear economies as LQ problem #426 (mmcky)
  2. DOC: Fix the doc of root\_finding.py to display nicely #431 (QBatista)

Ver 0.4.0 (20-August-2018)

  1. FEAT: Add bisection and brent's method for root finding. See PR #424 (spvdchachan)
  2. FEAT: Add qhull\_options to game\_theory.vertex\_enumeration. See PR #421 (oyamad)
  3. FEAT: Root finding. See PR #417 (chrishyland)
  4. FEAT: Add 'interior-point' option to is\_dominated; add dominated\_actions. See PR #415 (oyamad)
  5. FEAT: Add hamilton filter. See PR #405 (Shunsuke-Hori)
  6. FEAT: Add sample game generators from bimatrix-generators. See PR #392 (oyamad)
  7. MAINT: update to new rtd requirements spec. See PR #427 (mmcky)
  8. MAINT: Add requests to setup.py. See PR #420 (oyamad)
  9. MAINT: Add mock to the dependencies list. See PR #418 (oyamad)
  10. TEST: Fix test_discrete_rv. See PR #412 (oyamad)
  11. MAINT: add minimum version number for numba support. See PR #409 (mmcky)
  12. MAINT: Setup an auto-generate changelog for releases. See PR #403 (mmcky)

Ver 0.3.8 (14-March-2018)

  1. FEAT: Add random.draw. See PR #397
  2. FEAT: Add Numba jit version of scipy.special.comb. See PR #377
  3. FEAT: Add random_tournament_graph for game theory module. See PR #378
  4. MAINT: Implement Sigma_infinity and K_infinity as properties. See PR #396
  5. MAINT: Use np.ix_ to extract submatrix. See PR #389
  6. MAINT: support_enumeration: Refactoring. See PR #384
  7. MAINT: pure_nash_brute: Add tol option. See PR #385
  8. MAINT: NormalFormGame: Add payoff_arrays attribute. See PR #382
  9. MAINT: Re-implement next_k_array; add k_array_rank. See PR #379
  10. FIX: Fix tac, toc, loop_timer to return float. See PR #387
  11. FIX: Update to scipy.special.com. See PR #375
  12. DEPRECATE: remove models subpackage. See PR #383
  13. DOCS: Improvements to documentation. See PR #388

Contributors: oyamad, QBatista, mcsalgado, and okuchap

Ver 0.3.7 (01-November-2017)

  1. FEAT: Add random_state option to arma.py with tests. See PR #329
  2. FEAT: New features for timing functions. See PR #340
  3. Improved test coverage (PR #343)
  4. FEAT: Add option to supply a random seed for discrete_rv, lqcontrol, lqnash, lss, and quad (PR #346)
  5. FIX: RBLQ: add pure forecasting case (PR #355)
  6. FEAT: jit the 1d quadrature routines (PR #352)
  7. FIX: Replace np.isfinite(cn) with cn * EPS < 1 (PR #361)
  8. FEAT: Add option to solve_discrete_riccati to use scipy.linalg.solve_discrete_are (PR #362)
  9. FIX: Bugfix to solve_discrete_riccati (PR #364)
  10. Minor Fixes (PR #342)

Ver 0.3.6.2 (27-August-2017)

  1. FIX: support_enumeration: Use _numba_linalg_solve. See PR #311
  2. Updated Docstrings for better math rendering. See PR #315
  3. ENH: added routines to convert ddp between full and SA formulations. See PR #318
  4. Added tests for Distributions. See PR #324
  5. Added tests for lemke howson exceptions. See PR #323
  6. Added vertex_enumeration to game theory module. See PR #326
  7. Added is_dominated method to game_theory.player. See PR #327
  8. Minor Updates (PR #320, PR #321, PR #328)

Ver 0.3.5.1 (17-May-2017)

  1. Add rouwenhorst method for approx AR(1) with MC. See PR #282
  2. Added tests to improve coverage (PR #282, PR #303, PR #309)
  3. Minor Fixes (PR #296, PR #297)

Ver. 0.3.4 (23-February-2017)

  1. Add support_enumeration, a simple algorithm that computes all mixed-action Nash equilibria of a non-degenerate 2-player game. See PR #263
  2. Various fixes for issues with numba. See PR #265, PR #283
  3. Add lemke_howson algorithm to game_theory module. See PR #268
  4. Add random game generators to game_theory module. See PR #270
  5. Implement the imitation game algorithm by McLennan and Tourky. See PR #273
  6. Add brute force for finding pure nash equilibria. See PR #276
  7. Improve parameter names to QuantEcon.notebooks dependency fetcher. See PR #279
  8. Utilities tic, tac and toc moved to top level namespace of package. See PR #280

Ver. 0.3.3 (21-July-2016)

  1. Remove python2.7 classifiers project only supports python3.5+
  2. Migrate sa_indices to be a utility function for the markov submodule
  3. Updates probvec to include a multi-core parallel option using numba infrastructure in quantecon/random/utilities.py

Ver. 0.3.2 (25-April-2016)

  1. Minor changes to NormalFormGame. See PR #226
  2. Update tauchen code to make use of Numba. See PR #227
  3. Remove Python 2.7 from test environment. Will support Python 3.5+
  4. Updated qe.util.nb_fetch to not overwrite files by default
  5. Remove num_actions from DiscreteDP. See PR #236
  6. Add states/nodes to MarkovChain/DiGraph. See PR #237
  7. Updated DiscreteDP to include backward_induction (DiscreteDP now accepts beta=1). See PR #244
  8. Numba is now a formal dependency.
  9. Modified tauchen to return a MarkovChain instance. See PR #250

Ver. 0.3.1 (22-January-2016)

  1. Adds the quantecon/game_theory/ sub package
  2. Updates api for using distributions as a module qe.distributions

Ver. 0.3

  1. Removes quantecon/models subpackage and the collection of code examples. Code has been migrated to the QuantEcon.applications repository.
  2. Adds a utility for fetching notebook dependencies from QuantEcon.applications to support community contributed notebooks.