A code library for quantitative economic modeling in Python
Library Website: https://quantecon.org/quantecon-py/
See the library website for instructions
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:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
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.
-
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.
For a complete list of changes please refer to the CHANGELOG.md
This is a bug fix release
Maintain:
- FIX: markov: Respect dtype of P in cdfs ([oyamad], thanks @btanner for reporting issue)
- LGTM code quality suggestions (nshea3)
New:
- ENH: Add Numba-jitted linprog solver ([oyamad])
- EHN: Add minmax solver ([oyamad])
- ENH: Add LP solution method to DiscreteDP ([oyamad])
Maintain:
- MAINT: Use multivariate_normal via random_state ([oyamad])
- FIX: minmax: Fix redundancy ([oyamad])
- DOCS: Fix typos in Docs ([timgates42])
Breaking Changes:
Other Changes:
- FIX: [kalman] Always initialize self.Sigma and self.x_hat #562 (rht)
- TST: Setup Tests via Github Actions #561 (rht)
- ENH: Update root_finding.py #560 (alanlujan91)
Special thanks for contributions by rht, shizejin, alanlujan91, and oyamad
- FIX: rank-size test by inc. sample size #556 (bktaha)
- REF and TEST: rank_size in inequality.py #551 (bktaha)
- FIX: ValueError
LQMarkov
convergence failed, Closes #508 #550 (bktaha) - rank_size_plot_typo #545 (shlff)
- Fix variables never used lgtm warnings in dle.py. #542 (duncanhobbs)
- Fix lgtm warnings in quadsums.py. #541 (duncanhobbs)
- Fix lgtm warning for arma.py. #540 (duncanhobbs)
Special thanks for contributions by bktaha, duncanhobbs, and shlff.
- FIX: Updates for Numba 0.49.0 #531 (oyamad)
- FIX: a link on README #529 (oyamad)
- UPD: Remove unused variable #526 (MKobayashi23m)
- UPD: bimatrix_generators: Define
\_\_all\_\_
#525 (oyamad) - UPD: remove old test commands from Makefile #524 (mmcky)
- FEAT: Adds a rank size plot to inequality #518 (jstac)
- UPD: General cleanup of Package #515 (mmcky)
- [FIX] Fix Future Warnings in ivp.py and test_quad.py and RuntimeError in lq_control.py. #509 (duncanhobbs)
- FIX: Player.is_dominated: Fix warnings #504 (oyamad)
- FIX: random.draw: Replace
random\_sample
withrandom
#503 (oyamad) - FIX: two minor modifications in
lqcontrol
#498 (shizejin) - UPD: Update travis to use python=3.7 #494 (mmcky)
- ENH: Add
LQMarkov
. #489 (shizejin) - FIX: Increase
tol
inrouwenhorst
test. #492 (shizejin) to fix #491 - TRAVIS: Set coverage branch as
linux
. #490 (shizejin) - FIX: DOC: Remove
matplotlib.sphinxext.only\_directives
#488 (oyamad)
- FEAT: Add drift term keyword to
markov.tauchen
. #484 (shizejin) - FIX: Import scipy.sparse.linalg #482 (oyamad)
- FIX:
sample\_without\_replacement
using guvectorize #479 (oyamad) - FEAT: Add
random\_pure\_actions
andrandom\_mixed\_actions
#477 (okuchap) - FIX: Raise correct error when
A
is not square inLinearStateSpace
#475 (QBatista) - FIX: alerts by lgtm #474 (okuchap)
- Fix flake8 errors #470 (rht)
- TEST: Fix the names of tests for
brent\_max
#469 (QBatista) - DOC: Update example for
nelder\_mead
#468 (QBatista) - FIX: all F401 unused imports #467 (rht)
- INFRA: Isolate rtd-specific requirements to doc-requirements.txt #464 (rht)
- DOCS: fix for lorenz documentation #462 (natashawatkins)
- INFRA: Disable performance tests #461 (rht)
- ENH: quad: Import sympy only when necessary #459 (rht)
- INFRA: Travis: Move dependency installs with wheels available to pip #458 (rht)
- DOCS: Update Documentation #454 (mmcky)
- README: Update coveralls badge to use svg #453 (rht)
- FIX: Fix warning in test_pure_nash #451 (oyamad)
- ENH: Add errors for invalid inputs for
brent\_max
#450 (QBatista) - INFRA: Travis: Add macOS to the build matrix #448 (rht)
- FEAT: Add Shorrocks mobility index #447 (natashawatkins)
- FIX: test
method
keyword ofRepeatedGame.equilibrium\_payoffs\(\)
. #446 (shizejin)
- FEAT: Add AS algorithm. #433 (shizejin)
- FEAT: Add method option in robustlq.py #437 (hinayuki64)
- FEAT: Add Player.delete_action, NormalFormGame.delete_action #444 (oyamad)
- FEAT: Add the Nelder-Mead algorithm #441 (QBatista)
- FEAT: Added basic inequality mesasures: lorenz curve and gini #414 (cdagnino)
- MAINT: Remove
from future import ...
#436 (hinayuki64) - FIX: Force tuple elements to have the same dtype #435 (oyamad)
- DOC: fix brent_max docstring #440 (natashawatkins)
- FIX: Disallow Player with 0 actions #443 (oyamad)
- FEAT: add solver for dynamic linear economies as LQ problem #426 (mmcky)
- DOC: Fix the doc of
root\_finding.py
to display nicely #431 (QBatista)
- FEAT: Add bisection and brent's method for root finding. See PR #424 (spvdchachan)
- FEAT: Add
qhull\_options
togame\_theory.vertex\_enumeration
. See PR #421 (oyamad) - FEAT: Root finding. See PR #417 (chrishyland)
- FEAT: Add
'interior-point'
option tois\_dominated
; adddominated\_actions
. See PR #415 (oyamad) - FEAT: Add hamilton filter. See PR #405 (Shunsuke-Hori)
- FEAT: Add sample game generators from bimatrix-generators. See PR #392 (oyamad)
- MAINT: update to new rtd requirements spec. See PR #427 (mmcky)
- MAINT: Add
requests
to setup.py. See PR #420 (oyamad) - MAINT: Add
mock
to the dependencies list. See PR #418 (oyamad) - TEST: Fix test_discrete_rv. See PR #412 (oyamad)
- MAINT: add minimum version number for numba support. See PR #409 (mmcky)
- MAINT: Setup an auto-generate changelog for releases. See PR #403 (mmcky)
- FEAT: Add random.draw. See PR #397
- FEAT: Add Numba jit version of scipy.special.comb. See PR #377
- FEAT: Add random_tournament_graph for game theory module. See PR #378
- MAINT: Implement Sigma_infinity and K_infinity as properties. See PR #396
- MAINT: Use
np.ix_
to extract submatrix. See PR #389 - MAINT: support_enumeration: Refactoring. See PR #384
- MAINT: pure_nash_brute: Add tol option. See PR #385
- MAINT: NormalFormGame: Add
payoff_arrays
attribute. See PR #382 - MAINT: Re-implement
next_k_array
; addk_array_rank
. See PR #379 - FIX: Fix tac, toc, loop_timer to return float. See PR #387
- FIX: Update to
scipy.special.com
. See PR #375 - DEPRECATE: remove models subpackage. See PR #383
- DOCS: Improvements to documentation. See PR #388
Contributors: oyamad, QBatista, mcsalgado, and okuchap
- FEAT: Add random_state option to arma.py with tests. See PR #329
- FEAT: New features for timing functions. See PR #340
- Improved test coverage (PR #343)
- FEAT: Add option to supply a random seed for discrete_rv, lqcontrol, lqnash, lss, and quad (PR #346)
- FIX: RBLQ: add pure forecasting case (PR #355)
- FEAT: jit the 1d quadrature routines (PR #352)
- FIX: Replace
np.isfinite(cn)
withcn * EPS < 1
(PR #361) - FEAT: Add option to
solve_discrete_riccati
to usescipy.linalg.solve_discrete_are
(PR #362) - FIX: Bugfix to
solve_discrete_riccati
(PR #364) - Minor Fixes (PR #342)
- FIX: support_enumeration: Use
_numba_linalg_solve
. See PR #311 - Updated Docstrings for better math rendering. See PR #315
- ENH: added routines to convert ddp between full and SA formulations. See PR #318
- Added tests for Distributions. See PR #324
- Added tests for lemke howson exceptions. See PR #323
- Added vertex_enumeration to game theory module. See PR #326
- Added
is_dominated
method to game_theory.player. See PR #327 - Minor Updates (PR #320, PR #321, PR #328)
- Add rouwenhorst method for approx AR(1) with MC. See PR #282
- Added tests to improve coverage (PR #282, PR #303, PR #309)
- Minor Fixes (PR #296, PR #297)
- Add support_enumeration, a simple algorithm that computes all mixed-action Nash equilibria of a non-degenerate 2-player game. See PR #263
- Various fixes for issues with numba. See PR #265, PR #283
- Add lemke_howson algorithm to game_theory module. See PR #268
- Add random game generators to game_theory module. See PR #270
- Implement the imitation game algorithm by McLennan and Tourky. See PR #273
- Add brute force for finding pure nash equilibria. See PR #276
- Improve parameter names to QuantEcon.notebooks dependency fetcher. See PR #279
- Utilities
tic
,tac
andtoc
moved to top level namespace of package. See PR #280
- Remove
python2.7
classifiers project only supportspython3.5+
- Migrate
sa_indices
to be a utility function for the markov submodule - Updates
probvec
to include a multi-core parallel option using numba infrastructure inquantecon/random/utilities.py
- Minor changes to
NormalFormGame
. See PR #226 - Update
tauchen
code to make use of Numba. See PR #227 - Remove
Python 2.7
from test environment. Will support Python 3.5+ - Updated
qe.util.nb_fetch
to not overwrite files by default - Remove
num_actions
from DiscreteDP. See PR #236 - Add states/nodes to
MarkovChain
/DiGraph
. See PR #237 - Updated
DiscreteDP
to includebackward_induction
(DiscreteDP now accepts beta=1). See PR #244 Numba
is now a formal dependency.- Modified
tauchen
to return aMarkovChain
instance. See PR #250
- Adds the
quantecon/game_theory/
sub package - Updates api for using
distributions
as a moduleqe.distributions
- Removes
quantecon/models
subpackage and the collection of code examples. Code has been migrated to the QuantEcon.applications repository. - Adds a utility for fetching notebook dependencies from QuantEcon.applications to support community contributed notebooks.