Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The default page of the repo is on `dev` branch. To install the dev version, ple
This project

- is stable and being incubated for long-term support. It may contain new experimental code, for which APIs are subject to change.
- requires PyStan as a system dependency. PyStan is licensed under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html), which is a free, copyleft license for software.
- requires [cmdstanpy](https://mc-stan.org/cmdstanpy/) as one of the core dependencies for Bayesian sampling.

# Orbit: A Python Package for Bayesian Forecasting

Expand Down
4 changes: 2 additions & 2 deletions docs/about.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ It also supports the following sampling methods for model estimation:
- Stochastic Variational Inference (SVI) as a hybrid-sampling method on approximate
distribution

Under the hood, the package is leveraging probabilistic program such as `pyro <https://pyro.ai/>`__ and `PyStan 2.0
<https://pystan2.readthedocs.io/en/latest/>`__.
Under the hood, the package is leveraging probabilistic program such as `pyro <https://pyro.ai/>`__ and `cmdstanpy
<https://mc-stan.org/cmdstanpy/>`__.


Citation
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
]

# autodoc_mock_imports = [
# 'pandas', 'torch', 'pystan', 'tqdm', 'matplotlib.pyplot'
# 'pandas', 'torch', 'cmdstanpy', 'tqdm', 'matplotlib.pyplot'
# 'pyro', 'matplotlib', 'seaborn', 'scipy', 'sklearn']

