This is the next major release of the quantecon
package as it includes some breaking changes as listed below. It also
includes a number of new features and enhancements including learning algorithms in the game theory module, MLE estimation
for Markov Chains, in addition to some useful helper functions.
PR #601: Updates to public and private API
includes some deprecations which will issue warnings and a helpful suggestion on how to
update any effected imports from the quantecon
package.
- ENH: Add MLE Estimation for Markov Chains (jstac)
- ENH: Implement cartesian_nearest_index (oyamad)
- ENH: check_random_state: Accept np.random.Generator (oyamad)
- ENH: Add learning algorithms to Game Theory module (Yuya-Furusawa)
- FIX: Fix dtype in cartesian (oyamad)
- FIX: Bugfix in brd.py (oyamad)
- MAINT: player.is_dominated: Allow recent methods for scipy.optimize.linprog (oyamad)
- MAINT: Distinguish between private and public namespaces (Smit-create).
- MAINT: Clairfy hamilton_filter API (rht)
Thank you to (oyamad), (jstac), (Smit-create), (rht), and (Yuya-Furusawa) for all your contributions, PR reviews, and comments.
This is primarily a maintenance release to fix a number of deprecation notices, migrating the tests to use pytest
rather than nose
, and python packaging is moving to flit
Enhancement:
Thanks Smit-create as a first time contributor to the project, and oyamad for your assistance with this release.
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.