Skip to main content

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.

v0.931 - 2022.01.23

A bug of not returning the result in FUNDA.c_ebitda_mev has been fixed.

A new characteristic method for Enterprise multiple (Loughran and Wellman, 2011), c_enterprise_multiple, has been added to FUNDA, as the previous one (c_ebitda_mev) that implements JKP’s SAS code uses a different definition from the original definition. This new method uses the original definition.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyassetpricing-0.931.tar.gz (85.8 kB view details)

Uploaded Source

Built Distribution

pyassetpricing-0.931-py3-none-any.whl (90.7 kB view details)

Uploaded Python 3

File details

Details for the file pyassetpricing-0.931.tar.gz.

File metadata

  • Download URL: pyassetpricing-0.931.tar.gz
  • Upload date:
  • Size: 85.8 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

Hashes for pyassetpricing-0.931.tar.gz
Algorithm Hash digest
SHA256 8eb6f67e754abb32da62058dc0f8d6030af2b67999901a88ca25917015197b1f
MD5 17f0d3b9d197407ec6d06c77da6b6e6b
BLAKE2b-256 f8ac7c84807ef3d9e348cfd184970454df5f0ba653efe866bbed711bdaaeb3e3

See more details on using hashes here.

File details

Details for the file pyassetpricing-0.931-py3-none-any.whl.

File metadata

  • Download URL: pyassetpricing-0.931-py3-none-any.whl
  • Upload date:
  • Size: 90.7 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

Hashes for pyassetpricing-0.931-py3-none-any.whl
Algorithm Hash digest
SHA256 44f1983d51bc720d71c63f5d21a190ac624edc684260e8932e56dce0e39d8185
MD5 72ef85358da8b56764d37b321e07fe38
BLAKE2b-256 ff127826d21b2fb4e4e111e2ba295aad253faebbb56b4554915ae637cdafb6b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page