{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "ylPOlAXV2LpA" }, "source": [ "# Utilizando a biblioteca DARTS para forecasting\n", "## Notebook desenvolvido para o curso Financial Analytics - Insper\n", "Referências:\n", "- https://unit8.com/resources/darts-time-series-made-easy-in-python/\n", "- https://levelup.gitconnected.com/a-python-library-that-makes-it-simple-to-forecast-time-series-6a403da71542\n", "- https://pypi.org/project/statsforecast/" ] }, { "cell_type": "markdown", "metadata": { "id": "DTLnFuIlOveo" }, "source": [ "### 1. Imports and data upload" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "XuQeF4vFZPG_", "outputId": "3a4d44a5-9c42-4cbc-d7fd-40a29e248f3f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: darts in /usr/local/lib/python3.12/dist-packages (0.38.0)\n", "Requirement already satisfied: holidays>=0.11.1 in /usr/local/lib/python3.12/dist-packages (from darts) (0.82)\n", "Requirement already satisfied: joblib>=0.16.0 in /usr/local/lib/python3.12/dist-packages (from darts) (1.5.2)\n", "Requirement already satisfied: matplotlib>=3.3.0 in /usr/local/lib/python3.12/dist-packages (from darts) (3.10.0)\n", "Requirement already satisfied: narwhals>=1.25.1 in /usr/local/lib/python3.12/dist-packages (from darts) (2.9.0)\n", "Requirement already satisfied: nfoursid>=1.0.0 in /usr/local/lib/python3.12/dist-packages (from darts) (1.0.2)\n", "Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.12/dist-packages (from darts) (2.0.2)\n", "Requirement already satisfied: pandas>=1.0.5 in /usr/local/lib/python3.12/dist-packages (from darts) (2.2.2)\n", "Requirement already satisfied: pyod>=0.9.5 in /usr/local/lib/python3.12/dist-packages (from darts) (2.0.5)\n", "Requirement already satisfied: requests>=2.22.0 in /usr/local/lib/python3.12/dist-packages (from darts) (2.32.4)\n", "Requirement already satisfied: scikit-learn>=1.6.0 in /usr/local/lib/python3.12/dist-packages (from darts) (1.6.1)\n", "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.12/dist-packages (from darts) (1.16.2)\n", "Requirement already satisfied: shap>=0.40.0 in /usr/local/lib/python3.12/dist-packages (from darts) (0.49.1)\n", "Requirement already satisfied: statsmodels>=0.14.0 in /usr/local/lib/python3.12/dist-packages (from darts) (0.14.5)\n", "Requirement already satisfied: tqdm>=4.60.0 in /usr/local/lib/python3.12/dist-packages (from darts) (4.67.1)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from darts) (4.15.0)\n", "Requirement already satisfied: xarray>=0.17.0 in /usr/local/lib/python3.12/dist-packages (from darts) (2025.10.1)\n", "Requirement already satisfied: pytorch-lightning<2.5.3,>=2.0.0 in /usr/local/lib/python3.12/dist-packages (from darts) (2.5.2)\n", "Requirement already satisfied: tensorboardX>=2.1 in /usr/local/lib/python3.12/dist-packages (from darts) (2.6.4)\n", "Requirement already satisfied: torch>=1.8.0 in /usr/local/lib/python3.12/dist-packages (from darts) (2.8.0+cu126)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.12/dist-packages (from holidays>=0.11.1->darts) (2.9.0.post0)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (1.3.3)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (4.60.1)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (1.4.9)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (25.0)\n", "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (11.3.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=3.3.0->darts) (3.2.5)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.0.5->darts) (2025.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.0.5->darts) (2025.2)\n", "Requirement already satisfied: numba>=0.51 in /usr/local/lib/python3.12/dist-packages (from pyod>=0.9.5->darts) (0.60.0)\n", "Requirement already satisfied: PyYAML>=5.4 in /usr/local/lib/python3.12/dist-packages (from pytorch-lightning<2.5.3,>=2.0.0->darts) (6.0.3)\n", "Requirement already satisfied: fsspec>=2022.5.0 in /usr/local/lib/python3.12/dist-packages (from fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (2025.3.0)\n", "Requirement already satisfied: torchmetrics>=0.7.0 in /usr/local/lib/python3.12/dist-packages (from pytorch-lightning<2.5.3,>=2.0.0->darts) (1.8.2)\n", "Requirement already satisfied: lightning-utilities>=0.10.0 in /usr/local/lib/python3.12/dist-packages (from pytorch-lightning<2.5.3,>=2.0.0->darts) (0.15.2)\n", "Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests>=2.22.0->darts) (3.4.4)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests>=2.22.0->darts) (3.11)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests>=2.22.0->darts) (2.5.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests>=2.22.0->darts) (2025.10.5)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn>=1.6.0->darts) (3.6.0)\n", "Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.12/dist-packages (from shap>=0.40.0->darts) (0.0.8)\n", "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.12/dist-packages (from shap>=0.40.0->darts) (3.1.1)\n", "Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.12/dist-packages (from statsmodels>=0.14.0->darts) (1.0.2)\n", "Requirement already satisfied: protobuf>=3.20 in /usr/local/lib/python3.12/dist-packages (from tensorboardX>=2.1->darts) (5.29.5)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (3.20.0)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (75.2.0)\n", "Requirement already satisfied: sympy>=1.13.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (1.13.3)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (3.5)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (3.1.6)\n", "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.77)\n", "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.77)\n", "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.6.80 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.80)\n", "Requirement already satisfied: nvidia-cudnn-cu12==9.10.2.21 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (9.10.2.21)\n", "Requirement already satisfied: nvidia-cublas-cu12==12.6.4.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.4.1)\n", "Requirement already satisfied: nvidia-cufft-cu12==11.3.0.4 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (11.3.0.4)\n", "Requirement already satisfied: nvidia-curand-cu12==10.3.7.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (10.3.7.77)\n", "Requirement already satisfied: nvidia-cusolver-cu12==11.7.1.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (11.7.1.2)\n", "Requirement already satisfied: nvidia-cusparse-cu12==12.5.4.2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.5.4.2)\n", "Requirement already satisfied: nvidia-cusparselt-cu12==0.7.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (0.7.1)\n", "Requirement already satisfied: nvidia-nccl-cu12==2.27.3 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (2.27.3)\n", "Requirement already satisfied: nvidia-nvtx-cu12==12.6.77 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.77)\n", "Requirement already satisfied: nvidia-nvjitlink-cu12==12.6.85 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (12.6.85)\n", "Requirement already satisfied: nvidia-cufile-cu12==1.11.1.6 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (1.11.1.6)\n", "Requirement already satisfied: triton==3.4.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.0->darts) (3.4.0)\n", "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.12/dist-packages (from fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (3.13.1)\n", "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.51->pyod>=0.9.5->darts) (0.43.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil->holidays>=0.11.1->darts) (1.17.0)\n", "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy>=1.13.3->torch>=1.8.0->darts) (1.3.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.8.0->darts) (3.0.3)\n", "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (2.6.1)\n", "Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (1.4.0)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (25.4.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (1.8.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (6.7.0)\n", "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (0.4.1)\n", "Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]>=2022.5.0->pytorch-lightning<2.5.3,>=2.0.0->darts) (1.22.0)\n", "Requirement already satisfied: prophet in /usr/local/lib/python3.12/dist-packages (1.1.7)\n", "Requirement already satisfied: cmdstanpy>=1.0.4 in /usr/local/lib/python3.12/dist-packages (from prophet) (1.2.5)\n", "Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.12/dist-packages (from prophet) (2.0.2)\n", "Requirement already satisfied: matplotlib>=2.0.0 in /usr/local/lib/python3.12/dist-packages (from prophet) (3.10.0)\n", "Requirement already satisfied: pandas>=1.0.4 in /usr/local/lib/python3.12/dist-packages (from prophet) (2.2.2)\n", "Requirement already satisfied: holidays<1,>=0.25 in /usr/local/lib/python3.12/dist-packages (from prophet) (0.82)\n", "Requirement already satisfied: tqdm>=4.36.1 in /usr/local/lib/python3.12/dist-packages (from prophet) (4.67.1)\n", "Requirement already satisfied: importlib_resources in /usr/local/lib/python3.12/dist-packages (from prophet) (6.5.2)\n", "Requirement already satisfied: stanio<2.0.0,>=0.4.0 in /usr/local/lib/python3.12/dist-packages (from cmdstanpy>=1.0.4->prophet) (0.5.1)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.12/dist-packages (from holidays<1,>=0.25->prophet) (2.9.0.post0)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (1.3.3)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (4.60.1)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (1.4.9)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (25.0)\n", "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (11.3.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib>=2.0.0->prophet) (3.2.5)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.0.4->prophet) (2025.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.0.4->prophet) (2025.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil->holidays<1,>=0.25->prophet) (1.17.0)\n", "Collecting statsforecast\n", " Downloading statsforecast-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (29 kB)\n", "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.12/dist-packages (from statsforecast) (3.1.1)\n", "Collecting coreforecast>=0.0.12 (from statsforecast)\n", " Downloading coreforecast-0.0.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.7 kB)\n", "Requirement already satisfied: numba>=0.55.0 in /usr/local/lib/python3.12/dist-packages (from statsforecast) (0.60.0)\n", "Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.12/dist-packages (from statsforecast) (2.0.2)\n", "Requirement already satisfied: pandas>=1.3.5 in /usr/local/lib/python3.12/dist-packages (from statsforecast) (2.2.2)\n", "Collecting scipy<1.16.0,>=1.7.3 (from statsforecast)\n", " Downloading scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.0/62.0 kB\u001b[0m \u001b[31m5.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: statsmodels>=0.13.2 in /usr/local/lib/python3.12/dist-packages (from statsforecast) (0.14.5)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from statsforecast) (4.67.1)\n", "Collecting fugue>=0.8.1 (from statsforecast)\n", " Downloading fugue-0.9.1-py3-none-any.whl.metadata (18 kB)\n", "Collecting utilsforecast>=0.1.4 (from statsforecast)\n", " Downloading utilsforecast-0.2.14-py3-none-any.whl.metadata (5.5 kB)\n", "Requirement already satisfied: threadpoolctl>=3 in /usr/local/lib/python3.12/dist-packages (from statsforecast) (3.6.0)\n", "Collecting triad>=0.9.7 (from fugue>=0.8.1->statsforecast)\n", " Downloading triad-0.9.8-py3-none-any.whl.metadata (6.3 kB)\n", "Collecting adagio>=0.2.4 (from fugue>=0.8.1->statsforecast)\n", " Downloading adagio-0.2.6-py3-none-any.whl.metadata (1.8 kB)\n", "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.55.0->statsforecast) (0.43.0)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.3.5->statsforecast) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.3.5->statsforecast) (2025.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=1.3.5->statsforecast) (2025.2)\n", "Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.12/dist-packages (from statsmodels>=0.13.2->statsforecast) (1.0.2)\n", "Requirement already satisfied: packaging>=21.3 in /usr/local/lib/python3.12/dist-packages (from statsmodels>=0.13.2->statsforecast) (25.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas>=1.3.5->statsforecast) (1.17.0)\n", "Requirement already satisfied: pyarrow>=6.0.1 in /usr/local/lib/python3.12/dist-packages (from triad>=0.9.7->fugue>=0.8.1->statsforecast) (18.1.0)\n", "Requirement already satisfied: fsspec>=2022.5.0 in /usr/local/lib/python3.12/dist-packages (from triad>=0.9.7->fugue>=0.8.1->statsforecast) (2025.3.0)\n", "Collecting fs (from triad>=0.9.7->fugue>=0.8.1->statsforecast)\n", " Downloading fs-2.4.16-py2.py3-none-any.whl.metadata (6.3 kB)\n", "Collecting appdirs~=1.4.3 (from fs->triad>=0.9.7->fugue>=0.8.1->statsforecast)\n", " Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from fs->triad>=0.9.7->fugue>=0.8.1->statsforecast) (75.2.0)\n", "Downloading statsforecast-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (344 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m344.8/344.8 kB\u001b[0m \u001b[31m17.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading coreforecast-0.0.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m287.4/287.4 kB\u001b[0m \u001b[31m24.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading fugue-0.9.1-py3-none-any.whl (278 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m278.2/278.2 kB\u001b[0m \u001b[31m22.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m37.3/37.3 MB\u001b[0m \u001b[31m23.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading utilsforecast-0.2.14-py3-none-any.whl (41 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/41.0 kB\u001b[0m \u001b[31m2.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading adagio-0.2.6-py3-none-any.whl (19 kB)\n", "Downloading triad-0.9.8-py3-none-any.whl (62 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.3/62.3 kB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading fs-2.4.16-py2.py3-none-any.whl (135 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m135.3/135.3 kB\u001b[0m \u001b[31m12.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)\n", "Installing collected packages: appdirs, scipy, fs, coreforecast, utilsforecast, triad, adagio, fugue, statsforecast\n", " Attempting uninstall: scipy\n", " Found existing installation: scipy 1.16.2\n", " Uninstalling scipy-1.16.2:\n", " Successfully uninstalled scipy-1.16.2\n", "Successfully installed adagio-0.2.6 appdirs-1.4.4 coreforecast-0.0.16 fs-2.4.16 fugue-0.9.1 scipy-1.15.3 statsforecast-2.0.2 triad-0.9.8 utilsforecast-0.2.14\n" ] }, { "data": { "application/vnd.colab-display-data+json": { "id": "1607e068c7ce4658ad3a96d39cad4d06", "pip_warning": { "packages": [ "scipy" ] } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# DARTS now is lightweight install: please see https://github.com/unit8co/darts/blob/master/INSTALL.md#enabling-optional-dependencies\n", "# you have to install manually some dependencies:\n", "\n", "!pip install darts # descomentar para instalação inicial\n", "!pip install prophet\n", "!pip install statsforecast" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "id": "_eQ3qsd92Rks" }, "outputs": [], "source": [ "from darts.models import (\n", " NaiveSeasonal,\n", " NaiveDrift,\n", " Prophet,\n", " ExponentialSmoothing,\n", " ARIMA,\n", " AutoARIMA,\n", " TBATS\n", ")\n", "\n", "from darts import TimeSeries\n", "from darts.metrics import mape, mase, mae, mse, ope, r2_score, rmse, rmsle\n", "from statsmodels.tsa.stattools import adfuller\n", "\n", "import time\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "396WjS0r2an5" }, "outputs": [], "source": [ "# importing data\n", "url = \"https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv\"\n", "df = pd.read_csv(url, parse_dates = ['Month'],index_col = ['Month'])\n", "series = TimeSeries.from_dataframe(df)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 455 }, "id": "9hlKp0aHDnS8", "outputId": "46a1a9fd-5a6f-42c6-8768-3044edc62e10" }, "outputs": [ { "data": { "application/vnd.google.colaboratory.intrinsic+json": { "summary": "{\n \"name\": \"df\",\n \"rows\": 144,\n \"fields\": [\n {\n \"column\": \"Month\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"1949-01-01 00:00:00\",\n \"max\": \"1960-12-01 00:00:00\",\n \"num_unique_values\": 144,\n \"samples\": [\n \"1958-10-01 00:00:00\",\n \"1950-08-01 00:00:00\",\n \"1955-11-01 00:00:00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Passengers\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 119,\n \"min\": 104,\n \"max\": 622,\n \"num_unique_values\": 118,\n \"samples\": [\n 293,\n 340,\n 121\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", "type": "dataframe", "variable_name": "df" }, "text/html": [ "\n", "
| \n", " | Passengers | \n", "
|---|---|
| Month | \n", "\n", " |
| 1949-01-01 | \n", "112 | \n", "
| 1949-02-01 | \n", "118 | \n", "
| 1949-03-01 | \n", "132 | \n", "
| 1949-04-01 | \n", "129 | \n", "
| 1949-05-01 | \n", "121 | \n", "
| ... | \n", "... | \n", "
| 1960-08-01 | \n", "606 | \n", "
| 1960-09-01 | \n", "508 | \n", "
| 1960-10-01 | \n", "461 | \n", "
| 1960-11-01 | \n", "390 | \n", "
| 1960-12-01 | \n", "432 | \n", "
144 rows × 1 columns
\n", "<TimeSeries (Month: 132, component: 1, sample: 1)> Size: 1kB\n",
"array([[[112.]],\n",
"\n",
" [[118.]],\n",
"\n",
" [[132.]],\n",
"\n",
" [[129.]],\n",
"\n",
" [[121.]],\n",
"\n",
" [[135.]],\n",
"\n",
" [[148.]],\n",
"\n",
" [[148.]],\n",
"\n",
" [[136.]],\n",
"\n",
" [[119.]],\n",
"\n",
"...\n",
"\n",
" [[406.]],\n",
"\n",
" [[396.]],\n",
"\n",
" [[420.]],\n",
"\n",
" [[472.]],\n",
"\n",
" [[548.]],\n",
"\n",
" [[559.]],\n",
"\n",
" [[463.]],\n",
"\n",
" [[407.]],\n",
"\n",
" [[362.]],\n",
"\n",
" [[405.]]])\n",
"Coordinates:\n",
" * Month (Month) datetime64[ns] 1kB 1949-01-01 1949-02-01 ... 1959-12-01\n",
" * component (component) object 8B 'Passengers'\n",
"Dimensions without coordinates: sample\n",
"Attributes:\n",
" static_covariates: None\n",
" hierarchy: None\n",
" metadata: None<TimeSeries (Month: 144, component: 1, sample: 1)> Size: 1kB\n",
"array([[[112.]],\n",
"\n",
" [[118.]],\n",
"\n",
" [[132.]],\n",
"\n",
" [[129.]],\n",
"\n",
" [[121.]],\n",
"\n",
" [[135.]],\n",
"\n",
" [[148.]],\n",
"\n",
" [[148.]],\n",
"\n",
" [[136.]],\n",
"\n",
" [[119.]],\n",
"\n",
"...\n",
"\n",
" [[419.]],\n",
"\n",
" [[461.]],\n",
"\n",
" [[472.]],\n",
"\n",
" [[535.]],\n",
"\n",
" [[622.]],\n",
"\n",
" [[606.]],\n",
"\n",
" [[508.]],\n",
"\n",
" [[461.]],\n",
"\n",
" [[390.]],\n",
"\n",
" [[432.]]])\n",
"Coordinates:\n",
" * Month (Month) datetime64[ns] 1kB 1949-01-01 1949-02-01 ... 1960-12-01\n",
" * component (component) object 8B 'Passengers'\n",
"Dimensions without coordinates: sample\n",
"Attributes:\n",
" static_covariates: None\n",
" hierarchy: None\n",
" metadata: None| \n", " | ExponentialSmoothing() | \n", "Prophet(seasonality_mode=multiplicative) | \n", "Prophet(seasonality_mode=additive) | \n", "AutoARIMA(season_length=12) | \n", "
|---|---|---|---|---|
| MAPE | \n", "2.803136 | \n", "4.443830 | \n", "6.614227 | \n", "4.179693 | \n", "
| MAE | \n", "13.382162 | \n", "21.908813 | \n", "33.434485 | \n", "18.515823 | \n", "
| R squared | \n", "-0.947945 | \n", "-0.879431 | \n", "-0.665160 | \n", "-0.896715 | \n", "
| RMSE | \n", "16.981068 | \n", "25.843594 | \n", "43.067799 | \n", "23.919484 | \n", "
| RMSLE | \n", "0.035501 | \n", "0.051378 | \n", "0.081915 | \n", "0.053503 | \n", "
| time | \n", "0.125575 | \n", "0.131732 | \n", "0.098499 | \n", "0.370646 | \n", "