Skip to main content

Forecasting utilities

Project description

utilsforecast

Install

PyPI

pip install utilsforecast

Conda

conda install -c conda-forge utilsforecast

How to use

Generate synthetic data

from utilsforecast.data import generate_series
series = generate_series(3, with_trend=True, static_as_categorical=False)
series
unique_id ds y
0 0 2000-01-01 0.422133
1 0 2000-01-02 1.501407
2 0 2000-01-03 2.568495
3 0 2000-01-04 3.529085
4 0 2000-01-05 4.481929
... ... ... ...
481 2 2000-06-11 163.914625
482 2 2000-06-12 166.018479
483 2 2000-06-13 160.839176
484 2 2000-06-14 162.679603
485 2 2000-06-15 165.089288

486 rows × 3 columns

Plotting

from utilsforecast.plotting import plot_series
fig = plot_series(series, plot_random=False, max_insample_length=50, engine='matplotlib')
fig.savefig('imgs/index.png', bbox_inches='tight')

Preprocessing

from utilsforecast.preprocessing import fill_gaps
serie = series[series['unique_id'].eq(0)].tail(10)
# drop some points
with_gaps = serie.sample(frac=0.5, random_state=0).sort_values('ds')
with_gaps
unique_id ds y
213 0 2000-08-01 18.543147
214 0 2000-08-02 19.941764
216 0 2000-08-04 21.968733
220 0 2000-08-08 19.091509
221 0 2000-08-09 20.220739
fill_gaps(with_gaps, freq='D')
unique_id ds y
0 0 2000-08-01 18.543147
1 0 2000-08-02 19.941764
2 0 2000-08-03 NaN
3 0 2000-08-04 21.968733
4 0 2000-08-05 NaN
5 0 2000-08-06 NaN
6 0 2000-08-07 NaN
7 0 2000-08-08 19.091509
8 0 2000-08-09 20.220739

Evaluating

from functools import partial

import numpy as np

from utilsforecast.evaluation import evaluate
from utilsforecast.losses import mape, mase
valid = series.groupby('unique_id').tail(7).copy()
train = series.drop(valid.index)
rng = np.random.RandomState(0)
valid['seas_naive'] = train.groupby('unique_id')['y'].tail(7).values
valid['rand_model'] = valid['y'] * rng.rand(valid['y'].shape[0])
daily_mase = partial(mase, seasonality=7)
evaluate(valid, metrics=[mape, daily_mase], train_df=train)
unique_id metric seas_naive rand_model
0 0 mape 0.024139 0.440173
1 1 mape 0.054259 0.278123
2 2 mape 0.042642 0.480316
3 0 mase 0.907149 16.418014
4 1 mase 0.991635 6.404254
5 2 mase 1.013596 11.365040

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

utilsforecast-0.2.12.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

utilsforecast-0.2.12-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

File details

Details for the file utilsforecast-0.2.12.tar.gz.

File metadata

  • Download URL: utilsforecast-0.2.12.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for utilsforecast-0.2.12.tar.gz
Algorithm Hash digest
SHA256 73f9dfd836a721a95c349f784bd75e18a4cb7c1469800e325414e22901e9775b
MD5 ae9f4eca063b497e2dbfe4ebc5a926fc
BLAKE2b-256 48d921e43a7419f0356043b52f72cd0262dd497f087fca78e90aebf8201a2339

See more details on using hashes here.

Provenance

The following attestation bundles were made for utilsforecast-0.2.12.tar.gz:

Publisher: release.yml on Nixtla/utilsforecast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file utilsforecast-0.2.12-py3-none-any.whl.

File metadata

  • Download URL: utilsforecast-0.2.12-py3-none-any.whl
  • Upload date:
  • Size: 42.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for utilsforecast-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 acfba80bbf44e18433c206194f3ddd89cc28ff03aa0ba744b8040795a40b7b3f
MD5 84b121fa2864afda41bb8c6beca083a0
BLAKE2b-256 759bf6336ce71f4e6ed32877309314f549192cd6b982ad6d96fd8b1b5a230870

See more details on using hashes here.

Provenance

The following attestation bundles were made for utilsforecast-0.2.12-py3-none-any.whl:

Publisher: release.yml on Nixtla/utilsforecast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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