forecast-tools has been developed to support forecasting education and applied forecasting research. It is MIT licensed and freely available to practitioners, students and researchers via PyPi. There is a long term plan to make forecast-tools available via conda-forge.
- Deliver high quality reliable code for forecasting education and practice with full documentation and unit testing.
- Provide a simple to use pythonic interface that users of
statsmodels
andsklearn
will recognise. - To improve the quality of Machine Learning time series forecasting and encourage the use of best practice.
- Implementation of classic naive forecast benchmarks such as Naive Forecast 1 along with prediction intervals
- Implementation of scale-dependent, relative and scaled forecast errors.
- Implementation of scale-dependent and relative metrics to evaluate forecast prediction intervals
- Rolling forecast origin and sliding window for time series cross validation
- Built in daily level datasets
pip install forecast-tools
- Click on the launch-binder at the top of this readme. This will open example Jupyter notebooks in the cloud via Binder.
- Read our documentation on GitHub pages
If you use forecast-tools for research, a practical report, education or any reason please include the following citation.
Monks, Thomas. (2020). forecast-tools: fundamental tools to support the forecasting process in python. Zenodo. http://doi.org/10.5281/zenodo.3759863
@software{forecast_tools,
author = {Monks, Thomas},
title = {forecast-tools},
month = dec,
year = 2023,
publisher = {Zenodo},
doi = {10.5281/zenodo.3759863},
url = {https://zenodo.org/doi/10.5281/zenodo.3759863}
}
Please fork Dev, make your modifications, run the unit tests and submit a pull request for review.
We provide a conda environment for development of forecast-tools. We recommend use of mamba as opposed to conda (although conda will work) as it is FOSS and faster. Install from mini-forge
Development environment:
mamba env create -f binder/environment.yml
mamba activate forecast_dev
Unit tests are provided and can be run via hatch
and its coverage extension. Run the following in the terminal.
To run tests in multiple Python environments (3.8-3.12)
hatch test --all
To obtain a coverage report run
hatch test --cover
All contributions are welcome and must include unit tests!