{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fast Fourier Transform Forecasting Model (FFT)\n", "The following is a brief demonstration of the FFT forecasting model. This model is especially suited for data that is very seasonal. The datasets chosen for this demonstration were selected accordingly." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# fix python path if working locally\n", "from utils import fix_pythonpath_if_working_locally\n", "\n", "fix_pythonpath_if_working_locally()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Importing plotly failed. Interactive plots will not work.\n" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline\n", "import warnings\n", "\n", "import pandas as pd\n", "\n", "from darts.datasets import AirPassengersDataset, EnergyDataset, TemperatureDataset\n", "from darts.metrics import mae\n", "from darts.models import FFT, ExponentialSmoothing, Theta\n", "from darts.utils.missing_values import fill_missing_values\n", "\n", "warnings.filterwarnings(\"ignore\")\n", "import logging\n", "\n", "logging.disable(logging.CRITICAL)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read and format\n", "Here we simply read the CSV file containing daily temperatures, and transform the values into the desired format." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "ts = TemperatureDataset().load()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Constructing `TimeSeries` instances for training and validation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train, val = ts.split_after(pd.Timestamp(\"19850701\"))\n", "train.plot(label=\"train\")\n", "val.plot(label=\"val\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic FFT model" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "model = FFT(required_matches=set(), nr_freqs_to_keep=None)\n", "model.fit(train)\n", "pred_val = model.predict(len(val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot below shows us that a simple DFT with a random train-test split will most likely lead to bad results. Upon closer inspection we can see that the prediction (in purple) simply repeats the training set (blue). This is the standard behavior of the DFT, and by itself it is quite useless, since repeating our training set could be done much more efficiently. Three improvements were made to this approach." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MAE: 5.424526892430279\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train.plot(label=\"train\")\n", "val.plot(label=\"val\")\n", "pred_val.plot(label=\"prediction\")\n", "print(\"MAE:\", mae(pred_val, val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improvement 1: Crop the training set\n", "The first improvement consists of cropping the training set before feeding it to the FFT algorithm such that the first timestamp in the cropped series matches the first timestamp to be predicted in terms of seasonality, i.e. it has the same month, day, weekday, time of day, etc. We could achieve this by passing the optional argument `required_matches` to the FFT constructor that explicitly tells our model which timestamp attributes are relevant. But actually, if we don't set it manually, the model will attempt to automatically find the pd.Timestamp attributes that are relevant and crop the training set accordingly (which we will do here)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "model = FFT(nr_freqs_to_keep=None)\n", "model.fit(train)\n", "pred_val = model.predict(len(val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the results look like the seasonality of the predictions nicely aligns with the seasonality of the validation set. However, we are still just repeating the training set, including all of the noise. Looking at the error we can see that this is still a pretty bad forecast." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MAE: 3.0995766932270916\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train.plot(label=\"train\")\n", "val.plot(label=\"val\")\n", "pred_val.plot(label=\"predict\")\n", "print(\"MAE:\", mae(pred_val, val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improvement 2: Filtering out low-amplitude waves\n", "The decomposition of the DFT into the frequency domain allows us to selectively filter out waves with low amplitudes. This allows us to keep strong seasonal trends while discarding some noise. This is achieved in the FFT model by passing the optional argument `nr_freqs_to_keep`. This argument represents the total number of frequencies that will be kept. For instance, if a value of 20 is passed, only the 20 frequencies with the highest amplitudes will be utilized. The default value is set to 10." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "model = FFT(nr_freqs_to_keep=20)\n", "model.fit(train)\n", "pred_val = model.predict(len(val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get a signal that is less noisy. Depending on the data set, this might be a better forecast. Looking at the error metric, we can see that this model performs significantly better than the previous models." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MAE: 2.2941917142812893\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train.plot(label=\"train\")\n", "val.plot(label=\"val\")\n", "pred_val.plot(label=\"predict\")\n", "print(\"MAE:\", mae(pred_val, val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improvement 3: Detrending\n", "Let's try out a different data set that has a global upward trend" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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+clPfhJWP/r27Utqaiq7d+9m165dLbpZBMELxM0idAqffvopBw4cQCnFTTfdBHizmMfBcdmMGjWq0f62TII6N4ZQ3CpN8fl8rqtl3rx5VFVVkZmZSa9evcJuSxACIWIudAr//e9/ATj99NNdV8SaNWuoqakJdFlI1NfXu2LeVIAdMV++fHlIbVmW5frfHVEOF+e62bNnA+3nYhEObUTMhU7BX8x79uzJwIEDqa2tdScII2H9+vXs37+fvLw8+vRpvAxy8ODB9OjRg8LCQnbvbpZyvxnbt2+noqKC3r17k5nZtnorzs3KEXNxsQjtgYi50OGUlpayZMkSkpKSOP7444EGX7YXfvMlS5YALbtF4uPjOeooU+kwlOiZSK1y/2t37DCFPkXMhfZAxFzocD7++GMsy+K4445zY8AdMffCb/71118Drfu4R48eDYQm5o6/3AsxdxA3i9AeiJgLHY6/i8XBWSzkpWU+duzYFo+3RcxbK/sWCkOGDMHnawgXFMtcaA9EzIUOpyUxj1bL3As3S/fu3Rk4sCELloi50B6ImAutorWmT58+PP300561uXr1atauXUtqairjx4939zuW+bfffktdXV1rlwelqKiIoqIi0tLSWk2C5YQrrlixosXomWeeeYa0tDQ++OADT9ws/tcnJibSr187F+MUDklEzIVW+dWvfkVJSQmvvfaaZ23OmGHqeV9yySUkJDSsWUtPTyc3N5cDBw6wefPmNrfvuFhGjx5NXFzLH+/U1FQGDx5MdXW1K9YOBw8e5J577qG8vJxrr72WjRs3EhcXF7Gf2xHz/Px84uPjI2pLEFpCxFxokcWLFzN37lzAxGRblhXW9d9++y0XXnghN9xwA8899xxlZWVUVVXxwgsvAPDjH/+42TVt8ZuvWrXKzXsCwf3lDo513tTVMnPmTIqLiwFTQ7S+vp78/Hy6desWcp9awglPFBeL0F6ImAst8sADD7jPS0tLXYELlWeffZY333yTZ555hh//+MecdNJJ/PWvf2X37t2MGzcOpVSzaxwf9+LFi0N6j7q6Ok444QTGjh3rruh0cr0EW63Zkt/csiwef/xxAKZPn+5a9pG6WADOPfdcjj/+eKZNmxZxW4LQEpKbRWjG6tWreeONN0hKSiI/P581a9awfPly+vbtG3IbTg6Sq666ii+++IKlS5fys5/9DGjZKgeT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jIvLOuyww6wDBw5Yv/3tby3AuvXWW4O2M3r0aAuw5s6daz399NMWYF122WURja0lqqurraSkJLevDz74oHts2bJlVlJSkpWQkGDt27fP8/fuSKLpMxYpMpYOo0VNlUVDXQTHxeLvH7/yyiuJj4/nnXfeYdeuXUHbeO+999i6dSsFBQWMGjWK7du3M2PGDHeCMZhlDvD9738fMCGKn3zyCQAnn3xyuMMJSmJiopuxERqPOyMjg7feeotZs2aRmprq+XsLQldExLyL0JKY5+bmctppp1FbW+smyQrEM888A5hEWk71nJ///Oe89957QINrIxDnnHMO0FjMTznllJDHEQ6O3zwzM7NZvpizzjqL8847r13eVxC6IiLmUcS3337LvffeS1VVVaP95eXlLFy4kLi4uGZWsCPujrC2xpIlS5gzZw5JSUlcffXVXHzxxa7lO27cOJ599lnGjRsXtI/jx48nOzubzZs3s3PnTvr27cvQoUPDGGXoOMv6TzvtNLe4siAILSP5zKOIO++8k3//+99069aNO+64AzBhg1dccQW1tbUcf/zxbuUeB8cqDiTmNTU13H777ViWxc9//nOyssx6rgULFrBnz56wlt3HxcVx9tln87e//c19//Yq5nDttddSUlLC1Vdf3S7tC0JM0ZozvQMeUU9HT4IMGDDAAqzhw4db9fX1Vm1trXXZZZdZgJWRkWEtXbq02TXV1dVWSkqKBViFhYUttvvggw9agJWfn2/t378/4n6+8cYb7sTks88+G3F74RLlk1NhIWOJTqJ8LC1qqljmHrFmzRr+/Oc/U1NTQ3JyMjfeeCO5ubkhX79nzx62bNkCmEU9//vf//jss8945ZVXSElJYc6cOW4qWn8SExM54YQTmDNnDvPmzeOyyy5rdHzhwoXcfffdgPGZ9+zZM4JRGs4880ySkpKorq5uN3+5IAjhIWLuEbfddlujvCUbN25k5syZIV+/dOnSRq9/97vfudXiX3nllYAZ/U455RTmzJnDJ5980kjM//3vf3PZZZdx4MABLrroIr773e+G3J9ApKSk8Pe//53i4uKAGRQFQehAWjPZO+AR9YT6U6umpsZKTU21AOu3v/2tlZiYaMXFxVlr1qwJ+b2efPJJC7COO+4414UBWBdeeGHQaxcuXGgB1tChQ919n3zyieXz+SzA+tGPfmRt2rQp5L5EO1H+EzgsZCzRSZSPReLM24tFixZRXl7O0KFD+dWvfsWVV15JfX09Dz74YMhtOLm7J0+e7FrhPXv25PHHHw967dFHH01KSgpr1qxh+/btAPzjH//AsixuuOEGZsyYQUKC/AgThFhGxNwDmsaA33HHHfh8Pv7+97+HnHnNEfPRo0dz6623AvDwww+HtFzd8ZsDzJkzB8uymDt3LgA/+tGP2i3aRBCE6EHE3AOaivnQoUO56KKLqKmp4Yknngh6fW1trVtfc9SoUVx88cVUVVXx4x//OOQ+/OAHPwDg5ZdfZvXq1WzdupU+ffq4C28EQYhtRMwjpLKyks8//xyfz8epp57q7p8+fTqAm3c7EGvXruXAgQMMGDDAjSNPTk4Oqx8XXXQRSUlJfPTRR7zwwgsATJw4URbbCMIhgnzTI+Szzz6jurqasWPHNirYMH78eBITE1m+fDnl5eUB2/B3sbSVjIwMJk2ahGVZPPLII4BZ8i4IwqHBISHmJSUlrFixghUrVgQV1nBpKWcKQPfu3RkzZgyWZfHll1+2er2/fztSl8gVV1wBGLcNEPWVnARB8I6YF/NNmzYxcOBAjjzySPfRNPdJJDix4C1V+zn22GOBhpzcTamtrWXatGm88MIL+Hw+t2hyW/n+979PWpopAjVq1KiwFi0JgtC1iXkxf+qpp6isrCQ7O5v09HS2bNnC888/70nbFRUVfPXVV8TFxXHcccc1O/6d73wHaFnM9+/fz3nnncdf/vIXkpOTeeONN9zz20pycjIXXXQRIC4WQTjkaC0AvQMe7U5FRYWVkZFhAdaiRYusWbNmWYA1cOBAq7q6Ouj1/gsHXn75ZWvx4sWNjn/44YcWYI0bN67F6zds2GABVlZWllVfX+/u37Fjh3X00UdbgNW7d2/r888/b+MIm7Nz507r7rvvtnbv3t3qWLo6MpboRMbSYRx6i4Zefvll9uzZw4QJE1BKccEFFzBs2DA2b97Mq6++GnI7CxYs4PLLL+eEE07gs88+c/d/+umngClp1hL5+flkZ2dTUlLC+vXr3f1nn302X331FQUFBXzxxRcRW+T+9OnTh9/85jdkZGR41qYgCNFPzIq5ZVn86U9/AhrCBOPi4tzUsg888AD19fUhtfXKK68AUFVVxdlnn83ixYsBXGF3Fuw0xefzNXO1FBYW8tVXX5Gamsrnn3/OkCFD2jI8QRCERsSsmC9YsIBvvvmGPn36cPHFF7v7r7jiCvr168fKlSsbWdmtUVtby+uvvw4Y0d63bx9nn302paWlbrm11sQcmk+CLlq0CIBjjjmG7Ozstg1OEAShCV1ezO+++25SUlK4+eabG9XBfPbZZwGznL1bt27u/qSkJDez4BtvvBG0/Xnz5rFz506GDBnCf//7X77zne9QXFzMFVdcQWVlJUOHDiUnJ6fV6x0xnz9/PoAbphgoC6IgCEK4dGkxr6ys5LHHHqOiooLHH3+cwYMH89FHH1FSUsLrr7+Oz+dj2rRpza5zlr6/+eabWJYV8D0c3/rkyZNJSkri0UcfBXBjwwNZ5WAiWlJSUli2bBlbtmxxxXzChAnhDVYQBCEAXVrM33rrLcrLyxk5ciRnnXUW+/fv58orr+Sxxx6jurqa733vey2WRDvmmGPIy8tj27ZtrtujJaqrq13r/dJLLwWMpe2E/0Hrk58O3bp148wzz3T76+9mEQRB8IouLeYvvvgiAD/5yU949913Oe6449i+fTv3338/QKuJquLi4lzrPJCrZebMmezZs4fRo0e7xY8Bfv/735OYmAgEF3Mwi3kAnnjiCfbt20e/fv1kQY8gCJ7SZcW8qKiIuXPnkpiYyKWXXkp8fDwvvviiWxatX79+fO9732v1+gsvvBAwYt6Sq6WqqsrNJf6rX/2q0bHDDz+cWbNm8Ze//IWCgoKgfZ00aRI+n49169YBYpULguA9XVbM//73v1NfX8/ZZ5/tVpsvKCjgj3/8Iz6fj1tvvTVgQYYTTjiBPn36sH79ejfR1ZYtW7jmmmuYOXMmzzzzDMXFxYwZM8a14v0599xzufbaa0Pqa05OTiMBFzEXBMFzWltN1AGPNjNnzhwrMTHRAqz//Oc/zY6XlZU1WnHZGjfccIMFWDfddJNlWZb1wx/+sFHJNsB6++23I+mqy3333ee2+fHHH3vSZjhE+Yq2sJCxRCcylg4jNlaAzp8/nwsuuICamhpuuukmzjnnnGbnpKWlhVRd5+qrrwZMibXi4mJmzZoF4Pqzx40bx9lnn+1Jvx2/uc/nY9y4cZ60KQiC4NClCkPu3buX8847j6qqKq699loeffTRiEqiKaUYOXIkK1as4Morr+TAgQOcccYZvPXWW7z33nscfvjhnpVcGzVqFLfccguZmZmkpqZ60qYgCIJDlxLz9PR0ZsyYwdtvv81zzz0XsdD6fD6uueYabr31Vj744AMArrvuOrp3786FF14Ycv3OUN/r4Ycf9qw9QRAEf3xWkEUzSqlU4ENgJHCs1nq5UupS4EbgADBFa71VKTUCeA5zg7hLa/1hkPcO/MYdRHFxMXl5edTV1dG7d28KCwvdFaOFhYXk5eV1cg+9QcYSnchYopMoH0uLVmwoPvMq4PvALAClVCLwC+AU4C77AXA/MBU4C7g3sr52HDk5Oa5ffMqUKY2W/guCIHQVgrpZtNa1wC6llLNrCLBCa10NLFBKOb6DXK31WgClVKlSKktrXdIenfaaJ554ghEjRrgZFQVBELoabfGZpwP7/F7H21t/078MyAQaiblSahowDUxa2mipUZmYmMj06dOpqKigoqLC3V9TU+Op37wzkbFEJzKW6CSax9Ka+6ctYr4HSPN7XWdv/ZODpwO7m16otZ4BzLBfRoXPPBBR7jcLCxlLdCJjiU664ljaIubrgBFKqSRgPLDU3l+klBoCFAOZXcXFIgiCEAuEJOZKqfeAMcAw4BngMWAeJprlKvu0O4Hn7TZ/7XVHBUEQhNYJScy11pNa2D2zyTkrgeApBAVBEATP6XLL+QVBEITmiJgLgiDEACLmgiAIMYCIuSAIQgwQNDeLIAiCEP2IZS4IghADiJgLgiDEACLmgiAIMYCIuSAIQgwgYi4IghADiJgLgiDEAIe8mCuletpbbyo3dyKxNBYApdRAe9vlx6OUOqaz++AVSql+nd0Hr4il78whG2eulDoTUyhjB/CA1jo6M9GHgFLqPEz2ykLMWLZ3cpciwv6CPQj0Ay7SWtd0cpfajFJqNPAksBBTG7e6k7vUZpRS3wN+ismW+jfgI611Vef2qm3E0vff4VC2zK8A/ozJx369UqpLZnxUSn0XmAI8gKnsdLu9v8taGlrrCuAgkApcA116PCcCv9Na3wEUdHZn2opSKh64HlNc5kHgBCCxC/9ffkgMfP/9OWQsc6VUD+BS4DNgJ3Ab8AhQYe/vDbzWFaxaeyyXAXMwFZ7qtNY7lVK9gJeBa7TWOzuzj+Hg97+Zr7VebwvEDcA3wM+BW7XWWzqzj6Hi/znTWq9VSk0FjsTUA9gBLALe1lqv77xehoY9lsmY2gX7genAvzEFal4FfgwUaa0PdlYfQ0Up1R1TZ2E28BXwS7ro9781DgnLXCl1GfAJ0APYoLUuA3KA79g/e78GugO9Oq2TIeI3lmSgWGu9wxbyeKAnsLGLCbkznu7AFgCttQUcgfl/vImxnKLeT9tkLJvs3T0wn7VbMDeog0BL9QGiiqZj0VoXA/8FrgSWYAyiHwE/6aQuhoxSqj/wCqYK2hda6/1AH7rg9z8QMS/mSqk04BLgt5gP4xlKqd6Yikk/Ukr10FovBwbaj6ilhbGcopQaDqC1rsOIuWWfOyDafwI3Gc9HwMlKqZH24XkYC6oCIyA/s6+Jys9sC2M5VSl1GPAGkAQcZhsRm4Fa+5qo/P+08Dk7XSk1RGv9CWZsT2qtp2Cs3GSlVFy0jsUmAfgP8DFwoz0Z/TIwRSnVs6t8/4MRk24WOwriVuBdYAHGb3kz5kv1NkYcTsFMgCQBnwJXA7O01u90fI9bJ8hY3sKM5Xyt9Sal1DUYX2YZ5mfjT20rJGoIcTxnYfyzp2AswB3Afq31XZ3Q5VYJ8XN2OnAaMAL4FjgbWKu1/m1n9Lk1Qvy/TAK+D/QF5mJusHu01j/rjD63ht9Y3gaWAXn260KMgXA1cB9wPlAE/I8o/f6HQ1RaOZFg/xx/GPMzNwd4UWv9HvAQcKrW+mHgJeBBrfUfMEJ+HbA02v6RIYzlEeAFzIQUmOiP4zBiMSUKhTyU8bwE/MY+73mt9WSt9c1RKOShfM5eBB7SWr8GvAZ8B/MzP9qEPJz/y1+BNRj/88IoFHL/seQCT2utNZAFHNBa/xN4FDgT4zP/H1H6/Q+XmBFzpdRJfj/10rXWj2it/w6kKKV+qbV+H3COPw70UEql2j8dp2itH+34XrdMmGP5E/bPdszPyO9orZ/p4C4HJMzxPIHtu9Ra/8O+Pmo+p20YS5JSKs2ukXtLNP1v2jCWFCBZa/0qcIHW+k+d0O0WCTCWNKXUtRhLfAKA1no2MBJIjMbvf1uJmi9JW1FK9VRKvY/x7U3ChOd9ppS63j5lPnCuUipda12nlDoJe0Zea10OoLWubaHpDieCsawH0Fp/prXe2/E9b5kIxrNWa13ptKO1ru/grjcjws/ZPnDnNTqdCP8vFQDREi8f4liutbefK6XuUkp9AGwHdkP0fP8jJSZ85kqpo4EBwDHAU0A68DSwESjHTKJ9gPFZ/hnz8/2NTulsEGJpLBBb45GxdNmxHAT+hXGp5ABHaq3ndkpn25GYEHMHpdSTwJda63/YkQRpmJjYG4F/2OFVXYJYGgvE1nhkLNFJkLG8qLXe1akdbGe6vJsFGoV4/RMTEpZtB/+nATMxd+390eR7bY1YGgvE1nhkLNFJiGOpiPLwyYiJKcscQCn1M8yy6d2Yu/I6rfWXndurthFLY4HYGo+MJTqJpbGES9TfdUPFz4IYBXwPsxLy5a74j4ylsUBsjUfGEp3E0ljaSixa5hcC7+gukC8iGLE0Foit8chYopNYGku4xJyYC4IgHIrEjJtFEAThUEbEXBAEIQYQMRcEQYgBRMwFQRBiABFzQRCEGCChszsgCF6ilMrH5OQAU0D5Pnv/89j1RLXWbVoJqJQagSna8ImdbQ+l1AuYGqzj7VSrgtApiJgLscw1SqnfYUq3XexBeyOAu+3nn3jQniB4hsSZCzGFn2W+ARiMqfIzCJNFrwRTdSYOuBNTaSoT0MB0rfUKpdRvMIL9FKaAQQamduciGix+h1MxFWqmAPdjqvH4gMu11p+20xAFoUXEZy7EKt9iUp5OtR//Bvbax67BFCtYCvw/YDzwH6VUot/1Z2AEvRfwALALU9QETF3Py4CVfuefCszAVHv6jbdDEYTgiJgLsczzGPfK8cDf/PZPsre/0Fo/iSn2WwAM9TvnUa31ExgLP98uyrDAPrZca/2q1nqn3/m/sf3zB4F8z0ciCEEQMRdimVeBOmAbptBCUwL5GHfb21oaviehnh8fRh8FwRNEzIWYxS7XNhW4vknpuXft7aN2ytRzMaX31gRpco+9PVEpNVkp1d3TDgtCBEg0ixDTaK1ntrD7BcxE6HWYCdJFmAnQGqVUoOY+w9SaPMm+rr+nnRWECJBoFkEQhBhA3CyCIAgxgIi5IAhCDCBiLgiCEAOImAuCIMQAIuaCIAgxgIi5IAhCDCBiLgiCEAOImAuCIMQA/x9iFOAoUtm+qwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ts_2 = AirPassengersDataset().load()\n", "train, val = ts_2.split_after(pd.Timestamp(\"19551201\"))\n", "train.plot(label=\"train\")\n", "val.plot(label=\"val\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "model = FFT()\n", "model.fit(train)\n", "pred_val = model.predict(len(val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Clearly, our model fails completely at incorporating the upward trend. Due to the trend, our model also fails to recognize the monthly seasonality." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train.plot(label=\"train\")\n", "val.plot(label=\"val\")\n", "pred_val.plot(label=\"prediction\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This problem can be solved by setting the optional trend argument to either 'poly' or 'exp', which fits a polynomial or exponential funtion to the data and subtracts it before moving on to DFT. When predicting, the trend is added again." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "model = FFT(trend=\"poly\")\n", "model.fit(train)\n", "pred_val = model.predict(len(val))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have a much better prediction now." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEPCAYAAACwWiQoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABTxklEQVR4nO2dd3hc1bW331HvvViWi2xZttxtfFzABkwxENOD6cWUYAJxAoR6+QIkhCRcaiCh+SZcSoJjMNyEZhsMxt3g4967JVuyeu8azfn+2HNGoz7SjKSRvN7nmWdmTtln79Hod9asvfZaFsMwEARBEPo2Pr3dAUEQBMF9RMwFQRD6ASLmgiAI/QARc0EQhH6AiLkgCEI/QMRcEAShH9CbYm54+yMnJ6fX+yBjkbH0lYeMpccerSKWeTs0NDT0dhc8hozFO5GxeCd9cSwi5oIgCP0AEXNBEIR+gIi5IAhCP0DEXBAEoR8gYi4IgtAPEDEXBEHoB4iYC4Ig9ANEzJ0oKSnhjTfe6PR5c+fOpaSkxPMdEgTB66moMki70cbP/tvWq/0QMXeiLTHvaAHBV199RVRUVDf1ShAEb2bvcTicBe98BdkFbS7Q7HZEzJ14/PHHOXLkCJMmTWLq1Klce+213HTTTYwfPx6Aq666iilTpjB27FgWLVrkOC8lJYWCggKOHz/O6NGjufvuuxk7diwXXXQR1dXVvTUcQRB6gJIK9WwYsOS73uuHiLkTzz33HKmpqWzfvp0XXniB7du384c//IG9e/cC8M4777BlyxZ0Xee1116jsLCwRRuHDh3iF7/4BXv27CEqKopPPvmkp4chCEIPYoo5wD+/Ecu8BRaLpVsenWHSpEkMGzbM8f61115j4sSJzJgxgxMnTnDo0KEW5wwbNoxJkyYBMGXKFI4fP+7OxyAIgpfjLOZbDsCBzN4RdK8Vc28gJCTE8fr7779n5cqVbNy4kR07djB58mRqampanBMYGOh47evri9Vq7ZG+CoLQOziLOfSede7nykGaps0GnrQf/zIQBNwP1ADzdV0/oWnaGOBt+zFP6rq+0p2OGUbPfyDh4eGUl5e3uq+0tJTo6GhCQkLYv38/mzZt6uHeCYLgjZRUKK06bzKs2gYfroRn7ur5fnQo5pqmBQEPAT/Rdb1O0zR/YB1wNjAVJfILgD8CdwK5wHLALTHvDWJjY5k5cybjxo0jODiYyMhIx75LLrmEt956iwkTJjBq1ChmzJjRiz0VBMFbKLbbf1edbWHtToMjWVBbZxAY0Dm3rru4YpmfBVQDn2uaVgW8AOzRdb0OWK9p2ov245J0XT8EoGlaoaZpcbquF3RLr7uRDz/80PE6KyvL8TowMJBly5a1eo7pF4+Li2P37t2O7Q8//HD3dFIQBK/BdLPERkBkGBSWQlkVxAf0bD9cEfNEYBgwE7gA+C2w12m/r/3Z+TZUCsQATcRc07QFKCuehQsXMmfOnC51uqeor69vIuh9GRmLdyJj8U46M5acgmggiIbaQkIDIyjEjwNHcqkb0D0FLpKTk1vd7oqYlwDr7C6W74D3gZNO+80eOy9/igKKmjek6/oiwAzQ7r0YHhfJyspq84Pra8hYvBMZi3fSmbHUWJX0pabEEhNpkJkHwWGJJCd7n5vlR+AB++vJwNfAGE3TAlA+8532fTmapqWhfOYxfdHFIgiC0FlK7D7zqDCIDFWvSyvaPr676FDMdV0v1DTtM03T1qCs7ztRIr4aFc1ym/3QJ4B37G0+1T3dFQRB8C6K7cIdHe4k5pU93w+XQhN1XX8deN1p01FgSbNj9qIiXARBEE4bzAnQqDA1AQq9I+ayaEgQBKGL1NQa1NaBvx8EBzZa5mUi5n2LsLCw3u6CIAi9iLNVbrFYetXNImIuCILQRZzFHCAiVEWwlFb0fLCeSz7z04XHHnuMoUOHct999wHw0ksvERkZyZo1ayguLqa+vp5nn32WK6+8spd7KgiCN1DiNPkJvTsBKpa5EzfccANLljTO637xxRfccccd/N///R9bt25l1apVPPTQQ72SN0YQBO+j2CksEXp3AtRrLXPLOd1TgslY0/b9a/LkyeTl5ZGdnU1+fj6RkZEkJSXx4IMPsmbNGnx8fMjKyiI3N5cBAwZ0S/8EQeg7NHezeHWc+enGvHnzWLp0KTk5OVxxxRX885//JD8/ny1btuDv709KSkqrqW8FQTj9aEvMy6p6vi9eK+btWdDdyQ033MDdd99NQUEB//rXv1i7di0JCQn4+/uzatUqMjIyeqVfgiB4Hy3E3HSziGXe+4wdO5by8nKSk5NJTEzk5ptv5vLLL0fTNCZNmkR6enpvd1EQBC+hpFzNn0WHqygWr18Berqxa9cuQCXbiYuLY+PGja0eV1HRC7dfQRC8Bodlbo9miZBoFkEQhO7jf78ySLrKxs4jno1EK27mZgkLBosFKqvBau3ZqDcRc0EQ+jUl5QYPvW6QUwTfbfF02+rZFHMfH4vDOu/pSVARc0EQ+jWvfGw44sE97f5oPgEKvReeKGIuCEK/paDE4JWPGt+XVnrW9dGemItlLgiC4CFeWmJQXgUB/uq9p63l5sv5offCE0XMBUHot6y0+8jnX6KePelmMYxG941pjTu/7umIFhHzbuT777/nsssuA+Czzz7jueeea/PYkpIS3njjDcf77Oxs5s2b1+19FIT+TFGZep6Yas9m6EGBraoBawMEBUBQYGO9z94KTxQx7wINDZ2vun3FFVfw+OOPt7m/uZgPHDiQpUuXdql/giAoCu1iPnygevak66M1fznIBKjXcPz4cdLT05k/fz4XXngh8+bNo6qqipSUFJ555hlmzZrFxx9/zNdff82ZZ57JGWecwbXXXutYQLR8+XLS09OZNWsWn376qaPdd999l4ULFwKQm5vL1VdfzcSJE5k4cSIbNmzg8ccf58iRI0yaNIlHHnmE48ePM27cOABqamq44447GD9+PJMnT2bVqlWONn/6059yySWXkJaWxqOPPtrDn5YgeC9Wq0FphYr7HmrPi+dJa7lDMRfLvPc5cOAACxYsYOXKlURERDgs5qCgINatW8eFF17Is88+y8qVK9m6dSuapvHyyy9TU1PD3Xffzeeff87atWvJyclptf1f/epXnHvuuezYsYOtW7cyduxYnnvuOVJTU9m+fTsvvPBCk+Nff12VX921axeLFy9m/vz5jmRf27dvZ8mSJezatYslS5Zw4sSJbvxkBKHv4FxoOdouuCXdYJk7T34CRIb1ToEKr13O/1Xsim5pd27hxR0eM3jwYGbOnElWVha33HILr732GgDXX389AJs2bWLv3r3MnDkTgLq6Os4880z279/PsGHDSEtLA+CWW25h0aJFLdr/7rvveP/99wHw9fUlMjKS4uLiNvuzbt06fvnLXwKQnp7O0KFDOXjwIAAXXHABkZGRAIwZM4aMjAwGDx7s0mchCP0Z018eG9E9ecYLStRzCzHvpdBErxXz3sRisbT6PjRU/ZUMw2DOnDksXry4yXHbt29vca4naK8YRmBgoOO1r68vVqvV49cXhL5IYal6jolQxZb9fKG2DmrrDAID3P8/zbXbX4kx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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "train.plot(label=\"train\")\n", "val.plot(label=\"val\")\n", "pred_val.plot(label=\"prediction\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## New Data: Hourly Nuclear Energy Generation" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ts_3 = EnergyDataset().load()\n", "ts_3 = fill_missing_values(ts_3, \"auto\")\n", "ts_3 = ts_3[\"generation nuclear\"]\n", "train, val = ts_3.split_after(pd.Timestamp(\"2017-07-01\"))\n", "train.plot(label=\"train\")\n", "val.plot(label=\"val\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instead of simply looking at the performance of the FFT model, we can also look at how a bunch of other forecasting models performs on this new data set in terms of MAE. Surprisingly, on this dataset, the FFT model outperforms all of the others (at least with their default parameters). Granted, this dataset was specifically chosen because of its highly seasonal nature. However, this shows us that there are use cases for FFT. Furthermore, the FFT model has a much shorter running time than the other models!" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prophet MAE: 653.8682864837639\n", "Exponential smoothing MAE: 1667.805755244887\n", "Theta(2) MAE: 944.0038491197353\n", "FFT(nr_freqs_to_keep=10, trend=None) MAE: 643.337489093281\n" ] } ], "source": [ "models = [ExponentialSmoothing(), Theta(), FFT()]\n", "\n", "for model in models:\n", " model.fit(train)\n", " pred_val = model.predict(len(val))\n", " print(str(model) + \" MAE: \" + str(mae(pred_val, val)))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.16" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }