Perform exploratory data analysis (EDA) on quantitative financial data.
This package aims to be the starting point for any analysis of quantitative financial data by supplying functions that create charts and metrics to simplify exploratory data analysis and give the user a jump-start on their project. This package simplifies the creation of charts that look at the distribution of numeric features and missing information in the data set; two critical steps in any financial analysis. The package also includes a function that will generate a random time series. Financial variables like stock prices and interest rates vary over time, so this ability to generate a time series quickly is extremely useful. Finally, this package also includes a function that will automatically calculate several useful financial metrics so that more time can be spent on more complicated analysis.
The functions in this package include:
plot_missing_vals
: Plot tick chart to display missing values for all numeric features in the dataset.plot_num_dist
: Creates a chart of histograms for all numeric features in a data set.generate_return_series
: Generates a DataFrame with independent time series of returns.generate_financial_metrics
: Calculates financial metrics based on a DataFrame of random returns on time series. These metrics aretotal return
,annual return
,annual volatilities
andsharpe ratio
- Doris (Yun Yi) Cai
- Jake Barnabe
- John Shiu
- Merete Lutz
To install the package, run the following command from the terminal
pip install quanteda
- Clone this repository.
git clone [email protected]:UBC-MDS/quanteda.git
cd quanteda/
Note: If you are using HTTP, simply change to HTTP and copy the clone link before following the same procedure above.
- Install the virtual environment.
conda env create -f environment.yml
- Activate the installed environment:
conda activate quanteda
- Install the package.
poetry install
To use this package, import and call the functions in Python. Below is an example:
from quanteda.plot_missing_vals import plot_missing_vals
from quanteda.plot_num_dist import plot_num_dist
from quanteda.generate_financial_metrics import generate_financial_metrics
from quanteda.generate_return_series import generate_return_series
Call function plot_missing_vals
to visualize the presence of missing values.
Call function plot_num_dist
to plot the distribution of the return series.
Call function generate_financial_metrics
to calculate the financial metrics of the return series.
Call function generate_return_series
to simulate time series return given an expected return, volatility and return distribution of a stock.
Execute the following in the project root directory to run the unit tests of the package,
poetry run pytest
or, to run with the code covergage reporting,
poetry run pytest --cov=quanteda
poetry run pytest --cov=quanteda --cov-branch
poetry run pytest --cov=quanteda --cov-branch --cov-report term-missing
The official documentation is hosted on Read the Docs: https://quanteda.readthedocs.io/en/latest/
Our package fills a gap in the python ecosystem by being marketed specifically to financial data. Python users commonly create EDA charts using popular packages like matplotlib, altair, and seaborn, and conduct their financial analysis using packages like pandas, numpy, and scipy. These libraries are extensive, but have been generalized to be as useful as possible to as many differen fields as possible. It takes time to learn the syntax and code of these packages that work for financial data. This can be time consuming during EDA, when the goal is to quickly get a rough idea of what the data set you are using looks like. Our package will simplify these actions into a few functions that will save time on tedious EDA so that more time can be spent on analysis and testing.
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
quanteda
was created by Doris (Yun Yi) Cai, Jake Barnabe, John Shiu, Merete Lutz. It is licensed under the terms of the MIT license.
quanteda
was created with cookiecutter
and the py-pkgs-cookiecutter
template.