{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Model deployment" ] }, { "cell_type": "markdown", "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "One of the main goals of PyMC-Marketing is to facilitate the deployment of its models. " ] }, { "cell_type": "markdown", "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "source": [ "This is achieved by building our models on top of [ModelBuilder](https://www.pymc.io/projects/examples/en/latest/howto/model_builder.html), a brand new [PyMC experimental](https://www.pymc.io/projects/experimental/en/latest/) feature that offers a scikit-learn-like API and makes PyMC models easy to deploy.\n", "\n", "PyMC-marketing models inherit 2 easy-to-use methods: `save` and `load` that can be used after the model has been fitted. All models can be configured with two standard dictionaries: `model_config` and `sampler_config` that are serialized during `save` and persisted after `load`, allowing model reuse across workflows." ] }, { "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "We will illustrate this functionality with the example model described in the [MMM Example Notebook](https://www.pymc-marketing.io/en/stable/notebooks/mmm/mmm_example.html). For sake of generality, we ommit most technical details here." ] }, { "cell_type": "code", "execution_count": 1, "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "outputs": [], "source": [ "import arviz as az\n", "import numpy as np\n", "import pandas as pd\n", "\n", "from pymc_marketing.mmm import DelayedSaturatedMMM" ] }, { "cell_type": "code", "execution_count": 2, "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "outputs": [], "source": [ "seed = sum(map(ord, \"mmm\"))\n", "rng = np.random.default_rng(seed=seed)" ] }, { "cell_type": "markdown", "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "source": [ "Let's load the dataset:" ] }, { "cell_type": "code", "execution_count": 3, "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
| \n", " | date_week | \n", "y | \n", "x1 | \n", "x2 | \n", "event_1 | \n", "event_2 | \n", "dayofyear | \n", "t | \n", "
|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2018-04-02 | \n", "3984.662237 | \n", "0.318580 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "92 | \n", "0 | \n", "
| 1 | \n", "2018-04-09 | \n", "3762.871794 | \n", "0.112388 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "99 | \n", "1 | \n", "
| 2 | \n", "2018-04-16 | \n", "4466.967388 | \n", "0.292400 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "106 | \n", "2 | \n", "
| 3 | \n", "2018-04-23 | \n", "3864.219373 | \n", "0.071399 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "113 | \n", "3 | \n", "
| 4 | \n", "2018-04-30 | \n", "4441.625278 | \n", "0.386745 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "120 | \n", "4 | \n", "
<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, control: 3,\n",
" fourier_mode: 4, channel: 2, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 995 996 997 998 999\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_ord...\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * date (date) <U10 '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" intercept (chain, draw) float64 0.3852 0.3278 ... 0.311\n",
" gamma_control (chain, draw, control) float64 0.2353 ... 0.00...\n",
" gamma_fourier (chain, draw, fourier_mode) float64 0.004958 ....\n",
" beta_channel (chain, draw, channel) float64 0.3975 ... 0.3032\n",
" alpha (chain, draw, channel) float64 0.4327 ... 0.2364\n",
" lam (chain, draw, channel) float64 2.864 ... 2.357\n",
" ... ...\n",
" channel_adstock (chain, draw, date, channel) float64 0.1816 .....\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 0.2543 .....\n",
" channel_contributions (chain, draw, date, channel) float64 0.1011 .....\n",
" control_contributions (chain, draw, date, control) float64 0.0 ... 0...\n",
" fourier_contributions (chain, draw, date, fourier_mode) float64 0.00...\n",
" mu (chain, draw, date) float64 0.4922 ... 0.6067\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.592010\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 0.4729 0.4781 ... 0.5132 0.5917\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:55.266426\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 994 995 996 997 998 999\n",
"Data variables: (12/17)\n",
" process_time_diff (chain, draw) float64 0.02484 0.03027 ... 0.04276\n",
" lp (chain, draw) float64 351.2 354.5 ... 353.0 353.4\n",
" max_energy_error (chain, draw) float64 -0.03674 0.03495 ... 0.1954\n",
" step_size (chain, draw) float64 0.07388 0.07388 ... 0.06563\n",
" reached_max_treedepth (chain, draw) bool False False False ... False False\n",
" perf_counter_diff (chain, draw) float64 0.02507 0.03056 ... 0.04421\n",
" ... ...\n",
" index_in_trajectory (chain, draw) int64 -31 33 32 -28 43 ... 44 -9 38 29\n",
" energy (chain, draw) float64 -344.9 -345.2 ... -345.0 -346.9\n",
" largest_eigval (chain, draw) float64 nan nan nan nan ... nan nan nan\n",
" n_steps (chain, draw) float64 63.0 63.0 63.0 ... 63.0 127.0\n",
" tree_depth (chain, draw) int64 6 6 6 6 6 6 6 6 ... 6 6 6 6 6 6 7\n",
" diverging (chain, draw) bool False False False ... False False\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.608151\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, channel: 2, control: 3,\n",
" fourier_mode: 4, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 495 496 497 498 499\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_ord...\n",
" * date (date) <U10 '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" beta_channel (chain, draw, channel) float64 1.418 ... 1.259\n",
" gamma_control (chain, draw, control) float64 3.665 ... -1.201\n",
" gamma_fourier (chain, draw, fourier_mode) float64 0.08728 .....\n",
" channel_contributions (chain, draw, date, channel) float64 0.2905 .....\n",
" intercept (chain, draw) float64 -3.807 -1.606 ... -0.598\n",
" lam (chain, draw, channel) float64 1.372 ... 1.678\n",
" ... ...\n",
" mu (chain, draw, date) float64 -3.19 ... -212.0\n",
" alpha (chain, draw, channel) float64 0.0521 ... 0.7527\n",
" channel_adstock (chain, draw, date, channel) float64 0.303 ......\n",
" control_contributions (chain, draw, date, control) float64 0.0 ... -...\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 0.2049 .....\n",
" sigma (chain, draw) float64 2.361 0.3904 ... 2.132\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.644498\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 492 493 494 495 496 497 498 499\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 -7.646 -1.949 ... -210.5 -215.1\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.650068\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179)\n",
"Coordinates:\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (date) float64 0.4794 0.4527 0.5374 ... 0.4978 0.5388 0.5625\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.612711\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179, channel: 2, control: 3, fourier_mode: 4)\n",
"Coordinates:\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_order_2'\n",
"Data variables:\n",
" channel_data (date, channel) float64 0.3196 0.0 0.1128 ... 0.0 0.4403 0.0\n",
" target (date) float64 0.4794 0.4527 0.5374 ... 0.4978 0.5388 0.5625\n",
" control_data (date, control) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 178.0\n",
" fourier_data (date, fourier_mode) float64 0.9999 -0.01183 ... -0.4547\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.614490\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (index: 179)\n",
"Coordinates:\n",
" * index (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
"Data variables:\n",
" date_week (index) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" x1 (index) float64 0.3186 0.1124 0.2924 ... 0.1719 0.2803 0.4389\n",
" x2 (index) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.8633 0.0 0.0 0.0\n",
" event_1 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" event_2 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" dayofyear (index) int64 92 99 106 113 120 127 ... 207 214 221 228 235 242\n",
" t (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
" y (index) float64 3.985e+03 3.763e+03 ... 4.479e+03 4.676e+03<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, control: 3,\n",
" fourier_mode: 4, channel: 2, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 995 996 997 998 999\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_ord...\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * date (date) <U10 '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" intercept (chain, draw) float64 0.3852 0.3278 ... 0.311\n",
" gamma_control (chain, draw, control) float64 0.2353 ... 0.00...\n",
" gamma_fourier (chain, draw, fourier_mode) float64 0.004958 ....\n",
" beta_channel (chain, draw, channel) float64 0.3975 ... 0.3032\n",
" alpha (chain, draw, channel) float64 0.4327 ... 0.2364\n",
" lam (chain, draw, channel) float64 2.864 ... 2.357\n",
" ... ...\n",
" channel_adstock (chain, draw, date, channel) float64 0.1816 .....\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 0.2543 .....\n",
" channel_contributions (chain, draw, date, channel) float64 0.1011 .....\n",
" control_contributions (chain, draw, date, control) float64 0.0 ... 0...\n",
" fourier_contributions (chain, draw, date, fourier_mode) float64 0.00...\n",
" mu (chain, draw, date) float64 0.4922 ... 0.6067\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.592010\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, control: 3,\n",
" fourier_mode: 4, channel: 2, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 995 996 997 998 999\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_ord...\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * date (date) <U10 '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" intercept (chain, draw) float64 0.3852 0.3278 ... 0.311\n",
" gamma_control (chain, draw, control) float64 0.2353 ... 0.00...\n",
" gamma_fourier (chain, draw, fourier_mode) float64 0.004958 ....\n",
" beta_channel (chain, draw, channel) float64 0.3975 ... 0.3032\n",
" alpha (chain, draw, channel) float64 0.4327 ... 0.2364\n",
" lam (chain, draw, channel) float64 2.864 ... 2.357\n",
" ... ...\n",
" channel_adstock (chain, draw, date, channel) float64 0.1816 .....\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 0.2543 .....\n",
" channel_contributions (chain, draw, date, channel) float64 0.1011 .....\n",
" control_contributions (chain, draw, date, control) float64 0.0 ... 0...\n",
" fourier_contributions (chain, draw, date, fourier_mode) float64 0.00...\n",
" mu (chain, draw, date) float64 0.4922 ... 0.6067\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.592010\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 0.4729 0.4781 ... 0.5132 0.5917\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:55.266426\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 994 995 996 997 998 999\n",
"Data variables: (12/17)\n",
" process_time_diff (chain, draw) float64 0.02484 0.03027 ... 0.04276\n",
" lp (chain, draw) float64 351.2 354.5 ... 353.0 353.4\n",
" max_energy_error (chain, draw) float64 -0.03674 0.03495 ... 0.1954\n",
" step_size (chain, draw) float64 0.07388 0.07388 ... 0.06563\n",
" reached_max_treedepth (chain, draw) bool False False False ... False False\n",
" perf_counter_diff (chain, draw) float64 0.02507 0.03056 ... 0.04421\n",
" ... ...\n",
" index_in_trajectory (chain, draw) int64 -31 33 32 -28 43 ... 44 -9 38 29\n",
" energy (chain, draw) float64 -344.9 -345.2 ... -345.0 -346.9\n",
" largest_eigval (chain, draw) float64 nan nan nan nan ... nan nan nan\n",
" n_steps (chain, draw) float64 63.0 63.0 63.0 ... 63.0 127.0\n",
" tree_depth (chain, draw) int64 6 6 6 6 6 6 6 6 ... 6 6 6 6 6 6 7\n",
" diverging (chain, draw) bool False False False ... False False\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.608151\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, channel: 2, control: 3,\n",
" fourier_mode: 4, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 495 496 497 498 499\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_ord...\n",
" * date (date) <U10 '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" beta_channel (chain, draw, channel) float64 1.418 ... 1.259\n",
" gamma_control (chain, draw, control) float64 3.665 ... -1.201\n",
" gamma_fourier (chain, draw, fourier_mode) float64 0.08728 .....\n",
" channel_contributions (chain, draw, date, channel) float64 0.2905 .....\n",
" intercept (chain, draw) float64 -3.807 -1.606 ... -0.598\n",
" lam (chain, draw, channel) float64 1.372 ... 1.678\n",
" ... ...\n",
" mu (chain, draw, date) float64 -3.19 ... -212.0\n",
" alpha (chain, draw, channel) float64 0.0521 ... 0.7527\n",
" channel_adstock (chain, draw, date, channel) float64 0.303 ......\n",
" control_contributions (chain, draw, date, control) float64 0.0 ... -...\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 0.2049 .....\n",
" sigma (chain, draw) float64 2.361 0.3904 ... 2.132\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.644498\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 492 493 494 495 496 497 498 499\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 -7.646 -1.949 ... -210.5 -215.1\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.650068\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179)\n",
"Coordinates:\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (date) float64 0.4794 0.4527 0.5374 ... 0.4978 0.5388 0.5625\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.612711\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179, channel: 2, control: 3, fourier_mode: 4)\n",
"Coordinates:\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" * channel (channel) <U2 'x1' 'x2'\n",
" * control (control) <U7 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) <U11 'sin_order_1' ... 'cos_order_2'\n",
"Data variables:\n",
" channel_data (date, channel) float64 0.3196 0.0 0.1128 ... 0.0 0.4403 0.0\n",
" target (date) float64 0.4794 0.4527 0.5374 ... 0.4978 0.5388 0.5625\n",
" control_data (date, control) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 178.0\n",
" fourier_data (date, fourier_mode) float64 0.9999 -0.01183 ... -0.4547\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.614490\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (index: 179)\n",
"Coordinates:\n",
" * index (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
"Data variables:\n",
" date_week (index) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" x1 (index) float64 0.3186 0.1124 0.2924 ... 0.1719 0.2803 0.4389\n",
" x2 (index) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.8633 0.0 0.0 0.0\n",
" event_1 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" event_2 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" dayofyear (index) int64 92 99 106 113 120 127 ... 207 214 221 228 235 242\n",
" t (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
" y (index) float64 3.985e+03 3.763e+03 ... 4.479e+03 4.676e+03<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, control: 3,\n",
" fourier_mode: 4, channel: 2, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 995 996 997 998 999\n",
" * control (control) object 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) object 'sin_order_1' ... 'cos_o...\n",
" * channel (channel) object 'x1' 'x2'\n",
" * date (date) object '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" intercept (chain, draw) float64 ...\n",
" gamma_control (chain, draw, control) float64 ...\n",
" gamma_fourier (chain, draw, fourier_mode) float64 ...\n",
" beta_channel (chain, draw, channel) float64 ...\n",
" alpha (chain, draw, channel) float64 ...\n",
" lam (chain, draw, channel) float64 ...\n",
" ... ...\n",
" channel_adstock (chain, draw, date, channel) float64 ...\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 ...\n",
" channel_contributions (chain, draw, date, channel) float64 ...\n",
" control_contributions (chain, draw, date, control) float64 ...\n",
" fourier_contributions (chain, draw, date, fourier_mode) float64 ...\n",
" mu (chain, draw, date) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.592010\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n",
" * date (date) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:55.266426\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 994 995 996 997 998 999\n",
"Data variables: (12/17)\n",
" process_time_diff (chain, draw) float64 ...\n",
" lp (chain, draw) float64 ...\n",
" max_energy_error (chain, draw) float64 ...\n",
" step_size (chain, draw) float64 ...\n",
" reached_max_treedepth (chain, draw) bool ...\n",
" perf_counter_diff (chain, draw) float64 ...\n",
" ... ...\n",
" index_in_trajectory (chain, draw) int64 ...\n",
" energy (chain, draw) float64 ...\n",
" largest_eigval (chain, draw) float64 ...\n",
" n_steps (chain, draw) float64 ...\n",
" tree_depth (chain, draw) int64 ...\n",
" diverging (chain, draw) bool ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.608151\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0\n",
" sampling_time: 71.22048568725586\n",
" tuning_steps: 1000<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, channel: 2, control: 3,\n",
" fourier_mode: 4, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 ... 495 496 497 498 499\n",
" * channel (channel) object 'x1' 'x2'\n",
" * control (control) object 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) object 'sin_order_1' ... 'cos_o...\n",
" * date (date) object '2018-04-02' ... '2021-08-30'\n",
"Data variables: (12/13)\n",
" beta_channel (chain, draw, channel) float64 ...\n",
" gamma_control (chain, draw, control) float64 ...\n",
" gamma_fourier (chain, draw, fourier_mode) float64 ...\n",
" channel_contributions (chain, draw, date, channel) float64 ...\n",
" intercept (chain, draw) float64 ...\n",
" lam (chain, draw, channel) float64 ...\n",
" ... ...\n",
" mu (chain, draw, date) float64 ...\n",
" alpha (chain, draw, channel) float64 ...\n",
" channel_adstock (chain, draw, date, channel) float64 ...\n",
" control_contributions (chain, draw, date, control) float64 ...\n",
" channel_adstock_saturated (chain, draw, date, channel) float64 ...\n",
" sigma (chain, draw) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.644498\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (chain: 1, draw: 500, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 492 493 494 495 496 497 498 499\n",
" * date (date) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:54.650068\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179)\n",
"Coordinates:\n",
" * date (date) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (date) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.612711\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (date: 179, channel: 2, control: 3, fourier_mode: 4)\n",
"Coordinates:\n",
" * date (date) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" * channel (channel) object 'x1' 'x2'\n",
" * control (control) object 'event_1' 'event_2' 't'\n",
" * fourier_mode (fourier_mode) object 'sin_order_1' ... 'cos_order_2'\n",
"Data variables:\n",
" channel_data (date, channel) float64 ...\n",
" target (date) float64 ...\n",
" control_data (date, control) float64 ...\n",
" fourier_data (date, fourier_mode) float64 ...\n",
"Attributes:\n",
" created_at: 2023-08-03T12:44:52.614490\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0<xarray.Dataset>\n",
"Dimensions: (index: 179)\n",
"Coordinates:\n",
" * index (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
"Data variables:\n",
" date_week (index) object '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
" x1 (index) float64 0.3186 0.1124 0.2924 ... 0.1719 0.2803 0.4389\n",
" x2 (index) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.8633 0.0 0.0 0.0\n",
" event_1 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" event_2 (index) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
" dayofyear (index) int64 92 99 106 113 120 127 ... 207 214 221 228 235 242\n",
" t (index) int64 0 1 2 3 4 5 6 7 ... 171 172 173 174 175 176 177 178\n",
" y (index) float64 3.985e+03 3.763e+03 ... 4.479e+03 4.676e+03<xarray.Dataset>\n",
"Dimensions: (chain: 4, draw: 1000, date: 179)\n",
"Coordinates:\n",
" * chain (chain) int64 0 1 2 3\n",
" * draw (draw) int64 0 1 2 3 4 5 6 7 ... 992 993 994 995 996 997 998 999\n",
" * date (date) <U10 '2018-04-02' '2018-04-09' ... '2021-08-30'\n",
"Data variables:\n",
" likelihood (chain, draw, date) float64 0.5057 0.4536 ... 0.5621 0.5581\n",
"Attributes:\n",
" created_at: 2023-08-03T12:45:03.555645\n",
" arviz_version: 0.15.1\n",
" inference_library: pymc\n",
" inference_library_version: 5.7.0