{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Model deployment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the main goals of PyMC-Marketing is to facilitate the deployment of its models. " ] }, { "cell_type": "markdown", "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", "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, "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, "metadata": {}, "outputs": [], "source": [ "seed = sum(map(ord, \"mmm\"))\n", "rng = np.random.default_rng(seed=seed)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load the dataset:" ] }, { "cell_type": "code", "execution_count": 3, "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