# Add any paths that contain templates here, relative to this directory.
Expand Down
22 changes: 11 additions & 11 deletions docs/tutorials/build_your_own_model.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@
"\n",
"### Model\n",
"\n",
"**Model** is an object defined by a class inherited from `BaseTemplate` a.k.a **Model Template** in the diagram below. It mainly turns the logic of `fit()` and `predict()` concrete by supplying the `fitter` as a file (**PyStan**) or a callable class (**Pyro**) and the internal `predict()` method. This object defines the overall inputs, model structure, parameters and likelihoods.\n",
"**Model** is an object defined by a class inherited from `BaseTemplate` a.k.a **Model Template** in the diagram below. It mainly turns the logic of `fit()` and `predict()` concrete by supplying the `fitter` as a file (**CmdStanPy**) or a callable class (**Pyro**) and the internal `predict()` method. This object defines the overall inputs, model structure, parameters and likelihoods.\n",
"\n",
"### Estimator\n",
"\n",
"Meanwhile, there are different APIs implement slightly different ways of sampling and optimization (for **MAP**). `orbit` is designed to support various APIs such as **PyStan** and **Pyro** (hopefully PyMC3, Numpyro in the future!). The logic separating the call of different APIs with different interface is done by the **Estimator** class which is further inherited in `PyroEstimator` and `StanEstimator`.\n"
"Meanwhile, there are different APIs implement slightly different ways of sampling and optimization (for **MAP**). `orbit` is designed to support various APIs such as **CmdStanPy** and **Pyro** (hopefully PyMC3, Numpyro in the future!). The logic separating the call of different APIs with different interface is done by the **Estimator** class which is further inherited in `PyroEstimator` and `StanEstimator`.\n"
]
},
{
Expand Down Expand Up @@ -496,7 +496,7 @@
{
"data": {
"text/plain": [
"<orbit.forecaster.svi.SVIForecaster at 0x2a5da37c0>"
"<orbit.forecaster.svi.SVIForecaster at 0x17f0f6070>"
]
},
"execution_count": 11,
Expand Down Expand Up @@ -531,25 +531,25 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:10:27 - orbit - INFO - Using SVI (Pyro) with steps: 501, samples: 100, learning rate: 0.1, learning_rate_total_decay: 1.0 and particles: 100.\n",
"2024-01-11 22:10:28 - orbit - INFO - step 0 loss = 27333, scale = 0.077497\n",
"2024-01-21 13:47:27 - orbit - INFO - Using SVI (Pyro) with steps: 501, samples: 100, learning rate: 0.1, learning_rate_total_decay: 1.0 and particles: 100.\n",
"2024-01-21 13:47:27 - orbit - INFO - step 0 loss = 27333, scale = 0.077497\n",
"INFO:orbit:step 0 loss = 27333, scale = 0.077497\n",
"2024-01-11 22:10:29 - orbit - INFO - step 100 loss = 12594, scale = 0.00924\n",
"2024-01-21 13:47:29 - orbit - INFO - step 100 loss = 12594, scale = 0.00924\n",
"INFO:orbit:step 100 loss = 12594, scale = 0.00924\n",
"2024-01-11 22:10:31 - orbit - INFO - step 200 loss = 12596, scale = 0.0094562\n",
"2024-01-21 13:47:31 - orbit - INFO - step 200 loss = 12596, scale = 0.0094562\n",
"INFO:orbit:step 200 loss = 12596, scale = 0.0094562\n",
"2024-01-11 22:10:33 - orbit - INFO - step 300 loss = 12591, scale = 0.0092175\n",
"2024-01-21 13:47:32 - orbit - INFO - step 300 loss = 12591, scale = 0.0092175\n",
"INFO:orbit:step 300 loss = 12591, scale = 0.0092175\n",
"2024-01-11 22:10:35 - orbit - INFO - step 400 loss = 12594, scale = 0.0095741\n",
"2024-01-21 13:47:34 - orbit - INFO - step 400 loss = 12594, scale = 0.0095741\n",
"INFO:orbit:step 400 loss = 12594, scale = 0.0095741\n",
"2024-01-11 22:10:36 - orbit - INFO - step 500 loss = 12591, scale = 0.0095602\n",
"2024-01-21 13:47:36 - orbit - INFO - step 500 loss = 12591, scale = 0.0095602\n",
"INFO:orbit:step 500 loss = 12591, scale = 0.0095602\n"
]
},
{
"data": {
"text/plain": [
"<orbit.forecaster.svi.SVIForecaster at 0x2a5da37c0>"
"<orbit.forecaster.svi.SVIForecaster at 0x17f0f6070>"
]
},
"execution_count": 12,
Expand Down
4 changes: 2 additions & 2 deletions docs/tutorials/decompose_prediction.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -111,13 +111,13 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:10:53 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 14:39:49 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
"data": {
"text/plain": [
"<orbit.forecaster.full_bayes.FullBayesianForecaster at 0x1058475b0>"
"<orbit.forecaster.full_bayes.FullBayesianForecaster at 0x108f9ca60>"
]
},
"execution_count": 4,
Expand Down
41 changes: 24 additions & 17 deletions docs/tutorials/dlt.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:09 - orbit - INFO - Optimizing (PyStan) with algorithm: LBFGS.\n"
"2024-01-21 13:46:06 - orbit - INFO - Optimizing (CmdStanPy) with algorithm: LBFGS.\n"
]
},
{
Expand All @@ -218,8 +218,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 795 ms, sys: 1.27 s, total: 2.06 s\n",
"Wall time: 481 ms\n"
"CPU times: user 613 ms, sys: 1.34 s, total: 1.96 s\n",
"Wall time: 729 ms\n"
]
}
],
Expand Down Expand Up @@ -252,13 +252,13 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:10 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 13:46:06 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
"data": {
"text/plain": [
"<orbit.forecaster.full_bayes.FullBayesianForecaster at 0x174876ca0>"
"<orbit.forecaster.full_bayes.FullBayesianForecaster at 0x175098400>"
]
},
"execution_count": 5,
Expand Down Expand Up @@ -333,7 +333,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:12 - orbit - INFO - Optimizing (PyStan) with algorithm: LBFGS.\n"
"2024-01-21 13:46:08 - orbit - INFO - Optimizing (CmdStanPy) with algorithm: LBFGS.\n"
]
},
{
Expand All @@ -350,8 +350,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.01 s, sys: 956 ms, total: 1.97 s\n",
"Wall time: 501 ms\n"
"CPU times: user 593 ms, sys: 1.38 s, total: 1.97 s\n",
"Wall time: 468 ms\n"
]
}
],
Expand Down Expand Up @@ -403,15 +403,15 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:12 - orbit - INFO - Optimizing (PyStan) with algorithm: LBFGS.\n"
"2024-01-21 13:46:09 - orbit - INFO - Optimizing (CmdStanPy) with algorithm: LBFGS.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 280 ms, sys: 110 ms, total: 391 ms\n",
"Wall time: 351 ms\n"
"CPU times: user 324 ms, sys: 268 ms, total: 592 ms\n",
"Wall time: 344 ms\n"
]
},
{
Expand Down Expand Up @@ -479,7 +479,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:13 - orbit - INFO - Optimizing (PyStan) with algorithm: LBFGS.\n"
"2024-01-21 13:46:10 - orbit - INFO - Optimizing (CmdStanPy) with algorithm: LBFGS.\n"
]
},
{
Expand All @@ -496,8 +496,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.14 s, sys: 941 ms, total: 2.08 s\n",
"Wall time: 468 ms\n"
"CPU times: user 735 ms, sys: 1.51 s, total: 2.24 s\n",
"Wall time: 478 ms\n"
]
}
],
Expand Down Expand Up @@ -552,7 +552,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:11:14 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 13:46:10 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
Expand Down Expand Up @@ -684,11 +684,13 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"tags": []
},
"source": [
"### High Dimensional and Fourier Series Regression\n",
"\n",
"In case of high dimensional regression, users can consider fixing the smoothness with a relatively small levels smoothing values e.g. setting `level_sm_input=0.01`. This is particularly useful in modeling higher frequency time-series such as daily and hourly data using regression on Fourier series. Check out the `examples/` folder for more details."
"In case of high dimensional regression, users can consider fixing the smoothness with a relatively small levels smoothing values e.g. setting `level_sm_input=0.01`. This is particularly useful in modeling higher frequency time-series such as daily and hourly data using regression on Fourier series. Check out the `examples/` folder for the details."
]
}
],
Expand Down Expand Up @@ -722,6 +724,11 @@
"toc_position": {},
"toc_section_display": true,
"toc_window_display": true
},
"vscode": {
"interpreter": {
"hash": "091dbfa208428afaf5ec1bce184d496f586fd9ce3f39e55cfff16a9adc2d3379"
}
}
},
"nbformat": 4,
Expand Down
32 changes: 16 additions & 16 deletions docs/tutorials/ets_lgt_dlt_missing_response.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -297,13 +297,13 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:12:15 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 14:38:49 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "675e617a68644e69bc19461f72afcb76",
"model_id": "7127326a60cb455a92d2f29cc00a7a3d",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -317,7 +317,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e61ef67e9c1349a391fa6d7dd8049409",
"model_id": "788443932419449f9e398df74e8180ab",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -331,7 +331,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "4b4e1e5d00f0412fb2e3db4fe0f7f877",
"model_id": "f75584f0370742288f15096a09a23ee2",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -345,7 +345,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a0676da571094a85b5d2f7028395da0a",
"model_id": "ee67293605f9471c876b59bd14d63cc0",
"version_major": 2,
"version_minor": 0
},
Expand Down Expand Up @@ -397,13 +397,13 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:12:15 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 14:38:50 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "62892bd875c846049d52ee7c19c7ec4f",
"model_id": "91631a6519be4f9eb191e0655fbac846",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -417,7 +417,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f95443129e8f4ad6b519cde63f110bb7",
"model_id": "5117ba9e278f4c93915daa1cade2411e",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -431,7 +431,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "42da72d1bdf44ade9718c58a0f720fec",
"model_id": "e047da76e6a3451dbfb3895656ccc731",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -445,7 +445,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6fa4d95140674159917f351e5cef602e",
"model_id": "da8adf7c21ea478ebc9471902d193535",
"version_major": 2,
"version_minor": 0
},
Expand Down Expand Up @@ -497,13 +497,13 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2024-01-11 22:12:19 - orbit - INFO - Sampling (PyStan) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
"2024-01-21 14:38:53 - orbit - INFO - Sampling (CmdStanPy) with chains: 4, cores: 8, temperature: 1.000, warmups (per chain): 225 and samples(per chain): 25.\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d00171d6ff2545f4a040fd4eaa0cbc85",
"model_id": "c51672ad186240cc80ddffdcddff9c3d",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -517,7 +517,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "91ba7166933843f58b473ebb545db892",
"model_id": "956c2e23d6514668bf16bceac75fbbc8",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -531,7 +531,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "0c82ee131b7447d59a20223622fbb1b6",
"model_id": "aa820a1c6a57417cbe4ba807f7d1e063",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -545,7 +545,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e2f800290b394e4f8a483e2bf8d36644",
"model_id": "e6349c96e2044c65a8b9f99a03fe181d",
"version_major": 2,
"version_minor": 0
},
Expand Down Expand Up @@ -811,7 +811,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2021-12-16T20:11:05.798766Z",
Expand Down
Loading