{ "info": { "author": "Jeff Gortmaker", "author_email": "jeff@jeffgortmaker.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering" ], "description": "An overview of the model, examples, references, and other documentation can be found on `Read the Docs `_.\n\n.. docs-start\n\nThe pyblp package is a Python 3 implementation of routines for estimating the demand for differentiated products with BLP-type random coefficients logit models. This package was created by `Jeff Gortmaker `_ in collaboration with `Chris Conlon `_.\n\nDevelopment of the package has been guided by the work of many researchers and practitioners. For a full list of references, including the original work of `Berry, Levinsohn, and Pakes (1995) `_, refer to the `references `_ section of the documentation.\n\n\nCitation\n--------\n\nIf you use pyblp in your research, we ask that you also cite `Conlon and Gortmaker (2019) `_, which describes the advances implemented in the package.\n\n\nInstallation\n------------\n\nThe pyblp package has been tested on `Python `_ versions 3.6 and 3.7. The `SciPy instructions `_ for installing related packages is a good guide for how to install a scientific Python environment. A good choice is the `Anaconda Distribution `_, since, along with many other packages that are useful for scientific computing, it comes packaged with pyblp's only required dependencies: `NumPy `_, `SciPy `_, `SymPy `_, and `Patsy `_.\n\nHowever, pyblp may not work with old versions of its dependencies. You can update pyblp's dependencies in Anaconda with::\n\n conda update numpy scipy sympy patsy\n\nYou can install the current release of pyblp with `pip `_::\n\n pip install pyblp\n\nYou can upgrade to a newer release with the ``--upgrade`` flag::\n\n pip install --upgrade pyblp\n\nIf you lack permissions, you can install pyblp in your user directory with the ``--user`` flag::\n\n pip install --user pyblp\n\nAlternatively, you can download a wheel or source archive from `PyPI `_. You can find the latest development code on `GitHub `_ and the latest development documentation `here `_.\n\n\nOther Languages\n---------------\n\nOnce installed, pyblp can be incorporated into projects written in many other languages with the help of various tools that enable interoperability with Python.\n\nFor example, the `reticulate `_ package makes interacting with pyblp in R straightforward::\n\n library(reticulate)\n pyblp <- import(\"pyblp\")\n\nSimilarly, `PyCall `_ can be used to incorporate pyblp into a Julia workflow::\n\n using PyCall\n pyblp = pyimport(\"pyblp\")\n\nThe `py command `_ serves a similar purpose in MATLAB::\n\n py.pyblp\n\n\nFeatures\n--------\n\n- R-style formula interface\n- Bertrand-Nash supply-side moments\n- Multiple equation GMM\n- Demographic interactions\n- Micro moments that match product and agent characteristic covariances\n- Fixed effect absorption\n- Nonlinear functions of product characteristics\n- Concentrating out linear parameters\n- Parameter bounds and constraints\n- Random coefficients nested logit (RCNL)\n- Varying nesting parameters across groups\n- Logit and nested logit benchmarks\n- Classic BLP instruments\n- Differentiation instruments\n- Optimal instruments\n- Tests of overidentifying and model restrictions\n- Parametric boostrapping post-estimation outputs\n- Elasticities and diversion ratios\n- Marginal costs and markups\n- Profits and consumer surplus\n- Merger simulation\n- Custom counterfactual simulation\n- Synthetic data construction\n- SciPy or Artleys Knitro optimization\n- Fixed point acceleration\n- Monte Carlo, product rule, or sparse grid integration\n- Custom optimization and iteration routines\n- Robust and clustered errors\n- Linear or log-linear marginal costs\n- Partial ownership matrices\n- Analytic gradients\n- Finite difference Hessians\n- Market-by-market parallelization\n- Extended floating point precision\n- Robust error handling\n\n\nFeatures Slated for Future Versions\n-----------------------------------\n\n- Other micro moments\n- Fast, \"Robust,\" and Approximately Correct (FRAC) estimation\n- Analytic Hessians\n- Mathematical Program with Equilibrium Constraints (MPEC)\n- Generalized Empirical Likelihood (GEL)\n- Discrete types\n- Pure characteristics model\n- Newton methods for computing equilibrium prices\n\n\nBugs and Requests\n-----------------\n\nPlease use the `GitHub issue tracker `_ to submit bugs or to request features.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeffgortmaker/pyblp", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyblp", "package_url": "https://pypi.org/project/pyblp/", "platform": "", "project_url": "https://pypi.org/project/pyblp/", "project_urls": { "Documentation": "http://pyblp.readthedocs.io/en/latest", "Homepage": "https://github.com/jeffgortmaker/pyblp", "Tracker": "https://github.com/jeffgortmaker/pyblp/issues" }, "release_url": "https://pypi.org/project/pyblp/0.8.0/", "requires_dist": [ "numpy (>=1.16.0)", "patsy (>=0.5.1)", "scipy (>=1.2.0)", "sympy (>=1.1.0)", "sphinx ; extra == 'docs'", "pandas ; extra == 'docs'", "ipython ; extra == 'docs'", "matplotlib ; extra == 'docs'", "astunparse ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "nbsphinx ; extra == 'docs'", "pytest ; extra == 'tests'", "pytest-xdist ; extra == 'tests'", "linearmodels ; extra == 'tests'" ], "requires_python": ">=3.6", "summary": "BLP demand estimation with Python 3", "version": "0.8.0" }, "last_serial": 5924387, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "dcd1112ff4415d5fb36fbc7017a42149", "sha256": "34ee85c7d1b71cc874275fbd983deda0318aaf7345552e3777a13a8d62acbd8c" }, "downloads": -1, "filename": "pyblp-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dcd1112ff4415d5fb36fbc7017a42149", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3332237, "upload_time": "2018-04-23T00:21:06", "url": "https://files.pythonhosted.org/packages/5a/a8/4273af37415284ccedea91e0eaf0888b3254ae2558f9995910476b647792/pyblp-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5486776bd09efed30967d5902c62a0d6", "sha256": "36a0fb965b3edf4ef72916a613293180d9eced688d6eda9e990a8eed8fc9fe61" }, "downloads": -1, "filename": "pyblp-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5486776bd09efed30967d5902c62a0d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3340552, "upload_time": "2018-04-23T00:21:50", "url": "https://files.pythonhosted.org/packages/dd/15/a751d525c8fc7213cae9de7cda074d87c5ed2d004006538b067947e80f23/pyblp-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "66f97815123b3e12600322ab460e50ca", "sha256": "4e43620c63fdc5d352dab57a119bdeb3ada3ffa4a46006fcccbcc235e53dda95" }, "downloads": -1, "filename": "pyblp-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "66f97815123b3e12600322ab460e50ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3332253, "upload_time": "2018-04-24T02:27:36", "url": "https://files.pythonhosted.org/packages/98/d1/9f7a99a235d877de1522035a3d2eb681d380cab2be6916d0a665868d4307/pyblp-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6135461839d11b547ff2ad19f628ffd7", "sha256": "8914443d3bcf4a4c99fc9e25bc9ac8bbdae7d504b03b5daef78d42ac9a1150a6" }, "downloads": -1, "filename": "pyblp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6135461839d11b547ff2ad19f628ffd7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3340847, "upload_time": "2018-04-24T02:28:21", "url": "https://files.pythonhosted.org/packages/44/f5/c19729ccc3bb29d5431f14be8c0a62649406ddd05d28d2736e3e0edabc77/pyblp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e8f40fe8cc0c9e0b73d69526de91838c", "sha256": "80b7a4ee98e1cc839e3841df6b495bdeb3089ba0a356320ea416e9d05f1846b7" }, "downloads": -1, "filename": "pyblp-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e8f40fe8cc0c9e0b73d69526de91838c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3332774, "upload_time": "2018-04-29T19:31:28", "url": "https://files.pythonhosted.org/packages/02/2c/edda38008342890c245a0ed054a281153c19e8e3e41f0d92fb94f8e39112/pyblp-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6d6526ed7a5b2ebc7ae0f0a2133fa89", "sha256": "59465124ac267325b7d0fa39f0fb200c1708c8c037601a45761a764738d38d6f" }, "downloads": -1, "filename": "pyblp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e6d6526ed7a5b2ebc7ae0f0a2133fa89", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3341237, "upload_time": "2018-04-29T19:32:13", "url": "https://files.pythonhosted.org/packages/3b/ef/4a4261374f1b57ee4b243502a33dc43b70f60265740535113d3cb45e91a0/pyblp-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "abdcfd9c97174d6f324846baa03db941", "sha256": "13772c5b28b703820d583e4fe203cc997d4d1db8abc99238799a9e15bdb4a598" }, "downloads": -1, "filename": "pyblp-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "abdcfd9c97174d6f324846baa03db941", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2824954, "upload_time": "2018-05-27T00:03:55", "url": "https://files.pythonhosted.org/packages/a7/63/61b2b322b16860ed0c992179196b3a8722bd380cbc6bfac34cf8ba2927cd/pyblp-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa430e26bf381d43b11f2ddc73293891", "sha256": "127f601b9370393739ef48db701a6921adce70121ae369429770af232474b549" }, "downloads": -1, "filename": "pyblp-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fa430e26bf381d43b11f2ddc73293891", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2834784, "upload_time": "2018-05-27T00:04:33", "url": "https://files.pythonhosted.org/packages/26/aa/d1bdec46cdd1fcbc14593489e12f0c67f6f3f7b2d618ac1f8c6ff974f574/pyblp-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "22852983e868777836d735316fcad09b", "sha256": "10489995006a6f440eec9bacb6f5070ef9b4d8f9c15cbe0fc456a3f769486d08" }, "downloads": -1, "filename": "pyblp-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "22852983e868777836d735316fcad09b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2839453, "upload_time": "2018-06-18T01:19:41", "url": "https://files.pythonhosted.org/packages/91/b0/5871559f1fb4e23f1b78d8ac6053a194397589afbcce7d9b24ce2bf8f93a/pyblp-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5f898469a7c4501b6b333ef23c4544c", "sha256": "bafb89ccf1531f9e1e1834b4d18cb0b79625c862227f2bd2e21f55f32d8c4fae" }, "downloads": -1, "filename": "pyblp-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c5f898469a7c4501b6b333ef23c4544c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2849597, "upload_time": "2018-06-18T01:20:18", "url": "https://files.pythonhosted.org/packages/6b/eb/b4e47f0c65f05992108fbeb640592e170e5e5df6ed1e60906d2d13c85649/pyblp-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "344571afc4651d7e5e59d70540e5e628", "sha256": "b261e8bf02ff940cd3f23ba4186c0c4eb6c03b2ba8bce88390b764c0dd0c4e71" }, "downloads": -1, "filename": "pyblp-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "344571afc4651d7e5e59d70540e5e628", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2843254, "upload_time": "2018-07-17T01:02:40", "url": "https://files.pythonhosted.org/packages/5f/73/247e7ffaaa2e342d323a7e0d9030525a216eb622be50ea7ef89b15065383/pyblp-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8f7e853101ecf0baf70211fe458ce41", "sha256": "a2644e9bf54807cbf7366089608a225e25eb25fa9af88422fe0526147e768ac7" }, "downloads": -1, "filename": "pyblp-0.4.0.tar.gz", "has_sig": false, "md5_digest": "b8f7e853101ecf0baf70211fe458ce41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2853633, "upload_time": "2018-07-17T01:03:18", "url": "https://files.pythonhosted.org/packages/fb/6b/294740c556152dc074f2738c8e249e554b4477887e8284ff18216ed591b4/pyblp-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "96dee45201d69514f7691f5b2019abd8", "sha256": "520c493697631e5a2954fa0e93b181e49728f7636f1b5ca11645239201d75fd6" }, "downloads": -1, "filename": "pyblp-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "96dee45201d69514f7691f5b2019abd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 895125, "upload_time": "2018-09-06T13:17:43", "url": "https://files.pythonhosted.org/packages/75/4b/5f8bbbfd044dfd8d06cf08597fe2a6359a4db8d57dacaaa096557fd02232/pyblp-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52c4c737307e481fbb8968f5f8b6a2d6", "sha256": "d84498954f01b8fa8f0cbfcd15d3dd1e2df848acf7178651751c756378d4bbd7" }, "downloads": -1, "filename": "pyblp-0.5.0.tar.gz", "has_sig": false, "md5_digest": "52c4c737307e481fbb8968f5f8b6a2d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 900559, "upload_time": "2018-09-06T13:17:56", "url": "https://files.pythonhosted.org/packages/30/d4/d4c4f1a1a041cde845a634723bb5e99830c1c6949b2122ca3af21a7b587e/pyblp-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "9a0707681978e308539de82fa8d25233", "sha256": "5b9b90f632f7a3d2a67d1dbbb11bde04ce59f66cb82c3c66687d4bc77e2ef4e5" }, "downloads": -1, "filename": "pyblp-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a0707681978e308539de82fa8d25233", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1112995, "upload_time": "2018-12-16T02:14:22", "url": "https://files.pythonhosted.org/packages/77/69/b64bfba818201c965439422898827fd2517218eacbcf12f393fb9c8bff35/pyblp-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5eaa839ef4c79e17ef8c738ce7daa304", "sha256": "1e2413310e87ce3c28e93b814e7c0132322b0516cc7e4b6e23b71698b119f2dc" }, "downloads": -1, "filename": "pyblp-0.6.0.tar.gz", "has_sig": false, "md5_digest": "5eaa839ef4c79e17ef8c738ce7daa304", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1291111, "upload_time": "2018-12-16T02:14:40", "url": "https://files.pythonhosted.org/packages/62/1b/9a1836f03058e0517bd0e257907b9185cd604a44f91610160402772c784b/pyblp-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "6f4a5eae19910a90157ccfadedd6b9aa", "sha256": "325e2f16cbbf1db0dd68ceb70a7db9e0823da2a691efc657fb0918b3109fb3ac" }, "downloads": -1, "filename": "pyblp-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f4a5eae19910a90157ccfadedd6b9aa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1113326, "upload_time": "2018-12-19T02:51:47", "url": "https://files.pythonhosted.org/packages/19/59/863fcef3eb7a1f7588c200e81a0c38c97ac5f5125915879cf41851876c31/pyblp-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aaf01f9ca755bcec7f795d3058c6edd0", "sha256": "04c7eb9b02774799808f5fdc9dec94dcf8857cf8ffbe55a9dd650d7fca243b3e" }, "downloads": -1, "filename": "pyblp-0.6.1.tar.gz", "has_sig": false, "md5_digest": "aaf01f9ca755bcec7f795d3058c6edd0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1291771, "upload_time": "2018-12-19T02:52:06", "url": "https://files.pythonhosted.org/packages/fe/b0/5bf8a9429c2c3c2d0bacda1a2155696a4bab49181b78df3a49e85f0a4ccb/pyblp-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "7f5243268763444d023a0f024d792749", "sha256": "f99b759d835f0a4c5563d3d3bf36d183c67b9e96be256687a69ba1f561376940" }, "downloads": -1, "filename": "pyblp-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7f5243268763444d023a0f024d792749", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1086763, "upload_time": "2019-04-27T16:41:42", "url": "https://files.pythonhosted.org/packages/e6/16/8665e718f47c4a9f39bb31d8fe19069b242cd92df4e47371ffc822b07f15/pyblp-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0f6309f689519ab862aa821e3700bd8", "sha256": "85a0f4d55e9ebff2d9c63341d3cd620ddba4aef57469d239834d7a4a555514a6" }, "downloads": -1, "filename": "pyblp-0.7.0.tar.gz", "has_sig": false, "md5_digest": "b0f6309f689519ab862aa821e3700bd8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1383278, "upload_time": "2019-04-27T16:42:03", "url": "https://files.pythonhosted.org/packages/ae/22/6208936a78627d4618bb7db35c3fb3cb028ae8abd9989022647a459a399c/pyblp-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "d1f2201941c452f997bcbcb92351f7ae", "sha256": "521fc6f85408eed560fea53f652c9e1c25219f067a2afd4579c9042ba56cd4e3" }, "downloads": -1, "filename": "pyblp-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d1f2201941c452f997bcbcb92351f7ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1246313, "upload_time": "2019-10-03T17:01:02", "url": "https://files.pythonhosted.org/packages/e7/83/b76e54c61a1171a379c91d7c6f015280170ee40752db55d4b54223f7ad2d/pyblp-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb5c6e7917dfaf52e096e6417b21c526", "sha256": "8b7ef6b1fe353d7f61c1ecda6747c229d9deb8ed6e5072956cdcfa69a24ab6d2" }, "downloads": -1, "filename": "pyblp-0.8.0.tar.gz", "has_sig": false, "md5_digest": "eb5c6e7917dfaf52e096e6417b21c526", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1424792, "upload_time": "2019-10-03T17:01:04", "url": "https://files.pythonhosted.org/packages/de/7a/72cc5bdc74b3a2f307270d134ebf6224967998f7ba4d37bf73ed8740a3e8/pyblp-0.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1f2201941c452f997bcbcb92351f7ae", "sha256": "521fc6f85408eed560fea53f652c9e1c25219f067a2afd4579c9042ba56cd4e3" }, "downloads": -1, "filename": "pyblp-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d1f2201941c452f997bcbcb92351f7ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1246313, "upload_time": "2019-10-03T17:01:02", "url": "https://files.pythonhosted.org/packages/e7/83/b76e54c61a1171a379c91d7c6f015280170ee40752db55d4b54223f7ad2d/pyblp-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb5c6e7917dfaf52e096e6417b21c526", "sha256": "8b7ef6b1fe353d7f61c1ecda6747c229d9deb8ed6e5072956cdcfa69a24ab6d2" }, "downloads": -1, "filename": "pyblp-0.8.0.tar.gz", "has_sig": false, "md5_digest": "eb5c6e7917dfaf52e096e6417b21c526", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1424792, "upload_time": "2019-10-03T17:01:04", "url": "https://files.pythonhosted.org/packages/de/7a/72cc5bdc74b3a2f307270d134ebf6224967998f7ba4d37bf73ed8740a3e8/pyblp-0.8.0.tar.gz" } ] }