# `forecast-tools`: fundamental tools to support the forecasting process in python.
[![DOI](https://zenodo.org/badge/250494795.svg)](https://zenodo.org/badge/latestdoi/250494795)
[![ORCID: Monks](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481)
[![PyPI version fury.io](https://badge.fury.io/py/forecast-tools.svg)](https://pypi.python.org/pypi/forecast-tools/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TomMonks/forecast-tools/master)
[![Python](https://img.shields.io/pypi/pyversions/forecast-tools)](https://pypi.org/project/forecasta-tools/)
[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://tommonks.github.io/forecast-tools/)
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.
## Vision for forecast-tools
1. Deliver high quality reliable code for forecasting education and practice with full documentation and unit testing.
2. Provide a simple to use pythonic interface that users of `statsmodels` and `sklearn` will recognise.
3. To improve the quality of Machine Learning time series forecasting and encourage the use of best practice.
## Features:
1. Implementation of classic naive forecast benchmarks such as Naive Forecast 1 along with prediction intervals
2. Implementation of scale-dependent, relative and scaled forecast errors.
3. Implementation of scale-dependent and relative metrics to evaluate forecast prediction intervals
4. Rolling forecast origin and sliding window for time series cross validation
5. Built in daily level datasets
## Ways to explore forecast-tools
1. `pip install forecast-tools`
2. Click on the launch-binder at the top of this readme. This will open example Jupyter notebooks in the cloud via Binder.
3. Read our [documentation on GitHub pages](https://tommonks.github.io/forecast-tools/)
## Citation
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
```tex
@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}
}
```
## Contributing to forecast-tools
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](https://github.com/conda-forge/miniforge)
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!**
Raw data
{
"_id": null,
"home_page": null,
"name": "forecast-tools",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "education, error-metrics, forecasting, naive, snaive, time-series",
"author": null,
"author_email": "Thomas Monks <forecast_tools@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/0a/ae/9a343a532dba29860712167e5e0d4c3b6f5ddd5ffb42202b5541a4c73ac9/forecast_tools-0.3.0.tar.gz",
"platform": null,
"description": "# `forecast-tools`: fundamental tools to support the forecasting process in python.\n\n[![DOI](https://zenodo.org/badge/250494795.svg)](https://zenodo.org/badge/latestdoi/250494795)\n[![ORCID: Monks](https://img.shields.io/badge/ORCID-0000--0003--2631--4481-brightgreen)](https://orcid.org/0000-0003-2631-4481)\n[![PyPI version fury.io](https://badge.fury.io/py/forecast-tools.svg)](https://pypi.python.org/pypi/forecast-tools/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TomMonks/forecast-tools/master)\n[![Python](https://img.shields.io/pypi/pyversions/forecast-tools)](https://pypi.org/project/forecasta-tools/)\n[![Read the Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](https://tommonks.github.io/forecast-tools/)\n\n 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.\n\n ## Vision for forecast-tools\n\n 1. Deliver high quality reliable code for forecasting education and practice with full documentation and unit testing.\n 2. Provide a simple to use pythonic interface that users of `statsmodels` and `sklearn` will recognise.\n 3. To improve the quality of Machine Learning time series forecasting and encourage the use of best practice.\n\n## Features:\n\n1. Implementation of classic naive forecast benchmarks such as Naive Forecast 1 along with prediction intervals\n2. Implementation of scale-dependent, relative and scaled forecast errors.\n3. Implementation of scale-dependent and relative metrics to evaluate forecast prediction intervals\n4. Rolling forecast origin and sliding window for time series cross validation\n5. Built in daily level datasets\n\n## Ways to explore forecast-tools\n\n1. `pip install forecast-tools`\n2. Click on the launch-binder at the top of this readme. This will open example Jupyter notebooks in the cloud via Binder.\n3. Read our [documentation on GitHub pages](https://tommonks.github.io/forecast-tools/)\n\n## Citation\n\nIf you use forecast-tools for research, a practical report, education or any reason please include the following citation.\n\n> Monks, Thomas. (2020). forecast-tools: fundamental tools to support the forecasting process in python. Zenodo. http://doi.org/10.5281/zenodo.3759863\n\n```tex\n@software{forecast_tools,\n author = {Monks, Thomas},\n title = {forecast-tools},\n month = dec,\n year = 2023,\n publisher = {Zenodo},\n doi = {10.5281/zenodo.3759863},\n url = {https://zenodo.org/doi/10.5281/zenodo.3759863}\n}\n\n```\n\n## Contributing to forecast-tools\n\nPlease fork Dev, make your modifications, run the unit tests and submit a pull request for review.\n\n> 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](https://github.com/conda-forge/miniforge)\n\nDevelopment environment:\n\n```\nmamba env create -f binder/environment.yml\nmamba activate forecast_dev\n```\n\nUnit tests are provided and can be run via `hatch` and its coverage extension. Run the following in the terminal.\n\nTo run tests in multiple Python environments (3.8-3.12)\n\n```\nhatch test --all\n```\n\nTo obtain a coverage report run\n\n```\nhatch test --cover\n```\n\n**All contributions are welcome and must include unit tests!**",
"bugtrack_url": null,
"license": null,
"summary": "Tools to support forecasting education in Python",
"version": "0.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/TomMonks/forecast-tools/issues",
"Changelog": "https://github.com/TomMonks/forecast-tools/blob/master/CHANGELOG.md",
"Documentation": "https://tommonks.github.io/forecast-tools",
"Homepage": "https://github.com/TomMonks/forecast-tools"
},
"split_keywords": [
"education",
" error-metrics",
" forecasting",
" naive",
" snaive",
" time-series"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8fa2d8fbc76aeccc3b23de7d270b967071f33491ae6214344b74f53d80664c90",
"md5": "9d8558a32ccf5f3b2bc5cc266b458995",
"sha256": "0a6a79f4f33c70231531d5d14aff17d7f2250c7f89aefc4b8ebdfc00392b6259"
},
"downloads": -1,
"filename": "forecast_tools-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9d8558a32ccf5f3b2bc5cc266b458995",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20576,
"upload_time": "2024-07-30T14:29:14",
"upload_time_iso_8601": "2024-07-30T14:29:14.970353Z",
"url": "https://files.pythonhosted.org/packages/8f/a2/d8fbc76aeccc3b23de7d270b967071f33491ae6214344b74f53d80664c90/forecast_tools-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0aae9a343a532dba29860712167e5e0d4c3b6f5ddd5ffb42202b5541a4c73ac9",
"md5": "04fb3a6366f56fbc876479a0d7622897",
"sha256": "509d92d05c37d914c9a9674e88f27624ae6b84c32b12c37c97b0e7590293cbc3"
},
"downloads": -1,
"filename": "forecast_tools-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "04fb3a6366f56fbc876479a0d7622897",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 18997,
"upload_time": "2024-07-30T14:29:16",
"upload_time_iso_8601": "2024-07-30T14:29:16.767557Z",
"url": "https://files.pythonhosted.org/packages/0a/ae/9a343a532dba29860712167e5e0d4c3b6f5ddd5ffb42202b5541a4c73ac9/forecast_tools-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-30 14:29:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TomMonks",
"github_project": "forecast-tools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "forecast-tools"
}