Python library for asset pricing research
Project description
PyAnomaly is a comprehensive python library for asset pricing research with a focus on firm characteristic and factor generation. It covers the majority of the firm characteristics published in the literature and contains various analytic tools that are commonly used in asset pricing research, such as quantile portfolio construction, factor regression, and cross-sectional regression. The purpose of PyAnomaly is NOT to generate firm characteristics in a fixed manner. Rather, we aim to build a package that can serve as a standard library for asset pricing research and help reduce non-standard errors.
PyAnomaly is a live project and we plan to add more firm characteristics and functionalities going forward. We also welcome contributions from other scholars.
PyAnomaly is very efficient, comprehensive, and flexible.
- Efficiency
PyAnomaly can generate over 200 characteristics from 1950 in around one hour including the time to download data from WRDS. To achieve this, PyAnomaly utilizes numba, multiprocessing, and asyncio packages when possible, but not too heavily to maximize readability of the code.
- Comprehensiveness
PyAnomaly supports over 200 firm characteristics published in the literature. It covers most characteristics in Green et al. (2017) and Jensen et al. (2021), except those that use IBES data. It also provides various tools for asset pricing research.
- Flexibility
PyAnomaly adopts the object-oriented programming design philosophy and is easy to customize or add functionalities. This means users can easily change the definition of an existing characteristic, add a new characteristic, or change configurations to run the program. For instance, a user can choose whether to update annual accounting variables quarterly (using Compustat.fundq) or annually (using Compustat.funda), or whether to use the latest market equity or the year-end market equity, when generating firm characteristics.
Main Features
Efficient data download from WRDS using asynco.
Over 200 firm characteristics generation. You can choose which firm characteristics to generate.
Fama-French 3-factor and Hou-Xue-Zhang 4-factor portfolios.
Analytics
Cross-section regression
1-D sort
2-D sort
Rolling regression
Quantile portfolio
Long-short portfolio
Portfolio performance analysis
Data tools
Data filtering
Winsorizing
Trimming
Data population
Changelog
v0.9 - 2022.01.15
Initial version.
v0.923 - 2022.01.16
Multiprocessing in datatools.populate() has been updated to increase the speed.
v0.930 - 2022.01.17
The trend factor of Han, Zhou, and Zhu (2016) has been added. We thank Guofu Zhou for this suggestion.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyassetpricing-0.930.tar.gz
.
File metadata
- Download URL: pyassetpricing-0.930.tar.gz
- Upload date:
- Size: 85.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 462995041e7f03b01bf97d2a872f10c76a16e2ef50f61c7ecfb69336b6746f7b |
|
MD5 | 7242ac66dbc8113680f2f06c7aa6c178 |
|
BLAKE2b-256 | 03492758c0938ea5b3afee199234fb5dbe739fde8ff82fd4005338a5d9b7130a |
File details
Details for the file pyassetpricing-0.930-py3-none-any.whl
.
File metadata
- Download URL: pyassetpricing-0.930-py3-none-any.whl
- Upload date:
- Size: 90.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e2faa52953c9613028a7ac150abb5d182837f57935dc43524696a64c4dfdcbf |
|
MD5 | 10adf0bb9d4b49dcdce4d4630e65e2fd |
|
BLAKE2b-256 | a493d81a132e926844c0dab98479ffa2498b0b8f879d16721fc5c0dff81df62d |