{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Time Series Chains\n", "\n", "## Analyzing Web Query Data with Anchored Time Series Chains (ATSC)\n", "\n", "This example is adapted from the [Web Query Volume case study](http://www.www2015.it/documents/proceedings/proceedings/p721.pdf) and utilizes the main takeways from the [Matrix Profile VII](https://www.cs.ucr.edu/~eamonn/chains_ICDM.pdf) research paper." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting Started\n", "\n", "Let's import the packages that we'll need to load, analyze, and plot the data." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import stumpy\n", "from scipy.io import loadmat\n", "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Rectangle, FancyArrowPatch\n", "import urllib\n", "import ssl\n", "import io\n", "import itertools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What are Time Series Chains?\n", "\n", "Time series chains may be informally considered motifs that evolve or drift in some direction over time. The figure below illustrates the difference\n", "between [time series motifs](Tutorial_1.ipynb) (left) and time series chains (right)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def change_plot_size(width, height, plt):\n", " fig_size = plt.rcParams[\"figure.figsize\"]\n", " fig_size[0] = width\n", " fig_size[1] = height\n", " plt.rcParams[\"figure.figsize\"] = fig_size\n", "\n", "change_plot_size(20, 6, plt)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.random.rand(20)\n", "y = np.random.rand(20)\n", "n = 10\n", "motifs_x = 0.5 * np.ones(n) + np.random.uniform(-0.05, 0.05, n)\n", "motifs_y = 0.5 * np.ones(n) + np.random.uniform(-0.05, 0.05, n)\n", "sin_x = np.linspace(0, np.pi/2, n+1)\n", "sin_y = np.sin(sin_x)/4\n", "chains_x = 0.5 * np.ones(n+1) + 0.02 * np.arange(n+1)\n", "chains_y = 0.5 * np.ones(n+1) + sin_y\n", "fig, axes = plt.subplots(nrows=1, ncols=2)\n", "axes[0].scatter(x, y, color='lightgrey')\n", "axes[0].scatter(motifs_x, motifs_y, color='red')\n", "axes[1].scatter(x, y, color='lightgrey')\n", "axes[1].scatter(chains_x[0], chains_y[0], edgecolor='red', color='white')\n", "axes[1].scatter(chains_x[1:n], chains_y[1:n], color='red')\n", "axes[1].scatter(chains_x[n], chains_y[n], edgecolor='red', color='white', marker='*', s=200)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Above, we are visualizing time series subsequences as points in high-dimensional space. Shown on the left is a time series motif and it can be thought of as a collection of points that approximate a platonic ideal. In contrast, depicted on the right is a time series chain and it may be thought of as an evolving trail of points in the space. Here, the open red circle represents the first link in the chain, the anchor. Both motifs and chains have the property that each subsequence is relatively close to its nearest neighbor. However, the motif set (left) also has a relatively small diameter. In contrast, the set of points in a chain (right) has a diameter that is much larger than the mean of each member’s distance to its nearest neighbor and, moreover, the chain has the important property of directionality. For example, in the case of a motif, if an additional member was added to the motif set, its location will also be somewhere near the platonic ideal, but independent of the previous subsequences. In contrast, in the case of a chain, the location of the next member of the chain would be somewhere after the last red circle, possibly where the open red star is located." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A Simplified Example\n", "\n", "Adapted from the [Matrix Profile VII](https://www.cs.ucr.edu/~eamonn/chains_ICDM.pdf) paper, consider the following time series:\n", "\n", "47, 32, 1, 22, 2, 58, 3, 36, 4, -5, 5, 40\n", "\n", "Assume that the subsequence length is 1, and the distance between two subsequences is simply the absolute difference\n", "between them (to be clear, we are making these simple and pathological assumptions here just for the purposes of\n", "elucidation; we are actually targeting much longer subsequence lengths and using z-normalized Euclidean distance in our\n", "applications). To capture the directionality of a time series chain, we need to store the left and right nearest neighbor information into the left (IL) and right (IR) matrix profile indices:\n", "\n", "| Index | Value | Left Index (IL) | Right Index (IR) |\n", "|-------|-------|-----------------|------------------|\n", "| 1 | 47 | - | 12 |\n", "| 2 | 32 | 1 | 8 |\n", "| 3 | 1 | 2 | 5 |\n", "| 4 | 22 | 2 | 8 |\n", "| 5 | 2 | 3 | 7 |\n", "| 6 | 58 | 1 | 12 |\n", "| 7 | 3 | 5 | 9 |\n", "| 8 | 36 | 2 | 12 |\n", "| 9 | 4 | 7 | 11 |\n", "| 10 | -5 | 3 | 11 |\n", "| 11 | 5 | 9 | 12 |\n", "| 12 | 40 | 8 | - |\n", "\n", "In this vertical/transposed representation, the `index` column shows the location of every subsequence in the time series, the `value` column contains the original numbers from our time series above, the `IL` column shows the left matrix profile indices, and `IR` is the right matrix profile indices. For example, `IR[2] = 8` means the right nearest neighbor of `index = 2` (which has `value = 32`) is at `index = 8` (which has `value = 36`). Similarly, `IL[3] = 2` means that the left nearest neighbor of `index = 3` (with `value = 1`) is at `index = 2` (which has `value = 32`). To better visualize the left/right matrix profile index, we use arrows to link every subsequence in the time series with its left and right nearest neighbors:" ] }, { "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": [ "nearest_neighbors = np.array([[1, 47, np.nan, 12],\n", " [2, 32, 1, 8],\n", " [3, 1, 2, 5],\n", " [4, 22, 2, 8],\n", " [5, 2, 3, 7],\n", " [6, 58, 1, 12],\n", " [7, 3, 5, 9],\n", " [8, 36, 2, 12],\n", " [9, 4, 7, 11],\n", " [10, -5, 3, 11],\n", " [11, 5, 9, 12],\n", " [12, 40, 8, np.nan]])\n", "\n", "colors = [['C1', 'C1'],\n", " ['C2', 'C5'],\n", " ['C3', 'C5'],\n", " ['C4', 'C4'],\n", " ['C3', 'C2'],\n", " ['C5', 'C3'],\n", " ['C3', 'C2'],\n", " ['C2', 'C1'],\n", " ['C3', 'C2'],\n", " ['C6', 'C1'],\n", " ['C6', 'C2'],\n", " ['C1', 'C1']]\n", "\n", "style=\"Simple, tail_width=0.5, head_width=6, head_length=8\"\n", "kw = dict(arrowstyle=style, connectionstyle=\"arc3, rad=-.5\",)\n", "\n", "xs = np.arange(nearest_neighbors.shape[0]) + 1\n", "ys = np.zeros(nearest_neighbors.shape[0])\n", "plt.plot(xs, ys, \"-o\", markerfacecolor=\"None\", markeredgecolor=\"None\", linestyle=\"None\")\n", "\n", "x0, x1, y0, y1 = plt.axis()\n", "plot_margin = 5.0\n", "plt.axis((x0 - plot_margin,\n", " x1 + plot_margin,\n", " y0 - plot_margin,\n", " y1 + plot_margin))\n", "plt.axis('off')\n", "\n", "for x, y, nearest_neighbor, color in zip(xs, ys, nearest_neighbors, colors):\n", " plt.text(x, y, str(int(nearest_neighbor[1])), color=\"black\", fontsize=20)\n", " \n", " # Plot right matrix profile indices\n", " if not np.isnan(nearest_neighbor[3]):\n", " arrow = FancyArrowPatch((x, 0.5), (nearest_neighbor[3], 0.5), color=color[0], **kw)\n", " plt.gca().add_patch(arrow)\n", " \n", " # Plot left matrix profile indices\n", " if not np.isnan(nearest_neighbor[2]):\n", " arrow = FancyArrowPatch((x, 0.0), (nearest_neighbor[2], 0.0), color=color[1], **kw)\n", " plt.gca().add_patch(arrow)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An arrow pointing from a number to its right nearest neighbor (arrows shown above the time series) can be referred to as forward arrow and an arrow pointing from a number to its left nearest neighbor (arrows shown below the time series) can be referred to as a backward arrow. According to the formal definition of a time series chain (see [Matrix Profile VII](https://www.cs.ucr.edu/~eamonn/chains_ICDM.pdf) for a thorough definition and discussion), every pair of consecutive subsequences in a chain must be connected by both a forward arrow and a backward arrow. A keen eye will spot the fact that the longest chain in our simplified example is:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAFUCAYAAAB8/9p8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3dd3gsV2E+4O+4Ypoh9BYbCKAFNgkJNfRi00wxJTSD6IFAqE5IIHRMIJRQA+QXggWGYNM7CQaD7SS00NZmRTcd04IppiQwvz/OCO2VdWXpXkl7JL3v8+yjq9miM/o0V5pvZ86UrusCAAAAwPTtM+0BAAAAAFApagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqx37QHAAB7Yjwz2C/JJZMcnORC/ceDk1wwya+T/Li/nTXx8VuD+fFvpjLgHWA8M9g/ySWyax4rZfKjJN+WycZZZSYLechkE8gEgHNTuq6b9hgAYLfGM4OS5JAkwyS/n+SOSa65ly97SpJ3JjktyWcG8+Nv7OXr7SgyaU+fyaFJrp71y+Tk1ExOT/Lpwfz4m3v5ejvKBmXyoSTvyuJ2IhOAbUhRA0BzxjOD8yW5WZL7JrnTMg/5cZI3Jvlk6rvNZy257ZPFd6gXbr+T5E/61ztgmdecS/K6JCcP5se/WL+12R7GM4PzZzGTI5d5yFlJ3pT1zeTYJP8amSxrIpP7pZYAS51bJvtm1zwWMrl+asYyWaOJTO6f5A7LPGStmRycxe1kd5m8KjWTU2QCsD0oagBownhmcLEkRyV5YpILT9z1rSTPSd2xOX0wP/7+On29iye5WpJrJ3lCkgss+ZpPS/L6wfz4rPX4eltR/z26V5InpZ6mseCbqZl8Kslpg/nxD9bx610tyXVSMzn/xN0yyS6ZPDl1J37BN5I8N4vbyUZk8rdJzjdx9zezmMmP1+PrbUX99+io1O1kszK5eur/XUsz+UaSp2eHZwKw1SlqAJia/tSAm6Tu9P/xxF2vTfKa1Hftf75JY9nd0QnvSy2PPjqYH2/7X5oyaU+fyU1TM/mjibuO628f2qwjKcYzgwv0Y1l6xMi/p2bysR2SyT5ZzOQaE3cdl8XtZDMzWTiK5/YTd+2oTAC2E0UNAJtuPDO4aJIHJXnmxOI3JHnGYH78memMalG/Y3ztJM9IcouJux6ZZG47HtGxm0xOSM1kNJ1RLeozuU5qJjefuGu7Z/LgJMdMLD4+yTENZXLd1PHddOKuR6Rmsu2O6OiP/HtQ2s/kmamF64JtmwnAdqSoAWDTjGcGF0ndgXjwxOL7JzlhMD/+2XRGtbLxzODgJPdJ8qKJxcckedZgfvzT6Yxq/fSZ/F3qzueC+6VmcvZ0RrWy8czgQknune2dybOSPHBi8VbI5D5JXjix+BlJnr1NMrloaiYP6Bd1Wfy/aytl8vQkf78dMgHYzhQ1AGy4vux4UpLH9Is+nuSBg/nxp6c3qrWZOKLj9alXPErqaQXPb3VHbSV9Jk9O8uh+0ceSPEgm09PvWD8pi5l8JMmDWzjKbLUmjug4Psnl+sWPT/LCLZzJU1KP3EqSDyf5sy2ayQlJLtsvfnySF2zWaYwArI2iBoAN088x8lepO89JMp/kbltpJ2c545nB9ZK8LcnF+kVHJ3nJYH78y+mNanX6TB6XOglpkoxTM5n6aRt7o8/kHUku0i96bJKXbtFMTk9y98H8+LTpjWrv9Zm8M/WqRUnN5CWD+fGvpjeq1ekz+ZvUQiPZPpn8SWomCxO2PyZ1O2k+E4CdRFEDwIYYzwxun1pmJPVKJEcO5scfn+KQ1t14ZnDjJO/K4lVXbjyYH588xSGtaDwzuEOSt/affj3JnbZpJu9Oct5+0Y0G8+NTpjikFY1nBndM8pb+06+lZvLfUxzSuhvPDG6SmslB/aLWMzkyyZv7T7dzJu9Jcp5+0Q0H8+NTpzciACYpagBYV+OZwWVSdwCG/aKmy4u91Z9WcJvUd6mTeqWVewzmxz+c3qh21Wfyb6mXWU5kMnV9Jv+e5Kr9oqbLi73VZ3Lb1KOekvrzeM/GMrls6rgWMtnW5UWfyRFJ3t4vek+So1rKBGCnUtQAsC7GM4N9U68s8vx+0bOSPHmnHFI/nhmcL3XSzoXJRu+b5NXTvCzuMpk8M8lTd1gmL06diDdJZpO8poFMHpnkef2iY1Iz+d9pjWkz9Zm8JHX7SNrJ5FFJntsvekaSp+3gTO6d5LUu6Q0wPYoaAPbaeGYwk+S0JPsm+V6S6w/mx1+Y7qimYzwz+IMkn0iyT5LvJrnmYH789SmMY5BklJrJd1Mz+eJmj6MFfSafTFKSnJnkWlPM5LTUn40zUzP50maPowXjmcEfpmaSJN9JzeQbUxjHVVMzKUm+nXoUjUzq9+La08gEgPqHAgDssfHM4H6pE9Lum3rkwiV2akmTJP1Vkw5IvXLPxZN8bTwzuN1mjqHP5LNZzOSSO7WkSX6byf6pE6deItPJ5P6pmeyTehTJpXZqIZAkg/nxp5LslzrB8CWTfH08Mzhis77+eGZQxjODB6ROElxSM7mMTLJf6uTol0rN5LbTHRXAzuSIGgD2SH9VlDcmuWWSs5NcxbuvuxrPDK6U5PP9p69Ncv+NPO2oz+RNSQ5P8rMkMzLZ1XhmcOUkn+s/PS7JAzYhkzcnOSzJT1Mz+eZGfb2taEkmr0nywE3M5CdJBjLZ1XhmcJXUq/QlyVzqZeJ3xCmTAC1wRA0AazaeGfx+6g7OLVN3di+sEDin/siig1ILrXsl+eV4ZnDFjfhaE5kcnuTVSX5HJuc0mB9/PjWTNyU5KjWTK2zE1+pPufpJaiEwl5qJQmCJiUzenDo/ymZlcmySi8jknAbz48+lZvLW1KONfj6eGVx+uqMC2DkcUQPAqvVXCfmzJC/rF91zMD/+1ykOacsYzwzulFoOJMndB/Pj49fpdUuShyT5x37RPQbz49evx2tvd+OZwZ1TS7RkYzNZt9fe7pZk8qeD+fEb1ul1S5KHJnlpv0gmqzSeGdw1yQn9p3cdzI/fuNLjAdh7ihoAVmU8M9gv9UiNeyTpklx9MD/+7HRHtbWMZwaHJvlC6jwQ/5S649ilFl8HDebHs2t8vf1STxW5e5LfpGYyXs8xb3d9Jl9Mnc/n5UkelprJy5McMJgf32/3z1729fZPPcrsTyOTPdIfufGF1ExeluThqZm8Isn+e5nJr1MzmV/5WUzqM/lS6nw+L029mlyX+v/YPoP58QNWeDoAa6SoAeBcjWcGF0zyqSSXT3JSkjsM5sc/me6otqbxzOCA1FM8bps6B8Trkvx16g7QdQbz49EqX+eCST6d5NAk709yx8H8+KcbMebtrs/kLUlukzox9vFJ/io1k2sP5senrfJ1Dk7N5JAkJyY5UiZ7ps/krUlunToJ8xtTJ7ktqVeIOn2Vr3Nw6tXPLheZ7JU+k7ennvJ6euoRgguZXFNxD7B+zFEDwIrGM4PfTXJWaknzl0lurqTZc/2EnLdL8rgkM0meluS8SQ5M8oLVvMZEJoemZnKYnc8912dyRGphNkjylKw9k0OS/Ci1pHlsksNlsuf6TG6bmslVkzwpa8/k0NRMLpd6xS+Z7IU+k1sneXySq2UPMgFgdRxRA8BujWcGf5zk4/2n1x/Mj/9zmuPZTvrv7cmpOzoLzk5yy8H8+NQVnnfNJB/rP5XJOlohk8NW+j6PZwbXSvLR/tM/GcyP/2vjRrmz9D/vH8o5M7nFSt/n8czg2kk+0n96vcH8+MMbN8qdpf95/2DOmcnNfZ8B1ocjagBY1nhmcIcsljRXUQisn/HM4BKpp2Gcd8ld580K70yPZwZ3zGJJc2WZrJ/xzOCS2bNMjsxiSXNlJc362YtM7pTFkuZKyoP1M54ZXCrJ+7LGTABYG0UNAOcwnhk8KHV+iCS5bH/5XNbPAalzofwyyS+W3DcznhncZOkTxjODB6fOo5Ikl+kv/c36WSmTq45nBjde+oTxzOAhqfMNJTLZCAekzk+zXCZXG88Mbrj0CeOZwUOzeHW1Sw/mx1/c2CHuOCttJ1cfzwxusPlDAth+nPoEwC7GM4PHJXlWkv9J8nuD+fEPpzykbWs8M7hMknunXv3pIqnvSpckHx/Mj6818bi/TvJ3SX6Ymsn/TGG4O0KfyX1SM/mdLGbyscH8+NoTj/ubJM9M8oPUTH40heHuCEsyuXCS86Vm8pHB/Pi6E4/72yRPT/L91CNpZLJBxjODy2YxkwtlMZMPD+bH15vm2AC2A0UNAL81nhk8NXWCyM8nucZgfnz2lIe0I4xnBiXJ9VMnGD489V3rmwzmxx8azwyeluSJqVeI+mOZbI4+kxukZnJYaiY3HsyPTx7PDJ6R5AmpR3tcczA//vn0Rrpz7CaTGw7mx6eOZwbHpE5ye3rqVaFksgn6TG6YxUz2T3KDwfz4P6Y6MIAtbr9pDwCApvw8yTuS3HkwP/7faQ9mpxjMj7skpyY5tT964CETd8tkCvpMTklyyjKZnJ3kbUnuMpgf/980xrcTLZPJQ1OP4khqJm9NcleZbJ4+k5OTnLxMJgDsIUfUAAAAADTCZMIAAAAAjVDUAAAAADRCUQM0p5Ry71JK198euOS+D07ct7vbK6c49meXUt5fSvl6KeXnpZQfllI+WUp5cinlIksee6VSyuNKKR/oH/+rUsqZpZS3lVJuOq116Md2l1LKi0spp5RSftx/X4+b5pjWqpRykVLKA0spbymlfLHP46xSyqmllAeUUvZZ8viW81jTurSslHLGCtvud5Z5/IGllIeVUj5aSvl+KeWnpZRxKeVFpZRDprEOE2Nb9fbeuj1Zl1LN9v8v/7B/3ldKKSeUUq682euwnJV+n2xVpZRjz+V34My0xzhprdv8VrKan69SyhH9NnJW///XR0ops5s9VmBrMUcN0JRSyuWSjJLsm+T8SR7Udd0/T9x/3ySH7ubpf5F6Od27dl33xo0d6fJKKb9K8onUq8F8N/WSpddNcs0k30py3a7rvt4/9vVJ7tY/9tTUSy9fJcntU9f/kV3XvWiz16Ef26eS/EGSnyb5RpKZJK/tuu6oaYxnT5RSHpLkZUm+neSkJF9Lcokkd0pycJI3pf6sdP3jW85jTevSslLKGamX833BMnf/tOu65048dr8kH0y9ItZ8khOT/DLJtZLcKMlZSf6k67rPbuyol7eW7b11a12XUsp5krwhyRFJPpeazU+SXDr1KkCP6LrunZu5Dkud2++TraqUcmyS2SQvTLLcJchf0nXd9zd1UCtYyza/lazm56uU8vAkL07ygyTHJ/lVkrskuWyS53Vdd/SmDhrYOrquc3Nzc2vilnqliBOTfCnJc5J0SR64yudepX/8d5LsP8V1OM9ulh/Tj+8fJ5bdN8k1lnnsjVP/mPtlkktNaT1umuRKfSY36cd+3LR/Rta4DjdLcrsk+yxZfsnUoqNLcuctksea1qXlW5IzkpyxysfetV+3E5dZ96f29/3LFNdl1dt767e1rkuSl/bLn7k0m/7+qf0/3H/9Pf590votybH9+hw67bGscryr3ua3ym01P1+pbyr9IrWkOXRi+YWTfLF/zvWmvS5ubm5t3rbModLAjvCI1B3S+yX52Rqf++D+46u6rpvaJYy7rvvFbu46of94pYnHHtt13SeXeY0PpR5FcECSP1nvMa5G13UndV33ha7rmj9CY3e6rvtA13Xv6LruN0uWfyfJy/tPbzKxvOU81rQu28gV+o/vWrruqZfHTpKLbeJ4drGW7b11a1mXUsoVUy9X/rEkT1gmm0zz/+He3vw+gXOzmp+v+yc5MPUIpzMWFnZd9z+pBWdStyOAc9hv2gMASJJSyiDJs5K8sOu6k0spN1vDcw9Icp/Ud6f+3wYNcW/drv/4mVU+fmEn5/82YCys/fvbch4tj213DiylHJXkd1N3cj6T5OSu63695HGn9x9vXUp54ZJC4Ij+44kbO9Q9stbtvWXLrcs9Uuc5nEtywVLK7ZJcLvXIgQ90XffFzR3irvbm98kWc+tSygWT/Dr1CI0PdF334ymPaXdWu803bw0/XwvL37vMfe9Z8hiAXShqgKnr56F4TeopHI/fg5e4c5KLJnlf13VfXs+x7alSytGp56wfnDrHww1S/zB91iqee0iSmyc5O8nJGzjMHan/ebtP/+lyf0AvfXyzeax1XRpyydRtftJXSin3649gWvCuJG9OnYtnVEo5MfU0tD9O3aZenOQlmzDeFe3N9t6aVa7LtfqPB6ee+jE52XBXSnlZ6hw1m74Tvg6/T7aSf1zy+U9KKX/Tdd1LpzKala12m2/aGn++rtJ//PzSO7qu+3Yp5WdJLltKOW/XdWev70iBrU5RA7TgSUmukeQGXdf9fA+ev3Da0z+t35D22tGpk70ueG+S+3Zd972VnlRKOTDJa1MPl/6r/hBp1tezklw9ybu7rvu3lR64BfJY9bo05FVJTkk9WuYnqac3PTx1O35PKeV6Xdd9Okm6rutKKXdJ/T/iiUmuOvE670/yukbekd+j7b1Rq1mXi/cfn5Z6RNPRqfOQXDvJK5L8eZLvJXnKBo91OXv7+2QrODnJu5N8OHXi50snOTLJk5O8pJTyv13XtfT7cNXb/Bawlp+vg/uPZ+3m/rNSJ+0+OPWNAIDfMkcNMFWllGunviv1vK7r/msPnn+l1Mlez8zinBVT13XdJbuuK6nvIt4p9Q/TT5ZS/mh3zyml7Jv6Tt31U68OsSWvhNGyUsojkjw29QpC9z6Xxzadx1rWpSVd1z21n3PnzK7rzu667rSu6x6S5PlJDsrEzn1/ZaHjU4uAhyW5VOpOzW2SHJLk5FLKHTZ7HZbak+29Vatcl337j99OcmSf4U+7rvtA6hVtfpPkMf1pqZtmb3+ftKKU8pRlbocu3N913b90XXdC13Vf67ruF13XfbnruucluWf/kGP6/7+asJZtvmUb8PNV+o9bdi44YOMoaoCpmTiE+POp75bviQen/rEz1UmEd6f/w/QtSQ5PPT3g1cs9rv+j+rjUq9yckOSorTyRb4tKKQ9LvZztZ5PctOu6H67w2KbzWMu6bCELkyLfaGLZX6dm8ISu617Rdd13uq77cdd170ktBPZP/T40YbXb+1ZwLuuycGTZe5ceVdAfGfGVJBdIMtiMsSbr9vukFU9e5nbouT2pq5dD/2bqqcBXPZeHt2C5bb5Je/jztXAkzcG7uf+C/cdW5xUCpkhRA0zT+ZNcOfWP+V+UUrqFW+ofpkny//plL1j65P7d2tm0PYlwkqTruq+m7lRfrZRy0cn7+j8A/zXJ3ZO8Lsk9u67bShPDNq+U8qjUuUxOSy02vrPCY5vOYy3rssV8t/94vollCxMGn7T0wX0h8MMkh5RSLrL0/mlaaXvfanazLp/rP/5oN09bKHIO2sixLbFXv09a0nVdWeb2wVU+feEUtfOt+Kg2LLfNt2pPfr4WtpMrL32xUsqlUtf7G+anAZZjjhpgmn6Z5JW7ue+PUs8DPzX1j53lDjM+MvXSvM1MInwuLt1//O2cGn3ZdEKSO6S+Y32/5S51y54rpTwudS6XTyU5rOu676/w2KbzWMu6bEHX6z9ObssH9h/PcQnufv6ghXekf7WB49pT59jet7Cl6/L+JH+ROj/SLvpcFi7lfcaGj2zR3v4+2fJKKQcnmUl98+KM6Y5mVZbb5lu1Jz9fH0g9dfZWOefP3K0nHgNwDooaYGr6Q+YfuNx9pZSnpP7hM9d13T/v5iUWJhF+xfqPbu1KKTNJfrT0CIdSyj5Jnp46Aed/LkxI2+/QvDl1vo1XJnlwS6XAdlBKeWLqhKf/neTwczndqek81rIurSqlXC3Jt5eOvb+y1sLVm46buOuU1DLg8aWU/+i67pcT9z0l9e+Yj3Vd95ONG/Xy1rq9t2wP1uU9qTvXtyylHNZ13fsmnvbE1FM9PrSZR3utw++TLaGUcskk5196CfRSyvmTHJvkPKlvXjRxpN0ebPNN2sOfr1cl+askDy+lvKrrujP6x184i1eMenkAlqGoAbakUsrvJblp6iTCb5/ycBbcKslzSiknp16y9gepV0+5ceqEnN9J8qCJx788tRT4fuq8Ak8qpWSJD67hkPd1U0q5Y5I79p9esv94vVLKsf2/v9913dGbPa61KKXMphYbv07d4X/EMt/fM7quO7b/d8t5rHVdWnXXJH9dSjkpdR6TnyS5YpLbpu5gvju7Ttp8TJLbpV4efb6U8t4kP099l/ra/b8fuWmj39Vat/eWrWlduq77Vf8z+e+pV+15S5Kvpl62+0app988OGyEmSQnlVL+K8k49fShyyQ5LPX/6i9nN4XClKx1m982uq77SinlL5O8KMnHSynHpx79d5ckl80Wn/Qa2FiKGmCrelDam0T4xNRLhF8/yR8kuVCSn6VOPviaJC9a8q7i5fuPF0295OfufHDdR3ru/jB1/p9JV+hvSd0pa7qoyeL3d98kj9rNYz6U+i705ONbzGOt69Kqk5JcJfXd5+ulztHwo9RTBl6T5DWTkzZ3XffN/mpDj0vdsbtf6vx6305d12d3XTe/mSswYa3be8vWvC5d151aSrlm6vwcN+2fc2b/Ok/vuu4bmzf8HeVLqd/jayW5fer3/ezUU25ekprVph9htoI1bfPbTdd1Ly6lnJH6+/I+qf9/fTbJ33ZdNzfNsQFtK9v4/0YA1mg4N7xikgNGs6PxtMeykw3nhndPcvpodjSSSRv6TE4bzY5OG84Nfy/J/jKZruHc8B5JRhOZ7DeaHU2ruCO/zeQzo9nR6dMeC8BW5ogaACYdmeQ5w7nhR5P8XZJ3jmZHzVzxaLsbzg1L6mkAj0l9d/wvktw5ybMnMnnHaHa0HSao3RL6TJ6X5NFJXpzkEamnLvxdn8kzU7cTmWySPpN/SD3t7UX9x7smeeZwbvjh1Am3ZbKJ+kxekLp9vDC7P/IPgFVwRA0AvzWcGx6c5FtJzps6l8AvU+du+ZfR7Ogr0xzbdjecG+6b5LVJ7pY6D83NR7Oj/x3ODS+UmslBWczkZamZnDGl4e4ISzI5OcktVsjkH5O8SiYbq8/k+NQC84NJDhvNjv5vODe8cGom58liJi9NcqxMNlafyQlJ7pR6qtPhCn6AvaOoAWAXw7nh01LPpz+oX/TL1Mu9jlOPKJgbzY6auRrSdjCcGx6YOk/IDVKvPHXXye/xcG749CSPjUw2TZ/J+1PnbXlTkj9dkskxqUfZLJfJi5K8Wibrq8/kpNS5Tt6Q5O5LMnlmaibn6RctZPLZ1O1EJuusz+SDSa6bWqDd0/cYYO/tM+0BANCc5yeZ/EP7wNQdn2ukXgr90tMY1HY1nBteIPVKLTdIPd3pLsvs6DwvK2dyqU0Y6o7RZ/KV1JLmRVlSnPWem91n8k9ZvFoa66DP5IzUkuaFSe62hkz+KDWTS2z8SHeOPpOvppY0L0hyDyUNwPpwRA0A5zCcGz4lyV+mngK14OdJZkezozdMZVDb0HBueLHUy+smyUNGs6NXrPDYp6ZmctDEYpmss+Hc8OKpVy9Kzj2TpUc6JTWTe49mR2/auFHuLEsy+bPR7OifVnjs0iOdkprJUaPZ0Zs3bpQ7y5JMHjSaHf3zNMcDsN04ogaA5Tw3ydLLnh+U5GNTGMu2NJwbXjeLJc1hKxUCveck+dWSZTJZR30mCzuft1hFJn+f5beTj6/32Haq4dzwelnM5OYrlTS9ZydZOj/KQUn+e73HtlMtyeRmShqA9aeoAeAcRrOjnyZ5YpKfJTk7da6OJPnKcG54o6kNbBsYzg3LcG74iCT/1S+62mh2dOK5Pa/P5ElZzGThOV8Zzg1vuCGD3SH6TB6dXTN5/0rPSZLR7OgnSZ6cc2ZyxnBueIMNGewO0WfymCT/2S+66mh29IFze95odvTj1EzOzjkzuf6GDHaH6DN5bLmOMjMAAAyMSURBVBYzGYxmRydNc0wA25VTnwBY1nBueEDq/ANnJLlxkkOTfK6/++gkzx/NjvwSWYPh3PD8qZOg3irJj5LMjGZHZ678rF2ef0CSr6XOn3KjJFdIMt/f/dgk/yCTtekzeVOSw5P8T2om3135Wbs8/8DU7eTLqdvJZCaPSfICmaxNn8mbkxyW5IephcBaM/l6ki8kuUmSK6ZO8pzU06JeKJO16eejeXOSWyT5fmpx9r3pjgpg+1LUALBbw7nhIUl+0B/Nkf6yxB9P3fE5LcmNRrOj/5niELeM4dxwJos7i+9KnaD253vwOocm+f5EJhdOPa3j8klGqZn8aF0Gvc0N54aD1CsCJck7U6/stF6ZfCK13PxMkhvLZHWWZPL21Cs77Wkm3xvNjn7Wf37hJJ9MckiSTye5iUxWZzg3vGqS0/tP35aayS+mOCSAbU9RA8CaDOeG+yR5QpKn9YuuN5odfXiKQ2recG54tySv7z99QJJXrec7+jJZu+Hc8O5J/rX/9P6j2dGr1vn190k9ffAp/aLrjmZHH1nPr7HdDOeG90jyuv7T+41mR8eu8+vvk3pa1JP6RdcZzY4+up5fY7tZksl9R7OjuWmOB2CnUNQAsEeGc8PrJFkoA56W5Kkuzbqr4dxw/ySvTHLvftHVRrOjz67wlL39epOZPDXJ02Syq/70sX9Jcq9+0UZnct0szn3z5CTPkMmu+kxeleSe/aKrjmZH4xWesrdfbzKTJyU5Ria76jM5Nsk9+kWD0exofvfPAGA9KWoA2GP9qVAnJfnD1LlTrj+aHX1juqNqw3BueOXUUyzOk3pazd1Gs6OzN+HrXijJh5L8furcKdcfzY6+udFfdysYzg2vkprJgdncTC6cmskwdc6nG8ik6jP5TJIDshenOu3B171wkpOTXD11zqcbjGZH39ror7sV9KdpfibJ/qmnOt1jMzIBYJGiBoC9MpwbliSPSPKCftHRqROo/np6o5qe/p3oZyT5y37RfUazo9ds8hhKkkcleX6/6LGpE6ju1EwOTM3k6H7RvUezo+M2eQxLM3lMkhft8EyOSf3ZTKaXyaOTPK9f9OgkL97hmTwz9WczSY4azY5eO8UhAexYihoA1sVwbnjFJKckuVS/6Bqj2dGnpjikTddfkvmU/tNPJDliNDv69hTHc8Ukpya5ZL9oJ2Zyw9QjJ5I2Mvm91EwukaRLzeTT0xrPNCzJ5L+T3K6BTP4jycWT/CY1k89MazzTMJwb3ij1qK+kThh/+2lmArDTKWoAWDf9O9T3SrJwBMmxSR6+cOWV7ao/jeK4JLfpF91uNDt65xSH9Ft9JkcleXW/6NjszEyOGM2O3jXFIf1Wn8m9kyxMzPqqJH+xQzJ5bZJb94tuO5odvXuKQ/qtZTJ5ZZJH7oBMfid1Uu3D+0XNZAKwkylqAFh3/R//x2Vxh+zPk/zzaHb0v9Mb1fobzg3Pm3qawNP7RccleejCZZpb0mfyuiS37BftlExeneRhDWcyuZP80CSv3KaZHJ06wXXScFk4nBteJHU7WcjkIUn+ZRtmcr7UTJ7SLzo2jWYCsBMpagDYMEtOcUjqpalfPZod/d+UhrQu+rkc/jyL8418L8mtRrOjT0xvVKuzzTN5eJLn9ou+m+TWWySTydNOkuT+SV6zDTI5T5KHZTGTM1Mz+eT0RrU6y2RyvyTHbZNMHp7kOf2i7yS5zVbIBGAnUdQAsKH6Uwpum+QdE4uPSvL6rTZpZ3+57fsneXm/6OzUnZwP7f5Z7dlNJvdKcvwWzeQBSV7WL9rKmRyReuWjBVs5kwcm+cd+0U9TT6k5effPas9uMrlnaiZb6nLeu8nkNqPZ0Sm7fxYA06KoAWBT9Ds9RyZ508TipyZ5+Wh29J3pjGp1hnPDQ1Kv2POoicW3TPK+0exoy/4iHc4N90lyx2zdTB6d5JETiw9PcuI2yOTIJG+cWPzkJK8YzY7OnM6oVmc4Nzw0dRuRSSP6TB6demW+pE5gfXiS92/lTAC2O0UNAJuq3+m5a+qEw/v3i09PnVfkxFbeqR7ODfdLPerkJUku2y/+burRG+/aTjs5w7nhvknukq2TyUuTXKZffGbqkQLbMZOF7WS/fvEo9XLW728skyNSM7l0v/g7qZm8e5tmclySffvFWyWTbyd5ULZZJgDblaIGgKkZzg2vmuRvUk+FWvBPSY5PcupodvSrTR7PeZPcJPXqL3efuOslSZ4/mh19ZTPHMw0NZ3KfJHebuOvFSf5hh2RytdRM7jWx+BWpmfyHTDZfn8njU0+FWtBiJi9KzeSMzRwPAHtHUQPA1PUTXN45dZ6RC0zc9eXUSS//LckZ6/1OcH90z++lXp3qb5JcYuLub6WeLvD27XbFl9XoM7lLaibnn7hrIZP3JvnqBmVypSS3St0RvvjE3d9MPa1mp2ZyUBa3k8lMvpTF7WSjM3lCkotN3P2N1EzesYMzWdhOzjdx12ZlcuvU7UQmANuIogaApgznhgcnuXnqqRO3XuYhb09yYpLTknwhyY+S/Gx3O0L9Ds0FklwotZQZ9q97+DIPf0OSuSQnjWZHZ+/dmmwffSa3SM3kVss85G1J3p89y+RKSa4emazJKjJ5a2omp2f9MzkhNZMPymTRcG54odT/ux6UOofVpC6L28neZHKbJIct8/DjUy9FLxOAbUBRA0Cz+gmIr5a683ObLL/TuDfeklr6vD/J583dcO76TK6e5GZZ/0y61IJBJmswkcnCdrLcjvye6rK4nXwgMlmVDc7kN9l1O/mCTAC2F0UNAFtKvwP0u6kFzhWSXDD19JhDklwudZLZkuTrSb6a5Iwk309yVpKvpB718U07NutnHTIZJfmWTNZPfzTG5VLLgstnbZl8OXU7kck6kgkAq6WoAQAAAGjEPtMeAAAAAACVogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBGKGoAAAAAGqGoAQAAAGiEogYAAACgEYoaAAAAgEYoagAAAAAaoagBAAAAaISiBgAAAKARihoAAACARihqAAAAABqhqAEAAABohKIGAAAAoBGKGgAAAIBG/H8LpYcjGRlgJAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nearest_neighbors = np.array([[1, 47, np.nan, np.nan],\n", " [2, 32, np.nan, np.nan],\n", " [3, 1, np.nan, 5],\n", " [4, 22, np.nan, np.nan],\n", " [5, 2, 3, 7],\n", " [6, 58, np.nan, np.nan],\n", " [7, 3, 5, 9],\n", " [8, 36, np.nan, np.nan],\n", " [9, 4, 7, 11],\n", " [10, -5, np.nan, np.nan],\n", " [11, 5, 9, np.nan],\n", " [12, 40, np.nan, np.nan]])\n", "\n", "colors = [['C1', 'C1'],\n", " ['C2', 'C5'],\n", " ['C3', 'C5'],\n", " ['C4', 'C4'],\n", " ['C3', 'C2'],\n", " ['C5', 'C3'],\n", " ['C3', 'C2'],\n", " ['C2', 'C1'],\n", " ['C3', 'C2'],\n", " ['C6', 'C1'],\n", " ['C6', 'C2'],\n", " ['C1', 'C1']]\n", "\n", "style=\"Simple, tail_width=0.5, head_width=6, head_length=8\"\n", "kw = dict(arrowstyle=style, connectionstyle=\"arc3, rad=-.5\",)\n", "\n", "xs = np.arange(nearest_neighbors.shape[0]) + 1\n", "ys = np.zeros(nearest_neighbors.shape[0])\n", "plt.plot(xs, ys, \"-o\", markerfacecolor=\"None\", markeredgecolor=\"None\", linestyle=\"None\")\n", "\n", "x0, x1, y0, y1 = plt.axis()\n", "plot_margin = 5.0\n", "plt.axis((x0 - plot_margin,\n", " x1 + plot_margin,\n", " y0 - plot_margin,\n", " y1 + plot_margin))\n", "plt.axis('off')\n", "\n", "for x, y, nearest_neighbor, color in zip(xs, ys, nearest_neighbors, colors):\n", " plt.text(x, y, str(int(nearest_neighbor[1])), color=\"black\", fontsize=20)\n", " \n", " # Plot right matrix profile indices\n", " if not np.isnan(nearest_neighbor[3]):\n", " arrow = FancyArrowPatch((x, 0.5), (nearest_neighbor[3], 0.5), color=color[0], **kw)\n", " plt.gca().add_patch(arrow)\n", " \n", " # Plot left matrix profile indices\n", " if not np.isnan(nearest_neighbor[2]):\n", " arrow = FancyArrowPatch((x, 0.0), (nearest_neighbor[2], 0.0), color=color[1], **kw)\n", " plt.gca().add_patch(arrow)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The longest extracted chain is therefore 1 ⇌ 2 ⇌ 3 ⇌ 4 ⇌ 5. Note that we see a gradual monotonic increase in the data but, in reality, the increase or decrease in drift can happen in arbitrarily complex ways that can be detected by the time series chains approach. The key component of drifting is that the time series must contain chains with clear directionality.\n", "\n", "STUMPY is capable of computing:\n", "\n", "1. anchored time series chains (ATSC) - grow a chain from a user-specified anchor (i.e., specific subsequence)\n", "2. all-chain set (ALLC) - a set of anchored time series chains (i.e., each chain starts with a particular subsequence) that are not subsumed by another longer chain\n", "3. unanchored time series chain(s) - the unconditionally longest chain within a time series (there could be more than one if there were chains with the same length) \n", "\n", "So, what does this mean in the context of a real time series? Let's take a look at a real example from web query data!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieve the Data\n", "\n", "We will be looking at a noisy dataset that is under-sampled and has a growing trend, which will perfectly illustrate the idea regarding time series chains. The data contains a decade-long GoogleTrend query volume (collected weekly from 2004-2014) for the keyword Kohl’s, an American retail chain. First, we'll download the data, extract it, and insert it into a pandas dataframe." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
volume
00.010417
10.010417
20.010417
30.000000
40.000000
\n", "
" ], "text/plain": [ " volume\n", "0 0.010417\n", "1 0.010417\n", "2 0.010417\n", "3 0.000000\n", "4 0.000000" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "context = ssl.SSLContext() # Ignore SSL certificate verification for simplicity\n", "url = 'https://sites.google.com/site/timeserieschain/home/Kohls_data.mat?attredirects=0&revision=1'\n", "raw_bytes = urllib.request.urlopen(url, context=context).read()\n", "data = io.BytesIO(raw_bytes)\n", "mat = loadmat(data)\n", "mdata = mat['VarName1']\n", "mdtype = mdata.dtype\n", "\n", "df = pd.DataFrame(mdata, dtype=mdtype, columns=['volume'])\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualizing the Data" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABIEAAAFlCAYAAAB82/jyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXhU1f3H8c/NnrBkA4GCChJlcxdFcAGhUkWp6yPuolTRitaqdftZxb0VqygUl1IpCqKIK9YFBNwAFQQBJYJsYixgQgIBQiaTyf39Ee84mcyELDNzTzLv1/P0qZncO3Mml5PMfOZ7vseybVsAAAAAAABo2RLcHgAAAAAAAACijxAIAAAAAAAgDhACAQAAAAAAxAFCIAAAAAAAgDhACAQAAAAAABAHCIEAAAAAAADiQJJbD9yuXTu7a9eubj086uDxeNweAuqQmprq9hAQBnPHXMwbczFvzMbcMRdzx1zMG3Mxb8zG3Imcr776qsi27fahvudaCNS1a1ctXbrUrYdHHdavX+/2EFCH7t27uz0EhMHcMRfzxlzMG7Mxd8zF3DEX88ZczBuzMXcix7KsH8J9j+VgAAAAAAAAcYAQCAAAAAAAIA4QAgEAAAAAAMQBQiAAAAAAAIA4QAgEAAAAAAAQBwiBAAAAAAAA4gAhEAAAAAAAQBwgBAIAAAAAAIgDhEAAAAAAAABxYJ8hkGVZz1uW9bNlWd+E+b5lWdZTlmWtsyxrpWVZR0d+mAAAAAAAAGiK+lQC/UfSaXV8/3RJB//yv2skPd30YQEAAAAAACCS9hkC2bb9iaTiOg45S9ILdrXPJWVZltUpUgMEAAAAAADN1+bNm+XxeNweBhSZnkCdJf0Y8HXBL7fVYlnWNZZlLbUsa2lhYWEEHhoAAAAAAJiqsrJSw4cP1yuvvOL2UKDIhEBWiNvsUAfatv2cbdt9bdvu2759+wg8NAAAAAAAMFVlZaX27NmjHTt2uD0UKDIhUIGk/QO+7iLpfxG4XwAAAAAA0Iz5fD5JUlVVlcsjgRSZEOhtSZf/skvY8ZJ22ra9JQL3CwAAAAAAmjEnBKqsrHR5JJCkpH0dYFnWDEmDJLWzLKtA0r2SkiXJtu1nJL0raZikdZLKJF0ZrcECAAAAAIDmwwmBnP+Hu/YZAtm2fdE+vm9Luj5iIwIAAAAAAC2CswyMEMgMkVgOBgAAAAAAUAuVQGYhBAIAAAAAAFFBTyCzEAIBAAAAAICoYDmYWQiBAAAAAABAVDgVQIRAZiAEAgAAAAAAUUElkFkIgQAAAAAAQFTQE8gshEAAAAAAACAqqAQyCyEQAAAAAACICraINwshEAAAAAAAiApCILMQAgEAAAAAgKigJ5BZCIEAAAAAAEBUUAlklhYdAm3fvl2TJ0/WOeeco7y8PKWnpyszM1Mnnnii/v3vf/sbVAVbtGiRhg0bppycHGVkZOjwww/X+PHj6/xH+84772jQoEHKzMxU69at1a9fP02dOrVe4/R4PDr00ENlWZa6dOnSqOfaHJWUlOiVV17Rddddp8GDB6tPnz468sgjNWLECM2cOTPs9Vm2bJlGjRqlY445RoceeqjOOOMMTZkypc7rM3/+fF188cU68sgjdfjhh+u8887T66+/HvLY1157TXl5eWH/99JLL0Xk+ZvM9Lmze/duPfDAAzriiCPUunVrtWnTRn369NE111wjr9fbpOduOlPnzcCBA+ucN3l5eZo4cWJEfgamMnne/Pzzz7rtttt06KGHqk2bNsrNzdUxxxyjcePGadeuXU1+7s2BqXNHkjZv3qw77rhDJ554onr16qXjjz9eN910k9avX9/k590cxGLu7NixQ+PGjdMll1yi3r17KykpSZZl6cMPP6xzbD6fT+PHj9fhhx+u9PR05eTkaNiwYVq0aFFEnrvpYjFvSktL9a9//Us333yzfve736lHjx7Ky8vTwoULw45r3bp1Gj9+vEaPHq2TTjrJ/3cmnqoMTJw3tm3r/fff1w033KAjjzxS2dnZSktLU48ePXTTTTdp27ZtEf0ZmMzUuTN37lzdeOONGjp0qI4++mj16dNHQ4YM0U033aRVq1ZF7PkHM6kxtIlzJ5SioiJ17NhRlmXpxBNPbPTzDcWybTuid1hfffv2tZcuXRrVx3jmmWd03XXXqVOnTjrllFN0wAEHaNu2bXr99de1c+dOnXfeeXr11VdlWZb/nLfeekvnnXee0tLSNGLECOXk5Gj27Nlas2aNzj//fL366qu1HmfixIm64YYblJubqxEjRiglJUWzZs1SQUGBbrnlFj322GN1jvOWW27Rc889p927d6tz584qKCiI+M+iIWL1ovOll17SPffco/3220/HH3+8OnXqpO3bt+uDDz7Q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OXKkNm3apKefflqPPPKIpk+fru3btzflabUIJsybQEVFRZo/f75atWql4cOHN+CZtDxuzps+ffpIkv773//WuL2qqkrvvfeeEhISNHjw4AY/p5bErblTVFQkqbpUPPjFqCQdcMABtc6JN5GaOw3l8Xi0aNEiZWRk6KSTTqr1/X29xosHkZo3iDy35k1dnMoSEyq13Gbi3Nm4caM2btyo7Oxs7bfffhG/fycECtdvxxRuzx3btjVy5EhlZmbq8ccfb/L9hROXs7CyslIvvPCCpJoXc82aNZKkQw45pNY5SUlJ6tatm7799ltt2LDB3yumrnM6deqkVq1aqaCgQGVlZcrIyPB/74033tDUqVM1efJk/4s8VKusrNQbb7whqeYvwo0bN0qSunXrVuucpKQkdenSRd9//71+/PFH5eXlSfr1E/BQ5+y3337KyMjQ1q1btXfv3lr9MP7zn//U+DoxMVEXXHCB7r777rApekvn9txZsmSJ0tLS9N577+nOO++s8WlCq1at9NRTT9VYThFPTJk3gV599VV5vV6de+65rvVpMoHb8+a2227TO++8o7/+9a9asGCBjj76aFVUVGjOnDnaunWrJk+e7GrPGbe5OXecT8t/+ukn2bZdq5Jx8+bNkmK3fME0kZw7DbVu3Tr5fD4ddNBBId+0Oj1N1q5d26j7b+4iOW8QWW7Om7o4H3qHeiMdT0yZOwsXLtTSpUvl9XpVUFDgDzoefvjhkB9KNJVJlUDhmDB3xo8fr48++khz5sxR27Zto1KVJcVpJdAdd9yhb775RsOGDdPvfvc7/+07d+6UVF1aF4pz+44dOxp8jnOcJG3btk2jR4/W6aefrlGjRjXhmbRM48aN09q1azVo0KAavxydHWzCvZl01uQHNqfdvXt3je+FOydwd5wuXbronnvu0dy5c7Vq1SotWrRITz31lDp37qwZM2bojjvuaMKza97cnDsej0elpaXyer36y1/+oj//+c/64YcftH37dj3//POyLEt/+MMf4vZTWbfnTTDbtjVz5kxJqrFGOh65/Tdnv/320+eff65zzjlH8+fP12OPPaannnpKa9as0QUXXFDvBoUtlZtzp1u3burWrZuKior8LzwdX3/9tebNm1frMeJJJOdOQ8XiMZqzSM4bRJab8yacJUuW6L777lObNm38y2filSlzZ+HChZowYYKeeeYZvfPOO2rVqpUmTZqkU089NSL3H6w5bBHv9txZvXq17rrrLl177bVRf20WdyHQU089pX/84x/q2bOnXnzxxQad6zTRbkjPkVDnXH311fJ6vfrXv/7VoMePB1OnTtW///1vde/efZ+7qgWL1PXp16+fLr/8cnXr1k3p6enab7/9NGzYME2bNk2ZmZmaPXu28vPzGzS2lsDtuRP4x+O8887To48+qgMOOEA5OTm68sor9fDDD8u2bf39739v0NhaAhPmTbCFCxfqxx9/VJ8+fVzdTc9tbs8bqbqZ9Mknn6xVq1bp3Xff1c6dO7VlyxY9/fTTmj59uo499lj/J5DxxoS588ADDyglJUUPPPCArrjiCv3tb3/TTTfdpIsuusj/aW80PpU1XaznTkPF4jFMFet5g/ozcd6sXbtWw4cPl9fr1bRp06LS+Nfj8eixxx6T1+uN+H1Hkklz57bbbtO6deu0cuVKvfXWW+rfv79GjRqlSZMmReT+gznLwEytBHJ77ni9Xl122WXq1KmTHn300UbfT33F1auKf/7zn/rTn/6k3r17a8GCBbUaNYX6BDWQk7wGpoD1Padt27aSqjt9z549W08++aQ6d+7chGfT8rz44ot64IEHlJeXp2nTptVqcuYk4M4nrcFCfQLrpOnhKhacc+qzVOU3v/mNv6fDkiVL9nl8S2LC3MnIyPCvJz/nnHNqHe/c9uWXX9bvSbUQps6bl19+WVJ8VwGZMG+k6h5aq1at0muvvabTTz9dbdu2VceOHTV69Gg99NBD2rZtm+67775GPsvmy5S5c/zxx+v111/X6aefru+++05Tp07VihUrdP311+umm26SJOXm5jbmKTZb0Zg7DRWLx2iOojFvEBkmzJtg33//vU455RQVFxfr5ZdfDrmpRyR8+umn+stf/qLPP/88KvcfCabOnYyMDPXp00ePP/64TjrpJD3xxBNauXJlRB9DMrsnkAlz55FHHtHy5cs1ZcqUmLRQiJsQaPz48RozZowOPfRQLViwQB07dqx1TI8ePSSFXt9dWVmpjRs3KikpSQcddFC9ztmyZYv27NmjLl26+HszLFu2TJJ0xRVXyLKsGv+TqvsCOF/HU4nxlClTdN999+mQQw7R9OnT1b59+1rHOGtkQ31iXVlZqYKCAiUlJWn//ff33+5cq1Dn/PzzzyorK1PHjh3r7GsSyPmlUFZWVq/jWwJT5k7gOaF2QXB6a+zdu7chT69ZM3XebN++XfPmzYvrhtCmzJtdu3bp448/Vk5Ojg4//PBa55xyyimSpK+++qoRz7L5Mm3u9OzZUxMmTNAXX3yh/Px8LViwQGPGjNE333wjSSGvXUsVrbnTUHl5eUpMTNSGDRtCfnL9/fffSwrdI6Klita8QdOZMm8C5efna+DAgSoqKtKrr77q3247GioqKiRVb9ltouYyd04++WTZth2VD1RNrQQyZe4sW7ZMtm1r0KBBNfIB59/FwoULZVlWg3aCq0tchEB///vf9ec//1lHHnmkFixYELbjubM7yvvvv1/re5988onKyso0YMCAGk2B6zrnvffeq3GMJH+pXaj/SdVprPN1vDQffvbZZ/XQQw+pV69emjZtWthPPPv37y9JIbfKXbJkifbu3aujjjqqxs+trnM+/vjjGsfUx4oVKyQpbl68mDR3JGnIkCGS5H9jFMi5LXDb7JbM5Hkza9Yseb1enXnmmXHZENqkeeO8MC4tLfX/dyBna3inyi4emDx3Ank8Hr355ptKSEjQGWecUa9zmrtozp2GSk1N1YABA1RWVqZPP/201vfD/Z1qqaI5b9A0Js0bx6pVqzRo0CAVFxfrtdde01lnndXk+6yLEyyYuOtcc5o727Ztk1Rz17JIca6RST2BTJo7p556ash8YMSIEZKkDh06aNSoUbr88ssb/RiBWnwI9MADD+iOO+7QMccco3nz5qldu3Zhjz3//PPVrl07vfzyy1q6dKn/9vLyct19992SpOuuu67GOVdeeaVSU1M1ceJEbdq0yX97SUmJHn74YUnStdde6799xIgRmjx5csj/SdXVDM7X9a1Oac4mTpyocePG6dBDD9WLL75Yq/wu0Gmnnabs7Gy98847WrVqlf92j8fj30LvkksuqXHOeeedp5SUFE2bNk0FBQX+23fu3Kmnn35aknTRRRfVOCfUUi/btvX0009r+fLlys7ODrl9Y0tj2tyRpNGjRyspKUlPPPFEjetZXl6u//u//5MUH8uPTJw3jsCG0OGOaclMmze5ubnq1auXKisr9cADD9S4r/Lycn+DTidgbelMnDtlZWW1XhR7vV7de++9Kigo0MUXX6wDDzywcU+4GYn23GkM5z7uvvvuGhUGS5Ys0SuvvKL27dtHtbrBFNGeN2g8E+fN119/rVNOOUW7du3SW2+9pTPPPLPJ97kvpoZAps0dj8fjX5USbOXKlXrppZeUkJAQlfc5TiWQKSGQaXPn+uuvD5kP/O1vf5NUXZ06efJkPfXUU016HIflNDKKtb59+9qBP8RomDp1qkaOHKnExETdcMMNIdfpde3aVSNHjvR//eabb+r8889XWlqaLrzwQuXk5Ojtt9/WmjVrdP7552vmzJm1mj5NmDBBN954o3JzczVixAilpKRo1qxZKigo0C233FLvxl+WZalz5841Xji6IVZb0b7++uu67bbblJiYqMsuuyzkGtcuXbrUeIE1d+5cjRkzRqmpqTrjjDOUlZWlefPmacOGDTrttNM0YcKEWtfnhRde0P3336/s7GwNGzZMycnJev/997V161aNGjVKd955Z43j8/Ly1K1bNx122GHq2LGjdu3apa+++kpr165Venq6Jk2apJNOOik6P5R6iEZDvWAmz53HH39ct9xyi3JycnT22WerVatW+uCDD7R27Vr169dPCxYscC1AjcXcMXXeOBYtWqTLL79cffr00VtvvRXZJ98E8TxvPvzwQ51xxhmqqKhQv379NGDAAO3du1fvvfeefvjhB+Xl5enzzz93re9MvP/NmT9/vu666y4NGDBAnTp10u7du/Xxxx+roKBAp5xyiiZOnOhq1URLmju33nqrioqKJEmfffaZ1q9fr6FDh6pTp06SpLPPPltnn322/3jbtnXBBRdo1qxZ6tmzp4YPH67t27frlVdeUXl5eUwqHOrSkv7mPPLIIyopKZEkLV26VJs3b9aJJ57o/2T+1FNPrbFrUXFxsf/NkVT9CX1ZWZnOOecc/32PHj06Jv9+Q4nXeVNSUqK8vDwVFxdryJAhOvHEE0OO/aabborYshZJmjlzpkaMGKHp06fr4osvrvPYlvY3pyFzp7S0VEcffbS6d++uPn36qGPHjtq7d6/Wr1+vxYsXS5Juv/12/eEPf4j4z+PVV1/VnXfeqfbt2/sfK5R4nTvhbNq0Sd26ddMJJ5ygzz77rEHP07Ksr2zb7hvyey05BBo7duw+m10OHDhQH330UY3bFi5cqIceekiLFy9WeXm58vLydNVVV+nGG28MWx43e/ZsPfbYY1q2bJmqqqrUu3dvjRkzRldccUW9xxtvIdCTTz6pCRMm1HnMcccdp5deeqnGbV999ZUmTZqk5cuXy+Px6MADD9T555+vK664Iuz1mTdvniZPnqzVq1erqqpKeXl5uuyyy3TuuefWOvZvf/ubVqxYoR9++EE7duxQQkKCfvOb32jAgAG66qqrdMABBzT+SUdALH45mj53/vvf/+of//iHvvrqK3k8Hh100EG66KKLdOutt7paQReLuWPqvHHceOONevfdd/XAAw8YVQkU7/Nm5cqVGjdunD7++GNt3bpViYmJOuigg3TWWWfptttui+iL8YaK9785Gzdu1GOPPaYVK1Zo+/btSktLU8+ePXX++efrnHPOcX1nsJY0d7p27aoffvgh7GPce++9Gjt2bI3bKisrNWHCBD3//PNat26d0tLS1L9/f919990aMGBAvZ9jNLSkvzkDBw7UTz/9FPYxbrjhBv3pT3/yf11QUKBBgwbVOa5p06bp+OOPr/OYaInXeeO8Yd2XjRs3RnT5/owZM3TxxRfr+eef15VXXlnnsS3tb05D5o7X69Wzzz6rL7/8UuvXr1dJSYksy1KHDh109NFH69JLL9WRRx7ZiGe7by+//LLuvvtuZWdn17nBTrzOnXAIgRAzsfrliMZx61Mt7Btzx1zMG3Mxb8zG3DEXc8dczJvYevHFF3X55ZfrmWee0ejRo+s8lnnjjpdeekn33HOP2rZtG3ZJmsTciaS6QqAW3xMIAAAAANAymdoTCL9yegGZ0hMo3hECAQAAAACaJUIg8xECmYUQCAAAAADQLBECmY8QyCyEQAAAAACAZokQyHzOFvHOtYK7CIEAAAAAAM0SIZD5nAog27b9gRDcQwgEAAAAAGiWCIHMFxj8sCTMfYRAAAAAAIBmyQmBKioqXB4JwgkMfgiB3EcIBAAAAABolqgEMl9g8ENfIPcRAgEAAAAAmiVCIPMFhkD0BHIfIRAAAAAAoFkiBDIflUBmIQQCAAAAADRLTsBACGQuGkObhRAIAAAAAOowa9Ys/f73v3d7GAiBSiDzUQlkFkIgAAAAAKjDunXrtHr1avqZGIgQyHyB84Y55D5CIAAAAACoA0GDudgi3nyB1T9UArmPEAgAAAAA6uC8cS0vL3d5JAhGQGc+egKZhRAIAAAAAOrgvHElBDIPIZD56AlkFkIgAAAAAKgDQYO5uDbmoyeQWQiBAAAAAKAOLAczFyGQ+agEMgshEAAAAADUgeVg5iIEMl9gCERPIPcRAgEAAABAHZygYe/evS6PBMHYHcx8hEBmIQQCAAAAgDpQbWIuro35CIHMQggEAAAAAHWgJ5C5AkMg27ZdHg1CCWwGTU8g9xECAQAAAEAd6AlkLufa2LZNwGAoKoHMQggEAAAAAHWgEshcgcEPS8LMFFgJRAjkvnqFQJZlnWZZ1hrLstZZlnVHiO8fYFnWAsuylluWtdKyrGGRHyoAAAAAxB59Z8xFCGQ+n88ny7L8/w137TMEsiwrUdI/JZ0uqbekiyzL6h102N2SZtq2fZSkCyVNivRAAQAAAMANLAczFyGQ+Xw+n1JTU/3/DXfVpxLoODxB5zoAACAASURBVEnrbNveYNt2haSXJZ0VdIwtqe0v/50p6X+RGyIAAAAAuMfr9Upii3gTBYZAbBNvJp/Pp5SUFEk0hjZBUj2O6Szpx4CvCyT1CzpmrKQ5lmXdIKmVpN9GZHQAAAAA4DKneoFKE/NQCWQ+n8+n5ORkSTX7A8Ed9akEskLcFrz33kWS/mPbdhdJwyS9aFlWrfu2LOsay7KWWpa1tLCwsOGjBQAAAIAYYzmYuQiBzFdVVUUlkEHqEwIVSNo/4Osuqr3ca5SkmZJk2/ZiSWmS2gXfkW3bz9m23de27b7t27dv3IgBAAAAIIac5WCEQOaprKz0BwyEQGYKXA5GTyD31ScEWiLpYMuyulmWlaLqxs9vBx2zWdIQSbIsq5eqQyBKfQAAAAA0eywHM1dlZaVatWolietjKnoCmWWfIZBt25WSxkj6QFK+qncB+9ayrPsty/r9L4fdIulqy7JWSJohaaRt28FLxgAAAACg2XHeuFIJZJ7KykplZGRIIgQyVWAIRE8g99WnMbRs235X0rtBt90T8N+rJZ0Q2aEBAAAAgPucEIjdwcxDJZD5qqqqlJ6eLolKIBPUZzkYAAAAAMQtGkObKzAEYot4M9ETyCyEQAAAAABQB6d6gUoT8/h8PiqBDMfuYGYhBAIAAACAOtATyFwsBzOfz+dTcnKyJHoCmYAQCAAAAADqwHIwcxECmY/dwcxCCAQAAAAAdWA5mLkIgczn8/mUmprq/2+4ixAIAAAAAOrA7mDmYot48wUuB6MSyH2EQAAAAAAQhm3bLAczGCGQ+aqqqpSYmKjExER6AhmAEAgAAAAAwnACoMTERFVUVPAm1jCBIRBbxJvJ5/P5QyAqgdxHCAQAAAAAYThvWuk7Y56qqirZtq2UlBQlJydzbQxVVVWlhIQEJSYm0hPIAIRAAAAAABCGEwK1bt1aEkvCTOJcm6SkJKWmphICGaqyslJJSUmEQIYgBAIAAACAMJw3rU4lECGQOQiBmgenEigpKYkQyACEQAAAAAAQBsvBzEUI1DwE9gQiBHIfIRAAAAAAhBG8HIxt4s0RGAKlpKQQAhkqsCcQjaHdRwgEAAAAAGE4lQv0BDKPc22oBDJbYCUQu+u5jxAIAAAAAMKgMbS5gpeDsUW8eWzbrtETiEog9xECAQAAAEAYwSEQ1SbmoCeQ+QKrtegJZAZCIAAAAAAII7gxNJVA5iAEMp8T+tATyByEQAAAAAAQBlvEm8sJFBITEwmBDOX0AKInkDkIgQAAAAAgDHoCmYtKIPM5IaoTAlEJ5D5CIAAAAAAIg+Vg5mKLePM5lT9OY2h6ArmPEAgAAAAAwmCLeHNRCWS+wEqghIQEKoEMQAgEAAAAAGF4vV5JUkZGhiRCIJOwRbz5AkOgpKQkegIZgBAIAAAAAMJw3sSmpKRQbWIYKoHMR08g8xACAQAAAEAYgW9i09LSqAQyCCGQ+YK3iKcnkPsIgQAAAAAgDGc5WFJSktLS0rR3716XRwQHIZD5greIpxLIfYRAAAAAABCGU7lA0GAero356AlkHkIgAAAAAAjDqVxgOZh5greI9/l8LDcyTOAW8VQCmYEQCAAAAADCCAwa0tPTCYEMErwcTBLVQIYJvEb0BDIDIRAAAAAAhBG85IgQyByhQiC2iTdLcCUQIZD7CIEAAAAAIIzg5WBUmpiDSiDzBfcEIgRyHyEQAAAAAIQRGDSwO5hZAgM6QiAzUQlkHkIgAAAAAAgjOARiOZg5qAQyX2AlEI2hzUAIBAAAAABhsA25uYJ3B5MIgUzjzB+nEogt4t1HCAQAAAAAYbBFvLmoBDJfYIialJREJZABCIEAAAAAIIzAoCEjI0NlZWWybdvlUUGqeW3S09MlSWVlZW4OCUGCK4HoCeQ+QiAAAAAACCOwkiE7O1uVlZXavXu3y6OCVDMEysrKkiTt3LnTzSEhiLP8i55A5iAEAgAAAIAwnDetCQkJys3NlSRt377dzSHhF4EhUHZ2tiSppKTEzSEhSHBjaHoCuY8QCAAAAADCqKysVHJysizLImgwTGCVllMJtGPHDjeHhCDBW8RTCeQ+QiAAAAAACMPn8ykxMVGSlJOTI0kqLi52c0j4RajlYIRAZgmsBEpKSqInkAEIgQAAAAAgDK/X6w+BqAQyS2AIlJycrFatWnFtDBMYAiUkJMjn89FY3WWEQAAAAAAQhs/nU3JysiQqgUzjhECBIR2VQGYJrgSSRF8glxECAQAAAEAYgcvBMjIylJqaSrWJISorK5WYmCjLsiRJWVlZXBvDBG8RL4m+QC4jBAIAAACAMLxer7+CwWkO7VQCeb1etiR3kRMCOagEMk/wFvGS6AvkMkIgAAAAAAjD5/P5QyCpekmYEwJNmDBBQ4YM0c8//+zW8OJaZWVljWtDJZB5greID7wN7iAEAgAAAIAwQlWbOCFQfn6+duzYofvuu8+t4cW14BCISiDzBFYCOdeKEMhdhEAAAAAAEEZw0JCbm+sPgQoKCpSSkqIPPvhAc+bMcWuIcauhlUA0JI69wObdVAKZgRAIAAAAAMIIXg6WnZ2tkpIS2batgoICXXDBBerVq5ceffRRF0cZn0JVApWWloYMGT799FMdfvjhKioqiuUQ454TvNEY2hyEQAAAAAAQRvBysJycHO3evVtbt27V3r171bVrVw0aNEg//vijbNt2caTxJ1QlkKSQzbo///xzlZeXa+vWrTEbH+gJZCJCIAAAAAAII1RjaElatWqVJKlLly7Kzs6Wz+dTaWmpK2OMV6EqgSSF7Au0ceNGSdLevXtjMzhIqrlFPD2BzJC070MAAAAAID4FbhEv/Ro0rFy5UpK0//77a/fu3ZLk7xWE2AgO6JxKoFB9gQiB3MEW8eahEggAAAAAwqhvJZAUOnxA9DSkEmjTpk2SpPLy8piMDdVCLQejJ5C76hUCWZZ1mmVZayzLWmdZ1h1hjrnAsqzVlmV9a1nWS5EdJgAAAADEns/nq7VFvFQdAmVnZ6tVq1bKzc2VJG3fvt2VMcarcD2BgsM427b9IVBZWVnMxofQIRC7tLlrnyGQZVmJkv4p6XRJvSVdZFlW76BjDpZ0p6QTbNvuI+mmKIwVAAAAAGIqeDmYUwlUWlqq/fffv8ZtVALFVrgQaMeOHfruu+90zDHHaNu2bdq6dau/AohKoNgKDIGca0UlkLvqUwl0nKR1tm1vsG27QtLLks4KOuZqSf+0bbtEkmzb/jmywwQAAACA2AvVd8ayLEnVS8GkX6uD6AkUW+GWg5WUlGjOnDlatmyZ5s2b5+8HJNETKNZCbRFPTyB31acxdGdJPwZ8XSCpX9Axh0iSZVkLJSVKGmvb9vvBd2RZ1jWSrpGkAw44oDHjBQAAAICYCd4iPjExUVlZWSopKfGHQOnp6UpPT6cSKMaCQ6DWrVsrMTFRO3bs8AdyX3zxhWzb9h9DCBRb9AQyT30qgawQt9lBXydJOljSIEkXSZpsWVZWrZNs+znbtvvatt23ffv2DR0rAAAA0GKNGzdOzzzzjNvDQJDgoEH6dfmXEwJJ1VUoVALFVnBAZ1mWP6DLz8+XVB0COZVAlmURAsVYqEogegK5qz4hUIGk/QO+7iLpfyGOecu2ba9t2xslrVF1KAQAAACgHmbMmKGZM2e6PQwECV4OJv267CgwBMrJySEEirFQAV1WVpZ27NjhD4GWL1+uNWvWqGPHjsrIyCAEirHA+UMlkBnqEwItkXSwZVndLMtKkXShpLeDjnlT0imSZFlWO1UvD9sQyYECAAAALZnH49Hu3bvdHgaCBFebSL9WAjmNoZ3bWA4WW6FCoOzsbK1fv14///yz+vfvr4qKCv33v/9Vt27dlJ6eTmPoGPP5fEpIqI4d6Alkhn2GQLZtV0oaI+kDSfmSZtq2/a1lWfdblvX7Xw77QNJ2y7JWS1og6S+2bbM/IgAAAFBPHo9He/bscXsYCFJZWank5OQat2VnZ8uyLP3mN7+pcRuVQLEVrhJo+fLlkqSRI0dKqm4U7YRAbBEfWz6fzx/+sDuYGerTGFq2bb8r6d2g2+4J+G9b0s2//A8AAABAA3k8Hnm9XreHgSCBb2IdZ555pnJycpSamuq/jUqg2AtXCeTMo1NPPVWdOnXSli1b1K1bNy1dupRKoBgLVQlETyB31Wc5GAAAAIAoq6ioYDmYgUIFDf3799ctt9xS47bs7Gzt2bOHkCGGwlUCSdU7th144IHq1696Y+uuXbsqPT2dnkAxVlVV5Q9/6AlkBkIgAAAAwAD0BDJTqKAhFKdPUGFhYbSHhF/U1bS7R48eSkhI0HHHHSdJ6tatm9LS0giBYiywko6eQGYgBAIAAAAM4PF4VFFRwZIww4RqDB1Kbm6uJKmoqCjaQ8Iv6qoE6tWrlyTp/PPP16mnnqq+ffuyO5gLqAQyDyEQAAAA4DLbtuXxeCSJ5tCGCVVtEopTgUIlUOyE6wkkSb1795YkHXzwwZozZ44yMzOVlpbGcr0YCwxRnWtFTyB3EQIBAAAALqusrFT1XitiSZhh6lsJ5CwHoxIodupTCRSInkCxV1VVVasxNJVA7iIEAgAAAFzmVAFJhEAmsW273j2BqASKvVDXpm/fvjr88MN1wgkn1DqenkCxR08g89Rri3gAAAAA0RMYArEczBzOspX6hECZmZlKTEwkBIqhUCFQXl6eVqxYEfJ4egLFHpVA5qESCAAAAHBZRUWF/7+pBDKH82a1PsvBEhISlJWVxXKwGKpvlZbD6QlET5rYCawEoieQGQiBAAAAAJexHMxMTgiUnJxcr+Ozs7OpBIqh+vZrcqSnp0sSzaFjKNRyMCqB3EUIBAAAALiMEMhMTu+S+gYNOTk5VALFUEMrgZwQiCVhsUNPIPMQAgEAAAAuoyeQmbxer6T6h0BUAsVWY0MgKoFix+fz1eoJRAjkLkIgAAAAwGVUApnJebPakOVgxcXF0RwSAlAJZL6qqip/+OPMo8AeaIg9QiAAAADAZYRAZmpIY2ipOmQoKyuL5pAQoDGNoSVCoFgKXA6WmpqqlJQU7dq1y+VRxTdCIAAAAMBlhEBmckKg+gYNhECxY9u2qqqqGhQCZWRkSCIEiqXALeIlKTMzU6WlpS6OCIRAAAAAgMvYIt5MznKw+gYNaWlp8vl8/l5CiJ6GXhuJSiA3+Hy+Gteobdu22rlzp4sjAiEQAAAA4DIaQ5upocvBnJCBaqDoa2iVlkRjaDcENoaWqkMgloO5ixAIAAAAcBnLwczUmOVgEiFQLDQlBOL6xE5gTyCJSiATEAIBAAAALnNCoKysLEIggzRmOZjEcqNYoBKoeQiuBKInkPsIgQAAAACXOSFQTk4OIZBBGho0sBwsdpoSAhHSxU7gFvGS1KZNG0IglxECAQAAAC5zQqDc3Fx6AhmkMVvES4RAsdCYEIhKrdgLXg7mVALZtu3iqOIbIRAAAADgssAQiEogczQ0aEhNTZVEyBALDQ3oJCklJUVJSUlcnxgK1ROoqqqK33MuIgQCAAAAXOZsEU8IZJaG9gSiEih2GlMJJFVXA9ETKHZC7Q4miR3CXEQIBAAAALjMqQTKzs4mBDIIy8HM1dgQKD09nUqgGAruCeSEQOwQ5h5CIAAAgDjh9Xo1dOhQzZ071+2hIIjH41FKSoratGmjPXv20C/DEE7QkJycXK/jneVghEDRRwjUPITqCSSJ5tAuIgQCAACIE3v27NGGDRv03XffuT0UBHFCoNatW6uystK/PAzucpaDNbQSiJAh+giBmoeqqqoay8HatGkjiRDITYRAAAAAccIJFth9yjwej0epqalq3bq1JLEkzBAsBzNXQ/s1OdLS0giBYsjn89W4RlQCuY8QCAAAIE4QApmLEMhMLAczV2MrgTIyMgiBYihcY2hCIPcQAgEAAMQJQiBzOSFQq1atJHGNTNHQ5WApKSlKSEggZIiBpuwOxvWJneCeQG3atJFlWTSGdhEhEAAAQJwgBDJXRUUFlUAGamjQYFmWMjIyqASKgab0BGKL+NgJrgRKSEhQ69at2SLeRYRAAAAAccIJgXiDah6Wg5mpMUFDeno6cywGGtqvyUFj6NgK3iJeql4SRiWQewiBAAAA4oTH45FEJZCJAncHkwiBTNGYoIGeM7HhhAhOj5n6IgSKreDlYFL1NaMnkHsIgQAAAOIEy8HMFVwJxDUyQ2N2oGI5WGwUFRVJktq1a9eg8wiBYitcJRAhkHsIgQAAQERt27ZNl112GW9iDUQIZK7gxtBUApmB5WDmKiwslCS1b9++QeelpaXJ4/GoqqoqGsPCL+699159+umnqqysrBUCZWZmEgK5iBAIAABE1GeffaZp06ZpxYoVbg8FQQiBzEVPIDM1JgRiOVhsFBYWKj09XRkZGQ06zzme5tDRs3fvXk2fPl233nqrKisrazSGlugJ5DZCIAAAEFHOC2te4JknMASybdvl0SAQlUBmaugW8RLLwWKlqKiowVVAUnUlkCSCuigqKSmRJG3fvj3scjB2B3MPIRAAAIgop/kwIZB5nBCoqqrKf51gBmeL+OTkZKWmptao1poyZYreeecd/9fPPPOMFi1a5MYw447X65XUsBCI5WCxUVhY2KgQKD09XRIhUDQVFxdLkvr06SNJISuBysrK/PMLsUUIBAAAIopKIHMFBj8sCTOLszuYJLVu3bpGJdBf//pX3XLLLbJtWzt27NCNN96oGTNmuDXUuPLdd9+pU6dOsiyr3uewHCw2ioqKGtwUWvo1BCKoix4nBLrjjjt0+umn67jjjqvxfWdHN/oCuaP+i1sBAADqgRDIXE4lkFS93Cg3N9fF0SCQsxxMklq1auUPgTwej/73v//Jtm2tXr1aX3/9tbxeL/1MYmDPnj369NNPdeGFFzboPJaDxUZhYaEOOeSQBp/nLLnkGkWPEwJ17NhREyZMqPX9wBCIv0OxRwgEAAAiihDIXIEhEG+AzBIYAgVWAv3www/+/k2vv/66li9f7j8e0fXxxx/L4/Fo6NChDTqP5WCx0dhKIKcxNNcoepwQKCcnJ+T3MzMzJVEJ5BZCIAAAEFGEQOYKDIFYDmaWwBCoXbt22rp1qyRp48aNkqQ2bdpoxowZ2rRpkyT6mcTCnDlzlJOTo759+zboPJaDRZ/H49GuXbsa1ROIECj6SkpKlJiY6K/4CcZyMHfREwgAAEQUIZC5CIHMFRgC9ezZU/n5+bJt2x8CXX311crPz9fevXuVk5PDcrAo83g8WrBggU499dQGNYWWqkOG8vJyVVVVRWl0KCwslCQqgQxVXFys7OzssL20CIHcRQgEAAAiit3BzEUIZCafzyefz+cPgXr16qXi4mIVFhZq48aNSklJ0fXXXy9Jys3N1eDBgwmBomzhwoXas2dPg5eCSew+FQtFRUWSRCWQoUpKSsIuBZNqh0C2beuNN97wX1dEFyEQAACIKCqBzMXuYGZywjlnd7BevXpJkvLz87Vx40YdeOCBOuigg3TmmWfq6quvVps2bQgYouzrr79WQkKC+vfv3+BznZCBaxQ9TakEchpD8zswepxKoHCys7PVtm1bzZ49W1VVVXrttdf0l7/8hV0PY4QQCAAARBQhkLkqKiqUnJwsiTdAJnHCOacSqHfv3pKk1atXa+PGjerWrZskafbs2XrkkUf8y40QPTt37lTbtm39wVxDUGkSfU2pBKJSK/qKi4vrrARKSUnR7bffri+//FKTJk3Sww8/LInlYbFCCAQAACKKEMhcFRUV/hfmvEE1R3AI1KVLF7Vu3Vr5+fnatGmTPwRypKenEwJFWWlpadimtvvihAzMsehpSiVQUlKSUlJSuD5RVFJSUmclkCRdcMEF6tevn8aPH6/y8nIlJCTw4USMEAIBAICIIgQyV0VFhTIyMpScnOzfghzuCw6BLMtSz549tWTJEhUVFdUKgWg8HH1NCYFYDhZ9RUVFSkhIqLPapC6tWrUicIgSn8+nHTt27PPaWJalhx56SNnZ2brlllvUpk0b/i7FCCEQAACIKCcEKi0tlW3bLo8GgSoqKpSSkqLWrVvzBsggwSGQVN0X6IsvvpCkkCFQ4HmIvNLSUmVmZjbqXJaDRV9hYaFyc3OVkNC4t7MZGRlcnyjZsWOHbNuuV0DXtWtXLV68WKNGjVJ6ejohUIwQAgEAgIhy3pj6fL6QL7J9Pp+++uqrWA8L+jUEatWqFW+ADBIuBHJC1K5du9Y43lluxJKw6CktLVWbNm0adS7LwaKvsLCwUUvBHOnp6VyfKCkuLpakeldpJSUlSaquziIEig1CIAAAEFGBb0xDLQl77rnn1LdvXxUUFMRyWFB12JCamqqMjAwqgQwSLgRyhKsEYrlR9ESiEojrEz1FRUWNagrtIAiPnoaGQA7+LsUOIRAAAIiofYVAM2fOlPTr7i6IncBKIF5smyN4i3jp1xCoVatWtSoenJCBSqDocXYHawyWg0VfUyuBWA4WPSUlJZK0z8bQwTIyMqgEipF6hUCWZZ1mWdYay7LWWZZ1Rx3HnW9Zlm1ZVt/IDREAADQn5eXl/jdPwSFQYWGhPvnkE0lsUe4GQiAzhaoE6t69u5KTk9WtWzdZllXjeEKg6PJ4PKqoqGB3MIM1tRKIECh6mlIJRAgUG/sMgSzLSpT0T0mnS+ot6SLLsnqHOK6NpBslfRHpQQIAgOajvLxcHTp0kFQ7BHrrrbf8OxrxYi/2CIHMFCoESkpK0hFHHKFDDz201vH0BIou5/cWu4OZqaqqStu3b29SJRDLwaLHCYGysrIadB4hUOwk1eOY4ySts217gyRZlvWypLMkrQ467gFJj0q6NaIjBAAAzUp5ebm6dOmi77//vlYI9Prrrys5OVler5cXey5wQqCUlBRCIIOECoEk6Z133qmxRMxByBBdpaWlksTuYIYqKSmRz+drUiUQjaGjp6SkRK1bt671+2xf6AkUO/VZDtZZ0o8BXxf8cpufZVlHSdrftu136rojy7KusSxrqWVZSwsLCxs8WAAAYD6PxxOyEmjHjh368MMPNXz4cElUArmB3cHMFC4E6tChQ8i+GoRA0eWEQOwOZiannxw9gRqnvLxcXq83avdfXFzc4KVgEruDxVJ9QiArxG22/5uWlSDpCUm37OuObNt+zrbtvrZt921KcgsAAMwVbjnYhx9+KK/Xq8suu0wSPYHcwO5gZgoXAoXjhAzOeYisplYCJSQkKDU1lZAuSiIRAjlBuG3b+z64BSkvL9dZZ52lu+++O2qPUVxc3OCm0FL177Xdu3fH3TVxQ31CoAJJ+wd83UXS/wK+biPpUEkfWZa1SdLxkt6mOTQAAPHHtm2Vl5erXbt2SkhIqBECrVy5UgkJCTr55JMlUQnkhsBKIK/XS4hgCOc6hFr6FQqVQNHV1J5AUnxXmkTbjh07JDV896lAGRkZ/r9X8WTChAlav369vv/++6g9RmMrgTIyMuTz+fi7FAP1CYGWSDrYsqxulmWlSLpQ0tvON23b3mnbdjvbtrvatt1V0ueSfm/b9tKojBgAABjL2eo6LS1Nbdu2rREC5efn66CDDlJWVpYsyyIEckFgCCTVXK5SUVGhXbt28cbVBc68qW8lECFQdDW1EkgiBIom5+9KU65PPC7ZW716tSZPnqyEhARt3bo1ao/TlOVgElXCsbDPEMi27UpJYyR9IClf0kzbtr+1LOt+y7J+H+0BAgAQaNq0aTrrrLPcHgbCcD5VTUtLU2ZmZq0QqFevXkpISGDtvwts264VAjkvtktLS3X88cfrqKOO0hFHHKGPPvrIxZHGH5aDmcUJgVq3bt3o+0hPTyeki5JIVGrFY+Awbtw4ZWVl6ZJLLlFhYWFU+gLZtq2SkpJGVwJJVAnHQn0qgWTb9ru2bR9i23Z327Yf+uW2e2zbfjvEsYOoAgIARMvatWu1evVq/zbjMEu4EKiyslJr165Vr169JFW/uYqnF98mqKyslG3bIUOg5cuXq7S0VJdddpls29aaNWvcHGrcaWwIRMgQHaWlpUpLS2vw7kaBqASKnkhUAsXjDm7ff/+9Bg4cqB49esi2bUVjo6bdu3eroqJCubm5DT7X+b1GCBR99QqBAAAwhcfjkW3bBAiGct7MBodAGzZskNfr9YdAVALFnrPkKCUlxf8GyJlHK1askGVZuvnmm5WWlqaSkhLXxhmPGhoCJSUlKTk5mRAoSnbu3NmkgEEiBIqmnTt3KikpyR8aNEa8hUA+n0+FhYXq2LGjOnbsKEnatm1bxB/HCZYa07Tb+XCC1wbRRwgEAGhWnDc9u3btcnkkCCVcJVB+fr4k1agE4oVebAX2nXGWuTgh0MqVK5WXl6c2bdooOztbxcXFro0zHnk8HiUmJioxMbHe56SlpbEcLEp27drV6O3hHSwHix4npLOsUJtY10+ovmgtWVFRkXw+nzp06ODfvTMafYGcndsasxN48IcTiB5CIABAs0IIZDZCIHMF7kAVuBzMtm2tWLFCRxxxhCQpJyeHSqAY83g89d4ZzEHIED2lpaVUAhksEpVa8dYY2qn66dChg7GVQPQEih1CIABAs+K8keVFgpmcECg1NbVWCNS5c2d/I096AsVeqOVgZWVl2rx5s0pKSnTkkUdKqg6BqASKLY/H0+D+M2lpaXG3vXWs7Ny5s0lNhyVCoGiK1HI9KX6qTpyqn44dOyorK0spKSlRqQTavn27JEIg0xECAQCaFSqBzBZcCVRaWirbtv07gznoCRR7gSGQUwlUVFSkFStWSJK/EojlYLFXUVFBCGSQXbt2NTkESk9Pj2jA8Oc//1ljx46N2P1FU3FxsQYPHqxPPvkkKvcfiRDI+R0YL9V0gSGQZVnq2LFj1CqBEhMTlZ2d3eBzCYFihxAIANCsOG96CIHMFNwY2uv1au/evbVCIJaDxV5gCJSTk6MjjjhCkydP1kcffaT09HQdfPDBkqgEckNjKoFYPUjO+QAAIABJREFUDhY9kagEiuQ8evvttzV+/Hg999xzsm07IvcZTbfeeqsWLFigDz74ICr3H8lKoHip1tq6dauSk5P9W7d36NAhaj2BcnNzlZDQ8JgheNdKRA8hEACgWSEEMltgJZDzJmr16tXavXs3IZDLAkMgy7L00EMPqbS0VG+//bYOPfRQJSUlSap+87pnzx6aDscQy8HMUVVVpV27djU5ZOjQoYN2797d5De0O3fu1B//+EclJiZqy5YtKigoaNL9RduHH36oKVOmSJI2btwYlceIZE+geAkctm3bpv32288fznTs2DGqIVBjsEV87BACAQCaFZaDmS14OZgkjRgxQpJqhUDx8uLbFIG7g0lSz549dc0110j6dSmYJP8nxTSHjh1CoOj55ptvdMEFF+jcc8/V9ddfv883mLt375Zt203eHSxSzXfHjh2rLVu2aPz48ZKkL774okn3F00+n0/XXnutDj74YA0YMMDoECghIUHp6emuVgLNnTtXjz76aEwea9u2bf5dwST5l4M1tbLM5/Pprrvu0kcffSSpOgRqzM5gkpSUlKS0tDRCoBggBAIANCtUApktMAQaOHCgzj33XPXo0UMXX3yx+vXr5z+udevWKi8vV2VlpVtDjTuBu4M5rr/+el166aU699xz/bc5IRBLwmKnMbuDpaWlsRysHqZNm6bVq1crKytLc+bM0T/+8Y86jy8tLZWkiFQCSU0PgT7++GP99re/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(df['volume'], color='black')\n", "plt.xlim(0, df.shape[0]+12)\n", "color = itertools.cycle(['white', 'gainsboro'])\n", "for i, x in enumerate(range(0, df.shape[0], 52)):\n", " plt.text(x+12, 0.9, str(2004+i), color=\"black\", fontsize=20)\n", " rect = Rectangle((x, -1), 52, 2.5, facecolor=next(color))\n", " plt.gca().add_patch(rect)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the raw time series above displays ten years of web query volume for the keyword \"Kohl's\", where each alternating white and grey vertical band represents a 52 week period starting from 2004 to 2014. As depicted, the time series features a significant but unsurprising \"end-of-year holiday bump\". Relating back to time series chains, we can see that the bump is generally increasing over time and so we might be able to capture this when we compute unanchored chain.\n", "\n", "However, as we learned above, in order to compute any time series chains, we also need the left and right matrix profile indices. Luckily for us, according to the docstring, the `stump` function not only returns the (bidirectional) matrix profile and the matrix profile indices in the first and second columns of the ndarray, respectively, but the third and fourth columns consists of the left matrix profile indices and the right matrix profile indices, respectively:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mstumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstump\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mT_A\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mT_B\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mignore_trivial\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Compute the matrix profile with parallelized STOMP\n", "\n", "This is a convenience wrapper around the Numba JIT-compiled parallelized\n", "`_stump` function which computes the matrix profile according to STOMP.\n", "\n", "Parameters\n", "----------\n", "T_A : ndarray\n", " The time series or sequence for which to compute the matrix profile\n", "m : int\n", " Window size\n", "T_B : ndarray\n", " The time series or sequence that contain your query subsequences\n", " of interest. Default is `None` which corresponds to a self-join.\n", "ignore_trivial : bool\n", " Set to `True` if this is a self-join. Otherwise, for AB-join, set this\n", " to `False`. Default is `True`.\n", "\n", "Returns\n", "-------\n", "out : ndarray\n", " The first column consists of the matrix profile, the second column\n", " consists of the matrix profile indices, the third column consists of\n", " the left matrix profile indices, and the fourth column consists of\n", " the right matrix profile indices.\n", "\n", "Notes\n", "-----\n", "\n", "DOI: 10.1109/ICDM.2016.0085\n", "See Table II\n", "\n", "Timeseries, T_B, will be annotated with the distance location\n", "(or index) of all its subsequences in another times series, T_A.\n", "\n", "Return: For every subsequence, Q, in T_B, you will get a distance\n", "and index for the closest subsequence in T_A. Thus, the array\n", "returned will have length T_B.shape[0]-m+1. Additionally, the\n", "left and right matrix profiles are also returned.\n", "\n", "Note: Unlike in the Table II where T_A.shape is expected to be equal\n", "to T_B.shape, this implementation is generalized so that the shapes of\n", "T_A and T_B can be different. In the case where T_A.shape == T_B.shape,\n", "then our algorithm reduces down to the same algorithm found in Table II.\n", "\n", "Additionally, unlike STAMP where the exclusion zone is m/2, the default\n", "exclusion zone for STOMP is m/4 (See Definition 3 and Figure 3).\n", "\n", "For self-joins, set `ignore_trivial = True` in order to avoid the\n", "trivial match.\n", "\n", "Note that left and right matrix profiles are only available for self-joins.\n", "\u001b[0;31mFile:\u001b[0m ~/miniconda3/lib/python3.7/site-packages/stumpy-1.1.0-py3.7.egg/stumpy/stump.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "?stumpy.stump" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Left and Right Matrix Profile Indices\n", "\n", "So, let's go ahead and compute the matrix profile indices and we'll set the window size, `m = 20`, which is the approximate length of a \"bump\"." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "m = 20\n", "mp = stumpy.stump(df['volume'], m=m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Unanchored Chain\n", "\n", "Now, with our left and right matrix profile indices in hand, we are ready to call the all-chain set function, `allc`, which not only returns the all-chain set but, as a freebie, it also returns the unconditionally longest chain, also know as the unanchored chain. The latter of which is really what we're most interested in." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "all_chain_set, unanchored_chain = stumpy.allc(mp[:, 2], mp[:, 3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualizing the Unanchored Chain" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABIEAAAFlCAYAAAB82/jyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXhU9dn/8c93JnvYwo4iewVBrftCcYO6oT7W6iNqrVJpa23V0mqtbf2prdW2apWixdrigltdcLcu+Bhc2CrggiKL7ESBQBaSkGQyy/n9EWYyM5mELGfmTM68X9fFdU0mZyZnku+EzGfu+/4ay7IEAAAAAAAAd/M4fQIAAAAAAABIPkIgAAAAAACADEAIBAAAAAAAkAEIgQAAAAAAADIAIRAAAAAAAEAGIAQCAAAAAADIAFlOfeG+fftaw4YNc+rLw0V8Pp/Tp5DRcnNznT6FjMb6dxbr31msf2ex/p3F+ncezwFn8RxwFus/vS1fvnyXZVn9En3OsRBo2LBhWrZsmVNfHi6yfv16p08ho40cOdLpU8horH9nsf6dxfp3FuvfWax/5/EccBbPAWex/tObMWZzS5+jHQwAAAAAACADEAIBAAAAAABkAEIgAAAAAACADEAIBAAAAAAAkAEIgQAAAAAAADIAIRAAAAAAAEAGIAQCAAAAAADIAIRAAAAAAAAAGYAQCAAAAAAAIAPsMwQyxjxsjCk1xnzewueNMWamMWadMWaFMeYI+08TAAAAAAAAndGWSqBHJZ3RyufPlPSNvf9+LOmBzp8WAAAAAAAA7LTPEMiyrPcllbdyyLmSHrMaLZHUyxgzyK4TBAAAAAAAQOfZMRNof0lboz4u2XtdM8aYHxtjlhljlu3cudOGLw0AAAAAAOyyc+dO/e///q/Tp4EksSMEMgmusxIdaFnWPy3LOsqyrKP69etnw5cGAAAAAAB2qa6uVmlpqdOngSSxIwQqkXRA1MeDJX1tw/0CAAAAAIAUCgaDCgQCTp8GksSOEOgVSZft3SXsOEm7LcvaZsP9AgAAAACAFAqFQgqFQk6fBpIka18HGGP+LelkSX2NMSWSbpGULUmWZf1D0uuSJktaJ6lW0g+SdbIAAAAAACB5qARyt32GQJZlXbyPz1uSfmbbGQEAAAAAAEdQCeRudrSDAQAAAAAAF6ASyN0IgQAAAAAAgKTGEIhKIPciBAIAAAAAAJIa28GoBHIvQiAAAAAAACCJSiC3IwQCAAAAAACSGiuBgsGgGveAgtsQAgEAAAAAAEmKVAFRDeROhEAAAAAAAEBSYzuYJOYCuRQhEAAAAAAAkEQlkNsRAgEAAAAAAElUArkdIRAAAAAAAJBEJZDbEQIBAAAAAABJVAK5HSFQmisrK9Ps2bN13nnnadSoUcrPz1fPnj01YcIEPfTQQy2ms4sWLdLkyZPVu3dvFRQU6NBDD9WMGTMiT+hEXnvtNZ188snq2bOnunXrpmOPPVZz5sxp03n6fD4dfPDBMsZo8ODBHXqs6aqiokLPPPOMrrrqKk2cOFHjxo3TYYcdpilTpujZZ59t8Wfw0Ucfadq0aTryyCN18MEH66yzztIjjzzS6s+guLhYl1xyiQ477DAdeuihOv/88/XCCy8kPPb555/XqFGjWvz31FNP2fL4nZbuz4Gamhrddttt+uY3v6lu3bqpe/fuGjdunH784x/L7/d36rGng3Rd/yeddFKr63/UqFG6//77bfkeOCmd139paaluuOEGHXzwwerevbv69OmjI488UnfddZeqq6s7/djTQbquf0nasmWLbrzxRk2YMEEHHXSQjjvuOE2fPl3r16/v9ONOF6lY/5WVlbrrrrv0ve99T2PHjlVWVpaMMfq///u/Vs8tGAxqxowZOvTQQ5Wfn6/evXtr8uTJWrRokS2PPR2kYv1XVVXpX//6l375y1/q9NNP1+jRozVq1CgtXLiwxfNat26dZsyYoSuvvFInnHBC5He+216spuP6tyxLb775pq655hoddthhKioqUl5enkaPHq3p06drx44dtn4PnJSu6//tt9/Wtddeq9NOO01HHHGExo0bp0mTJmn69On67LPPbHv84fN1qhIoHdd/Irt27dLAgQNljNGECRM6/HhTzViW5cgXPuqoo6xly5Y58rW7kn/84x+66qqrNGjQIJ1yyikaMmSIduzYoRdeeEG7d+/W+eefr+eee07GmMhtXn75ZZ1//vnKy8vTlClT1Lt3b7366qtas2aNLrjgAj333HPNvs7999+va665Rn369NGUKVOUk5OjuXPnqqSkRNddd53uvvvuVs/zuuuu0z//+U/V1NRo//33V0lJie3fi5Yk+w/ep556SjfffLP69++v4447ToMGDVJZWZne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r+7du0dabzrK8ofk21wlK+TM3Np9SZf1v3DhQt133336xz/+oddee02FhYWaNWuWTj31VFvuP1wBlG4hkNPr/4svvtBvf/tb/eQnP+nSf+sQAnVBM2fO1F//+leNGTNGjz/+eLtuGx4E3p5ZJYlu86Mf/Uh+v1//+te/2vX13WLOnDl66KGHNHLkyH3unBbPrp/Bscceq8suu0zDhw9Xfn6++vfvr8mTJ+uJJ55Qz5499eqrr2rVqlXtOreuwunnQPS7I+eff77uvPNODRkyRL1799YPfvAD3XHHHbIsS3/5y1/adW5dRTqs/3gLFy7U1q1bNW7cuJTsiuckp9e/1DhM+sQTT9Rnn32m119/Xbt379a2bdv0wAMP6Mknn9TRRx8deVfUbdJh/d92223KycnRbbfdpssvv1x//vOfNX36dF188cWRd5jteCc4HaV6/bdXKr6Gk1K9/hErHdf/2rVrdc4558jv9+uJJ57o1LBgy7JU+uCn2vnAp6p4Lv2q6dJp/d9www1at26dVqxYoZdfflnHH3+8pk2bplmzZtly/+lYCeT0+vf7/fr+97+vQYMG6c477+zw/aQDd/6F4GJ///vf9fOf/1xjx47V/Pnzmw2ySvSObbRw+hydkrb1Nj169JDUOAn91Vdf1d/+9rcWp8W72eOPP67bbrtNo0aN0hNPPNFsmFs46Q+/uxsv0bu+4XcNWqp0CN+mLS0u++23X2SOxNKlS/d5fFeTDs+BgoKCSO/7eeed1+z48HUffvhh2x5UF5Ku6//pp5+W5P4qoHRY/1LjLKzPPvtMzz//vM4880z16NFDAwcO1JVXXqnbb79dO3bs0O9///sOPsr0lS7r/7jjjtMLL7ygM888U6tXr9acOXP06aef6mc/+5mmT58uSerTp09HHmJaS8b6b69UfI10lYz1j7ZLh/Uf78svv9Qpp5yi8vJyPf300wk3ymiPYHm9/CWN66T241I7TtE26br+CwoKNG7cON1zzz064YQTdO+992rFihWdvt90qwRKh/X/pz/9SR9//LEeeeSRLj92gBCoC5kxY4auvvpqHXzwwZo/f74GDhzY7JjRo0dLStyLHggEtHHjRmVlZWnEiBFtus22bdu0Z88eDR48ODIL4qOPPpIkXX755TLGxPyTGucUhD92Wzn0I488ot///vc68MAD9eSTT6pfv37Njgn3Aid6FzwQCKikpERZWVk64IADIteHfx6JblNaWqra2loNHDiw1Xko0cK/GGtra9t0fFeRLs+B6Nsk2tEhPLOjrq6uPQ8v7aXr+i8rK9M777zj+oHQ6bL+q6ur9d5776l379469NBDm93mlFNOkSQtX768A48yfaXb+h8zZozuu+8+/fe//9WqVas0f/58XX311fr8888lKeHPpitL1vpvr1GjRsnr9WrDhg0Jd8358ssvJSWeS9GVJWv9o23SZf1HW7VqlU466STt2rVLzz33XGSr7s5I1xawrrL+TzzxRFmWZcubkOlUCZQu6/+jjz6SZVk6+eSTY17/hn/2CxculDGmXbu9OYUQqIv4y1/+ol/84hc67LDDNH/+/Banvod3Y3nzzTebfe79999XbW2txo8fHzMwuLXbvPHGGzHHSIqUGyb6JzUm0uGP3TSY+MEHH9Ttt9+ugw46SE888USL77Ief/zxkpRwe96lS5eqrq5Ohx9+eMz3prXbvPfeezHHtMWnn34qSa76QyudngOSNGnSJEmKvOCKFr4uervtri6d1//cuXPl9/t19tlnd/l3ZlqSTuu/oaFBUuO7auHL0cJbw4er5dwgndd/NJ/Pp5deekkej0dnnXVWm27TFSRz/bdXbm6uxo8fr9raWn3wwQfNPt/S/xldWTLXP/YtndZ/2GeffaaTTz5Z5eXlev7553Xuued2+j4lyXjSr1WwK63/HTt2SIrdtayj0qUSKJ3W/6mnnprw9e+UKVMkSQMGDNC0adN02WWXdfhrpAohUBdw22236cYbb9SRRx6pd955R3379m3x2AsuuEB9+/bV008/rWXLlkWur6+v10033SRJuuqqq2Ju84Mf/EC5ubm6//77tWnTpsj1FRUVuuOOOyRJP/nJTyLXT5kyRbNnz074T2qsggh/3NbKlXR3//3366677tLBBx+sxx9/vFkJYrQzzjhDRUVFeu211/TZZ59Frvf5fJFtBL/3ve/F3Ob8889XTk6OnnjiCZWUlESu3717tx544AFJ0sUXXxxzm0StXpZl6YEHHtDHH3+soqKihNtUdkXp9hyQpCuvvFJZWVm69957Y35m9fX1+t3vfifJPa1J6bj+w6IHQrd0TFeXbuu/T58+OuiggxQIBHTbbbfF3Fd9fX1kKGg4KO3q0nH919bWNvvD3O/365ZbblFJSYkuueQSDR06tGMPOM0ke/13RPg+brrpJtXX10euX7p0qZ555hn169fPlqqIdJDs9Y/WpeP6/+STT3TKKaeourpaL7/8ss4+++xO32dLnK4MSrf17/P5Ih0Z8VasWKGnnnpKHo/Hlr//06ESKN3W/89+9rOEr3///Oc/S2qsFJ09e7ZmzpzZqa+TCiY8JCnVjjrqKCv6B4TE5syZo6lTp8rr9eqaa65J2Mc4bNgwTZ06NfLxSy+9pAsuuEB5eXm66KKL1Lt3b73yyitas2aNLrjgAj377LPNhmLdd999uvbaa9WnTx9NmTJFOTk5mjt3rkpKSnTddde1efiZMUb7779/zB+yyZbsbXBfeOEF3XDDDfJ6vfr+97+fsJd38ODBMX/wvf3227r66quVm5urs846S7169dI777yjDRs26IwzztB9993X7Gfw2GOP6Q9/+IOKioo0efJkZWdn680339T27ds1bdo0/eY3v4k5ftSoURo+fLgOOeQQDRw4UNXV1Vq+fLnWrl2r/Px8zZo1SyeccEJyvilROjMAsC3S+Tlwzz336LrrrlPv3r31ne98R4WFhXrrrbe0du1aHXvssZo/f37Sg9BMXf9hixYt0mWXXaZx48bp5ZdftvfBt0Gmrv//+7//01lnnaWGhgYde+yxGj9+vOrq6vTGG29o8+bNGjVqlJYsWZL0uTSZuv6Li4v129/+VuPHj9egQYNUU1Oj9957TyUlJTrllFN0//33p6Tawi3r//rrr9euXbskSQsWLND69et12mmnadCgQZKk73znO/rOd74TOd6yLF144YWaO3euxowZo3POOUdlZWV65plnVF9fb2tlRGvcsv7/9Kc/qaKiQpK0bNkybdmyRRMmTIi843/qqafG7HhUXl4eedElNb7zX1tbq/POOy9y31deeWXS16eU3OdAOq7/iooKjRo1SuXl5Zo0aZImTJiQ8NynT5/eoZYY/6467bi76fXh/rd9Sya75ZqFZD4H0nH9V1VV6YgjjtDIkSM1btw4DRw4UHV1dVq/fr0WL14sSfr1r3+tH/7wh51+/LNmzdI999yjxx9/vMVq1Exb/y3ZtGmThg8frm9961tasGBBJx+5fYwxyy3LOirh5wiB0tutt966z+GaJ510kt59992Y6xYuXKjbb79dixcvVn19vUaNGqUrrrhC1157bYslgq++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o+2b7dGUUeWnGx6XedbcSacpiEBarZY9e/bQu3fvOs3zReoXLD5o2dI0MHCgzfMaVwLVxQ62fPlyunbtyhNPPMG//vUvpkyZQl5eHgsWLGD58uWEhISQkJDAQw89ZBB8Fi1axN13320iAAGMHz+eYcOGUVhYyK+//mr2XPHx8SxcuNCQc5OTk8PGjRu5du0aBw8eZO7cufTv35/HHnuMBx54gK4NlB1TVwICAvj5558pLi422b9mzRomTJhgls9zp+HQogUB8+Yi33z/dgwMxPHBB2/xqgQCgUAgEAgElhAikKDRkJ1XgtZUA6KoXMODy3ZRWskWtmJXOn+LDaRTYDMEdUSrRpV/wbBZ7mGNCGRsB7szRaB9+/bRt29fLl26hJ+fn01zZBRk8PGhjy0ec1O50a91P5vXF+AWYHh8Mr92WS56NBoN33zzDatXryYwMJC8vDzS09P56quvGDx4sKGz0quvvsqsWbP44YcfOHHiBOvXr2fDhg1m8zk5ObFo0SIKCgosWot69OjB9evX+f333+nXrx+vv/46Go2G1q1bGzJzevfuzZw5c7jnnntsek23ggceeIAvvviCw4cPm+zv0qVLrdrb3+7UprudQCAQCAQCgeDWIEQgQaMh43qxxf3GAlCYrxtnrxQiAzN+Osqa5+3T5rkp41CYhaRVA6B2aYHs6F7jOU0hEygxMRGAX375hccff9ymOebvnU+pVmdxDPIIope/LqhYpVQxLHSYSbhzbenl3wsF/7+9O4+rusr/OP46ICAguwu4m45b7pm5lUv9+plJmbm2zKSZY6aG2ZiOS8SImdlim46W2pipaTUqOWYukxOaE+Ye5S8z99TcUBHZzu+Pe72AorKoF+H9fDx4cL/ne77fe8APePnccz7Hg0wy2Xl6JydTTxLsnb+k6JYtW6hQoQJVqzoSf+3bt2fq1KmsWbMmR5KnW7duzJ8/n4ULF/Lpp58ybNgwQkJCcr1n4ysUAPby8mLMmDHExMTw/PPP88svv/DFF19cUrund+/e+fo63O3222/XTlQiIiIiclNQURUpMg6czEoC3d8wggcaV8xxvkujCGY9cTveno53m7fsO0ncttyLsUre5awHVC1P15SE5WBLly6lf//+rmRQUlISn332GZ9++ilHj179a/7mwDes3rfadRzbNpaxrcYyttVYRrYYSeNyhdst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R3M/dw9DRERERERERC4jL1V5KwH7sh3vd7bl2sdamw6cAsIuvpExZoAxJsEYk3D06NGCjfgmMGbMGB566CGCg4NZsGABlStXdveQRERERERERKSEy8tMoNzW9Fw8wycvfbDWTgemg2M5WB6e+6bk5+fHsGHD3D0MERERERERERGXvMwE2g9UyXZcGTh4uT7GmFJAEHD8WgxQREREREREREQKLy9JoO+APxhjahhjvIHewJKL+iwB/uR83B1YXRLrAYmIiIiIiIiIFFVXXQ5mrU03xgwGvsSxRfxMa+0OY0wMkGCtXQJ8AMwxxvyMYwZQ7+s5aBERERERERERyZ+81ATCWrsMWHZR27hsj1OAHtd2aCIiIiIiIiIicq3kZTmYiIiIiIiIiIjc5JQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAZQEEhEREREREREpAYy11j1PbMxRYI9bnvzaKwv87u5BiFxHinEpzhTfUtwpxqW4U4xLcacYl/yqZq0tl9sJtyWBihNjTIK1trm7xyFyvSjGpThTfEtxpxiX4k4xLsWdYlyuJS0HExEREREREREpAZQEEhEREREREREpAZQEujamu3sAIteZYlyKM8W3FHeKcSnuFONS3CnG5ZpRTSARERERERERkRJAM4FEREREREREREoAJYEKwRjTyRjzkzHmZ2PMSHePR6QgjDEzjTFHjDHbs7WFGmO+Msb8n/NziLPdGGPecsb8VmNMM/eNXCRvjDFVjDFrjDGJxpgdxphnne2KcykWjDGljTH/NcZsccb4S872GsaYDc4YX2CM8Xa2+ziPf3aer+7O8YvkhTHG0xizyRgT5zxWfEuxYYz51RizzRiz2RiT4GzT6xS5LpQEKiBjjCfwLnAfUB/oY4yp795RiRTIbKDTRW0jgVXW2j8Aq5zH4Ij3Pzg/BgBTb9AYRQojHRhura0HtASecf6+VpxLcXEe6GitbQw0AToZY1oCrwBvOGP8BPCks/+TwAlrbS3gDWc/kaLuWSAx27HiW4qbDtbaJtm2gtfrFLkulAQquBbAz9baX6y1qcB84EE3j0kk36y1a4HjFzU/CHzofPwh0DVb+z+sw7dAsDEm4saMVKRgrLWHrLXfOx+fxvFHRCUU51JMOGP1jPPQy/lhgY7AImf7xTF+IfYXAXcbY8wNGq5IvhljKgP3A+87jw2Kbyn+9DpFrgslgQquErAv2/F+Z5tIcVDBWnsIHH9AA+Wd7Yp7uak5lwU0BTagOJdixLlUZjNwBPgK2AWctNamO7tkj2NXjDvPnwLCbuyIRfLlTWAEkOk8DkPxLcWLBVYYYzYaYwY42/Q6Ra6LUu4ewE0st3cUtNWaFHeKe7lpGWPKAJ8CUdbapCu8Maw4l5uOtTYDaGKMCQY+B+rl1s35WTEuNw1jTBfgiLV2ozGm/YXmXLoqvuVm1sZae9AYUx74yhjz4xX6KsalUDQTqOD2A1WyHVcGDrppLCLX2uEL00qdn4842xX3clMyxnjhSADNtdZ+5mxWnEuxY609CfwbR/2rYGPMhTf8ssexK8ad54O4dFmwSFHRBnjAGPMrjvILHXHMDFJ8S7FhrT3o/HwERyK/BXqdIteJkkAF9x3wB+fOBN5Ab2CJm8ckcq0sAf7kfPwnYHG29j86dyVoCZy6ME1VpKhy1oL4AEi01r6e7ZTiXIoFY0w55wwgjDG+wD04al+tAbo7u10c4xdivzuw2lqrd5GlSLLWjrLWVrbWVsfxenu1tfZRFN9STBhj/I0xARceA/cC29HrFLlOjH4nFpwxpjOOdyI8gZnW2lg3D0kk34wx84D2QFngMPAi8E/gE6AqsBfoYa097vxj+h0cu4klA32ttQnuGLdIXhlj2gL/AbaRVU/irzjqAinO5aZnjGmEo2ioJ443+D6x1sYYY27BMXMiFNgEPGatPW+MKQ3MwVEf6zjQ21r7i3tGL5J3zuVgz1truyi+pbhwxvLnzsNSwMfW2lhjTBh6nSLXgZJAIiIiIiIiIiIlgJaDiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAEoCiYiIiIiIiIiUAP8P/8lZ0/VLI3UAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(df['volume'], linewidth=1, color='black')\n", "for i in range(unanchored_chain.shape[0]):\n", " y = df['volume'].iloc[unanchored_chain[i]:unanchored_chain[i]+m]\n", " x = y.index.values\n", " plt.plot(x, y, linewidth=3)\n", "color = itertools.cycle(['white', 'gainsboro'])\n", "for i, x in enumerate(range(0, df.shape[0], 52)):\n", " plt.text(x+12, 0.9, str(2004+i), color=\"black\", fontsize=20)\n", " rect = Rectangle((x, -1), 52, 2.5, facecolor=next(color))\n", " plt.gca().add_patch(rect)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAFUCAYAAAB8/9p8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzde3yjd3nn/a9sj+c8znkScEBJILEgItCGUgKGYA492DTw0K7bPi2zhafF4IW2mPalPqVd025bFepnty1uTLfdMm3prksfysECCq0JOBwKIQu4IAcaIogTmJwmnsx4Zjxja//QLeknjc763bpPn/fr5Re3bsvSD7hG0n3puq5fLJ/PCwAAAAAAAN7r83oBAAAAAAAAKCBRAwAAAAAA4BMkagAAAAAAAHyCRA0AAAAAAIBPkKgBAAAAAADwCRI1AAAAAAAAPkGiJkLiqcwt8VTmlqA+PvyJuIIbiCu4gbiCG4gruIG4ghuIq+AgUQMAAAAAAOATJGoAAAAAAAB8gkQNAAAAAACAT5CoAQAAAAAA8AkSNQAAAAAAAD5BogYAAAAAAMAnSNQAAAAAAAD4xIDXC0B45NLjn/N6DQgf4gpuIK7gBuIKbiCu4AbiCm4gruyhogYAAAAAAMAnSNTAmngqc108lbnO63UgXIgruIG4ghuIK7iBuIIbiCu4gbiyh9Yn2HSx1wtAKBFXcANxBTcQV3ADcQU3EFdwA3FlCYkaWJNLj9/l9RoQPsQV3EBcwQ3EFdxAXMENxFV09bv42MSVPbQ+AQAAAAAQcn+t/VP/ooMfX0+t/LLXa0FjJGpgTTyVScRTmYTX60C4EFdwA3EFNxBXcANxBTcQV9GznlrZd436fnZAsYOSfsuN5yCu7CFRA5suFn2JsI+4ghuIK7iBuIIbiCu4gbiKngMxxYqdT5eup1bcyAUQV5aQqAEAAAAAINx2V90+4Mkq0BISNQAAAAAAhNueqtsHPVkFWkKiBgAAAACAcKuuqCFR42MkagAAAAAACDcqagKERA0AAAAAAOFGoiZASNQAAAAAABBu1a1PhzxZBVpCogYAAAAAgHCjoiZABrxeAEJly+sFIJSIK7iBuIIbiCu4gbiCG4ir6OnFMGHiyhISNbAmlx6/y+s1IHyIK7iBuIIbiCu4gbiCG4irSHK9ooa4sofWJwAAAAAAwo3tuQOERA2siacyiXgqk/B6HQgX4gpuIK7gBuIKbiCu4AbiKpJcr6ghruyh9Qk2DXq9AIQScQU3EFdwA3EFNxBXcANxFT292PWJuLKERA2syaXHv+r1GhA+xBXcQFzBDcQV3EBcwQ3EVST1YkYNcWUJrU8AAAAAAIQbM2oChEQNrImnMjfFU5mbvF4HwoW4ghuIK7iBuIIbiCu4gbiKpF7MqCGuLKH1CTbt93oBCCXiCm4gruAG4gpuIK7gBuIqenpRUUNcWUJFDQAAAAAA4VZdUePGMGFYQqIGAAAAAIBwY0ZNgJCoAQAAAAAg3C6YUbOeWol5shI0RaIGAAAAAIBwq66oGahxDj5BogYAAAAAgHCrrqiRaH/yLRI1AAAAAACEG4maACFRAwAAAABAuNVqc2LnJ58a8HoBCJVTXi8AoURcwQ3EFdxAXMENxBXcQFxFTy8qaogrS0jUwJpcevyrXq8B4UNcwQ3EFdxAXMENxBXcQFxFUq2KGquJGuLKHlqfAAAAAAAIN2bUBAiJGlgTT2VuiqcyN3m9DoQLcQU3EFdwA3EFNxBX0fRTD37gp3/xO395+9zkxMvceHziKpJcr6ghruyh9Qk2bXm9AIQScQU3EFdwA3EFNxBXETM3OXH5YelNMalf0jsl/YALT0NcRU8vKmqIK0tI1MCaXHo86/UaED7EFdxAXMENxBXcQFxF0uVOkkaS4m48AXEVSa7v+kRc2UPrEwAAAAD4x17j+KK5yQmu2WADM2oChH/0sCaeytwcT2Vu9nodCBfiCm4gruAG4gpuIK4iybygjkkasv0ExFW0rKdWYurNjBriyhJan2DToNcLQCgRV3ADcQU3EFdwA3EVPdWVD5dIOm75OYiraKn3/7ftihriyhIqagAAAADAP/ZW3b7Yk1UgTGpV00i0PvkWiRoAAAAA8I9aFTVAN2rNp5FI1PgWiRoAAAAA8I/qi2oqatCtehU1Vnd9gj0kagAAAADAP6pbn6ioQbeoqAkYEjUAAAAA4B9U1MC2UkydV/6EcZ5EjU+RqAEAAAAA/2BGDWwrtT6dlx43zpOo8SkSNQAAAADgH+z6BNtKyb9zkllRs289tdLvwXrQxIDXC0CoHPd6AQgl4gpuIK7gBuIKbiCuoqcXFTXEVbSUKmp2lD8rxU5KOuCcOiBpw9LzEFeWkKiBNbn0eNbrNSB8iCu4gbiCG4gruIG4iiTXEzXEVeSUYmpH2lKhqqaYqDkkS4ka4soeWp8AAAAAwD8YJgzbjIoabUl6wvgdc2p8iEQNrImnMjfHU5mbvV4HwoW4ghuIK7iBuIIbiKtIcn17buIqckrJv23pnFxK1BBX9tD6BJvoSYQbiCu4gbiCG4gruIG4ip5eVNQQV9FiVtSclXsVNcSVJSRqYE0uPX6v12tA+BBXcANxBTcQV3ADcRVJ1YmafXOTE7tnFpfO2noC4ipyelJRQ1zZQ+sTAAAAAPhHdeuTxJwadKdUUbOtfPWMmkO9Xw6aIVEDa+KpzC3xVOYWr9eBcCGu4AbiCm4gruAG4iqSqitqJMtzaoiryDEraoq7PhXZnFFDXFlCogYAAAAA/MP1RA0ix6ioYdenICBRAwAAAAD+QesTbCsl/867OKMG9pCoAQAAAAD/oKIGtpUqas5fOKOGRI0PkagBAAAAAP+olaihogbdMCtqSNQEAIkaAAAAAPCPWq1PVNSgG9WJGnOYMLs++RCJGgAAAADwDypqYFup9WmL1qdAIFEDAAAAAP7BjBrYVoqpc7Q+BQKJGgAAAADwgbnJiX5Ju2r8ikQNumFU1JCoCYIBrxeAUDnm9QIQSsQV3EBcwQ3EFdxAXEVLrWoayX7rE3EVLaW42lLeze25iStLSNTAmlx6/F6v14DwIa7gBuIKbiCu4AbiKnLqJWqsVtQQV5FTqqg542JFDXFlD61PAAAAAOAPpR2f8tK2cZ5hwuhGKQF49sJhwofWUyux3i8JjZCogTXxVOaWeCpzi9frQLgQV3ADcQU3EFdwA3EVOaUL6m31PWqcv3hucsLaxTRxFTmlippN5beG06Nbks46p/pUe0v4thFX9tD6BJvu93oBCCXiCm4gruAG4gpuIK6ipZSoycf6Tim/c0rSfkn9KrSonLD0PMRVtJTialM65xw+oXIC52DhV10jriwhUQNrculx/mHCOuIKbiCu4AbiCm4griLHaH2KnZX0mAqJGqkwp8ZKooa4ipxSRc1J5YuVNE9Iusw5PigLg4CJK3tofYI18VRmMJ7KDHq9DoQLcQU3EFdwA3EFNxBXkVOqfNiJxbYkHTd+Z22gMHEVOaW4eqKw61PhsMzKQGHiyh4SNbDpZucHsIm4ghuIK7iBuIIbiKtoKbc+KbalQkVNkc2BwsRVtJQqao4XhglL7uz8RFxZQqIGAAAAAPzBaH3qOyuXKmoQOaUE4HHtFBM1Zhvdod4uB82QqAEAAAAAf6hufXKrogYR4Wy9XaqoedjF1ifYQ6IGAAAAAPzBaH3qq07UUFGDTpRmxuwof35Lyjs3SdT4GIkaAAAAAPCHUuvTTixW3fpERQ06YST/tGWcJ1HjYyRqAAAAAMAfzIqa4vbcRVTUoBOlticSNcFBogYAAAAA/MGYUdPn2vbciJRyTJGoCQwSNQAAAADgD+XWJ3e350Z0lCpqqhI17PrkYyRqAAAAAMAfjIqafrbnhg3MqAmgAa8XgFC53+sFIJSIK7iBuIIbiCu4gbiKltJF9Xbsgl2fbFbUEFfRUa+ixo1EDXFlCYkaWJNLj/MPE9YRV3ADcQU3EFdwA3EVOcauT+5tz01cRYo5o+accd56ooa4sofWJ1gTT2UG46nMoNfrQLgQV3ADcQU3EFdwA3EVOUZFTf9ZFS6md5xTB+YmJ3bZeBLiKlKMipq8qxU1xJU9JGpg083OD2ATcQU3EFdwA3EFNxBX0VJO1Kh/a2ZxaUeVc2pstT8RV9HRyq5PtoYJE1eW0PoEm+71egEIJeIKbiCu4AbiCm4grqKldFF9vlBRIxUSNZc6x5dIesjC8xBX0dHKrk+2ZtQQV5aQqIE1ufT4Ma/XgPAhruAG4gpuIK7gBuIqckozas73DRQTNdYHChNXkWJUabk+o4a4soTWJ1gTT2UOxFOZA16vA+FCXMENxBXcQFzBDcRV5BgVNbuK1Q/Wt+gmriLFrKg5a5zfVHn+0Z711ErXRRzElT0kamDTs5wfwCbiCm4gruAG4gpuIK6ipZSoORcbKCZq3Niim7iKjpoVNcPp0bykk8b9bFTVEFeWkKgBAAAAAH8otT5t9Q3Wan2ytkU3IqNUUbNdueuT5EL7E+wgUQMAAAAA/lCqftjqG6zV+mSrogbRYVbUNErU2Nr5CRaQqAEAAAAAfyhdVJ/t212r9YmKGrTLqKi5IFHjxs5PsIBEDQAAAAD4Q6n1abN/r7k9dxEVNWhXeUB15a5PEq1PvkWiBgAAAAD8oXRRvdm/l4oa2GAkaphRExQkagAAAADAH0oX1ScHDtSqqCFRg3aVWp/ON55RQ6LGR0jUAAAAAIDH5iYndknql6S8tH2mf++28ys3tudGdJitTyRqAoJEDQAAAAB4r3RBnVfMvKCm9QndKFXUbDVufWLXJx8hUQOb7nV+AJuIK7iBuIIbiCu4gbiKDiNRU1H5UDFMeG5yImbhuYir6CjF1Tn3d30iriwZ8HoBCI9cevyY12tA+BBXcANxBTcQV3ADcRUppR2f8ooV59NoZnHpzNzkxGnn97sk7Zd0spsnIq4ixaiocbf1ibiyh4oaWBNPZQ7EU5kDXq8D4UJcwQ3EFdxAXMENxFWklCtqYrHqC2qrW3QTV5FSiqst5V3dnpu4sodEDWx6lvMD2ERcwQ3EFdxAXMENxFV01JtRI9mfU0NcRUepouaM+8OEiStLaH2CTWteLwChRFzBDcQV3EBcwQ3EVXTUbH1y2N6im7iKjlIC8GzjYcI2EjXElSUkamBNLj3+WPN7Ae0hruAG4gpuIK7gBuIqUozWp75GFTVdtz4RV5FSqqjZdHnXJ+LKHlqfYE08lbkknsqwZSCsIq7gBuIKbiCu4AbiKlLM1idXK2qIq0gpxdWmVD2jxuquT8SVPSRqYNOI8wPYRFzBDcQV3EBcwQ3EVXSYrU+uVtSIuIqSUkXNSeWrE4C2W5+IK0tI1AAAAACA90qVDzuxCypqbA8TRnSU4uoJl3d9gj0kagAAAADAe0br0wUzaqxuz41IKVXUHG88o+bAemol1psloRkSNQAAAADgvVLr007M9e25ER2lBOBx7VTE1XB69LykM87NPkn7erguNECiBgAAAAC8V259Up/b23MjApwKmVJFzcMXtj5Jlnd+gh0kagAAAADAe8aMGne350ZkDBrH57akfI37WN35CXaQqAEAAAAA7xmtTw1n1FBRg1btMY7P1LkPA4V9iEQNAAAAAHivUesTFTXoxG7jmERNgJCoAQAAAADvma1P1YmaDZXbVobmJif6e7YqBJlZUVMdU0UkanyIRA1sWnN+AJuIK7iBuIIbiCu4gbiKjlLr03asv6L1aWZxaVuFZE3RRV0+F3EVDe1W1HQ7TJi4smTA6wUgPHLp8cea3wtoD3EFNxBXcANxBTcQV5FSqn7YjvXXqn54TOUEzSWSHu30iYiryOhpRQ1xZQ8VNbAmnspcEk9lGG4Gq4gruIG4ghuIK7iBuIoUM1FTPUxYsjhQmLiKjFYqaqzt+kRc2UOiBjaNOD+ATcQV3EBcwQ3EFdxAXEVHKVFzvnaixuZAYeIqGno9o4a4soTWJ9j0Na8XgFAiruAG4gpuIK7gBuIqOkozas7HBmpdVNvcopu4ioZe7/pEXFlCogbW5NLjJ71eA8KHuIIbiCu4gbiCG4irSDEqana5WlFDXEVGr2fUEFeW0PoEa+KpzOF4KnPY63UgXIgruIG4ghuIK7iBuIqU0kX1ub6aFTVmoqbbGTXEVTT0dNcn4soeKmpg03XOfx7zdBUIG+IKbiCu4AbiCm4grqKj1Pq01TfYbJhwtzNqiKto6PWMGuLKEipqAAAAAMB7pYvqs32DrlbUIDJ6uusT7CFRAwAAAADeMxI1e1zdnhuR0euKGlhCogYAAAAAvFdqfdrs39usoqbb1idEg5mo6cWuT7CERA0AAAAAeK90Ub3Zv4+KGthgtj61UlHT1TBh2EOiBgAAAAA8NDc5EZORqHli4ECtRM33jeOrnb8BGmmloqZiSPV6amWXi+tBi0jUAAAAAIC3BiUVEy/nzvUN7tS4z8OSNpzjg5Ku6sXCEGhNK2qG06Nbkh50bvZJGnZ7UWiORA0AAAAAeKtp5cPM4lJe0ppx6gZXV4QwaKWiRpK+YxzH3VkK2kGiBgAAAAC81eoF9T3G8YhLa0F4tLI9tyTljOO4KytBWwa8XgBC5WteLwChRFzBDcQV3EBcwQ3EVTTsNY4bXVDbqqghrqKhle25pcpEzVO7eD7iyhISNbAmlx4/6fUaED7EFdxAXMENxBXcQFxFhnlBfbrB/axU1BBXkdFqRY2V1ifiyh5an2BNPJU5HE9lDnu9DoQLcQU3EFdwA3EFNxBXkdFq65OVihriKjJ6WlFDXNlDogY2Xef8ADYRV3ADcQU3EFdwA3EVDa22Pt0rqbgj1FPnJif2NrhvI8RVNPS0okbElTUkamDTXc4PYBNxBTcQV3ADcRVBrzy1a/R1J3a/aX5q+WqXnoK4ioaWWp9mFpfOSvq2czMm6ekdPh9xFQ2tVtSYiZqr11MrnY5IIa4sYUYNrMmlx7e8XgPCh7iCG4gruIG4ip75qeUn3aD+34sp1i9pl6RJ289BXEVGq61PUmFOzdOc4xF1MMCVuIqMlipqhtOjp9dTK8ckHZbUL+lJkr7b7pMRV/ZQUQNr4qnM1fFUxq1vkxBRxBXcQFzBDcRVJN3gJGkk6TluPAFxFRmttj5JFubUEFeR0WpFjWSh/Ym4sodEDWy62vkBbCKu4AbiCm4grqLnoHF8pUvPQVxFQ6u7Pkl2dn4irqKh1Rk1UuVA4XiHz0dcWUKiBgAAAOjMIeP44PzU8n7PVoKga6f1ycrOT4iEdipqcsZxxzs/wQ5m1AAAgNDLjiRi7z70pNddtHXymuwH3/ZLibXsvV6vCaFwqOr2lSrsygO0q53WJ7Oi5oa5yYnYzOJSvtYd5yYn/h9Jr5K0MLO4tNTlGhE87SQAbe38BAuoqAEAAFHw3OtOPPj6S8+cGJP0n71eDEKjVqIG6EQ7rU8PSzruHB9QYfDrBeYmJ66W9B5J45I+Mjc58Y65yQmu/6LFbH2ioiZA+IcKAACi4Drj+EbPVoGwOVh1+ypPVoEwaLnywameaWVOzZgqr/d+W9IH5iYnqhOMCC8qagKKRA0AAIiCIeN42LNVIGyoqIEt7bQ+Sa3NqXlxjXO3SfrCszZWeR2MhnYqasxEzVPWUyvkCjzE//gAACAKzETN5dmRxJ669wRaR6IGtrTT+iS1VlFjJmrM+TSJ0cc++xcve/hffqjVxSF41lMrMbWRqBlOj56U9Ihzc5eoEPQUiRoAABAFQ1W3+TYZNlQnariwQafaaVGRmlTUOPNprnVunpb0GkmvlXOx3qf8wZGT35ybm5yY7Gy5CIBB4/jccHp0p4W/caX9aT218ivrqZXsemrlF2w9ZtiRqAEAAFFQnai52pNVIGyqZ9RQUYNOtdv61Kyixqym+fzM4tLWzOLS30galfSAJMUK14K/3+5CERjtJv+kyoHCcRuLWE+tXCrpj1SI03fZeMwoIFEDm+5yfgCbiCu4gbiKnouqbrtRUUNcRU8vWp+Iq2hot/XpXknbzvFT5iYn9lX93kzU3FE8mFlc+pKkm/PSeefUtXOTEwfaXCuCwWx76iRR08nOT7Ver14kqd85vnQ9tVIdq6hhwOsFIDxy6fEtr9eA8CGu4AbiKpJcr6ghriLJ9dYn4ioy2qp+mFlc2pqbnPi2pKc7p66X9BXjLmai5tNVf/v9ucmJe1Vumbpe0t1trxh+Z8ZUs0HCRV21PtV5vaoean2ppM12HztqqKiBNfFU5up4KkMpOawiruAG4iqSXE/UEFeRVJ2ouWJ+arm/5j07RFxFRidtKjXn1MxNTjxJ5QTOWUlfrP7Drdgu84K83jBiBFvPK2rqvF5VJ2oua/dxo4hEDWy6WvT8wz7iCm4grqKnFzNqiKvoqZ5R06/Ct8U2EVfRYM6oaaX1Sao/p8a8MP7CzOLSBRfpJwcOPGTcrLe9N4Kt5xU1qnq9Wk+tXCzppqr7kKhpAa1PsCaXHv+c12tA+BBXcANxFUmu7/pEXEWLUzlTa7bHVZIeqnG+I8RVZFirqFGd+TSmS84d/5Skn3NuUlETTp1U1JiJmqeup1b6WtwtSlLN16tRSbGqc7aT2aFERQ0AAIgCdn2CbfUGsLLzEzrRSaKmlYqaivk0hobbeyMU2q6oGU6Pbkg67tzcLemKLtdQ3fYkUVHTEhI1sCaeylwXT2Wu83odCBfiCm4grqIlO5Lo04WzRC7JjiSs7jxBXEVOdUwVWU3UEFeR0UnrU0WyZW5yom9ucuKwykmbLUlfqPWHn7xszLxwv35ucoLrwvDppKJG6qL9qcbrFYmaDvEPEjYddn4Am4gruIG4ipYDurD0WrJfVUNcRUv1fJoi2zs/EVfR0HZFzczi0iOSHnNu7pP0ZFVeGH9xZnGpZtJn7eANu7fV97hzc6+oMgyjTmbUSJUDheO17rCeWulbT61cu55aqc4nlF6v1lMrQ5KeU+PPSdS0gEQNAAAIu+q2pyLrc2oQKT2pqEFkdNL6JF3YwtR0Pk3Rub4Bdn4Kt04ranLG8QU7P62nVmKSPibpXkl/0+BxXqja+QZm1LSARA0AAAi7eokavkFGN0jUwCaz9amdi+rqOTWtzKeRJG317f6ucZM5NeHTaUVNs9anZ0l6hXP8s+uplWfWeRwzFr9hHFNR0wISNQAAIOxI1MANpUTNjvInjfO2W58QDeZFdaszaqTKipoXSipeNJ+X9PlGf7jZv5eKmnDrtEorZxxfUFEj6baq22+s8zhmouYfjGMSNS0gUQMAAMKORA3cUJpRc0663zhPRQ3aMjc5EVNlm0o71Q9mRc2rjeMvzSwunWr0hycGDlFRE26dxlSziprqRM1r11MrFbvgradWDkr6QedmXtIHjV+TqGkBiRoAABB2pUTNjmLmh1Vm1KAbpYqas7G8ecFLogbtMisftmYWl3ba+FuzombQOL6j2R9+b/eVVNSEm42Kmrgzk0aStJ5auVrSD1Td/6Ckn6069wJJ/c7x1yR9y/gdM2paQKIGAACEXSlRc2Zg8D7jPBU16IaRqNH3JZ0rnp+fWra69TtCr9O2J0n6tgptTtUazqeRpHsOXP89leP2SXOTE/V2MkMwdVpR87ikE87xXlVWwPyEcbxlHL/JTOjowllJp4w17F1PrfAa2QSJGgAAEHalRM3JXXu/bZwnUYNulBI152M6Jen7xu+oqkE7Oq180Mzi0jkVdt8xbUv6XLO/Pdu/e1vSvxunaH8Kl47iajg9mlf99iez7el3VE4s3iTph43fVSRqnMd8xDhH+1MTJGoAAEDYlRI1Jwb3PaDyt3pD2ZEE3yCjU8aMmjyJGnSj0x2fiu6puv3lmcWlJzr4WxI14dJpRY1U1f4kSeuplSFJtxrn/1rS3xm331i4c98eSc81zn/G+c9HjXMkapoY8HoBCI9cerxp5h5oF3EFNxBXkVNK1JztHzwpaV3Sdc6pYUlZG09CXEVOqaLmXKGi5nvG76zt/ERcRUI3rU9SYU6N2ZJyR7M/KMbV3OTt5owb5tSES8eVWqq989OPSdrlHN89nB69fz21cruk1zvnJu/UobdKeo7KeYZ/G06PFitpqKhpAxU1AAAg7EqJmtMDu4uJmiJr7U/ZkcTzsyOJ12VHErub3xshUErUbMXym6KiBp3r5oJaurCipul8mjp/S0VNuJjvRe3GVa3WJ7Pt6UOSNJwe/bKkLzrnBiX9gi6cT1NkJmoYKNwEFTWwJp7KXCdJufR4dZ8s0DHiCm4griLnouLB5sCeU6rcStlKoiY7knhhXrojVtjl4pmSZmw8LnzNHCbsWusTr1eR0G3rk1kVsyPpzmZ/UIyrN1f+LRU14WImALtpfXrqemplUNKPG+c+ZBzfLumHJOmc8v9pW3pkj0pzheslaqioaYKKGth0sfMD2ERcwQ3EVbSUKmqeGNx7UpYTNdmRxKCkhVh5K9LndfuYCITSjJrNWN611ifxehUF3bY+fVXli+BPzCwunWh0Z0cxrsyKmqfPTU7017k/gsdmRc2LVU5Of0eFLbeLFiUdl6Rdij1lj2Lm9t2fMY6ZUdMGKmpgTS49fpfXa0D4EFdwA3EVOaVEzcbuA9WJmmELj/9WFapoiq6w8Jjwv1JFzWZfflPShvE7axU1vF5FQletTzOLS6fmJiduVWHQ6/tb+ZtyXI1rbnLiIRVet/ZIeoqk+9pdA3zJVkVNXFVtT84uTpKk4fTo6fXUyl+p8F5oWhtOjx4zblNR0wYSNQAAIOxKiZpH9gydkvSY8buuKmqyI4lrJP121enD3TwmAqOUqNkoJGrMb4uZUYN2dNv6pJnFpa9L+nqHz3+PygnmG0SiJiy6qah5VNIpSfslHZD008bvPlTj/gu6MFFzR9VtZtS0gdYnWBNPZRLxVCbh9ToQLsQV3EBcRU4pUfPggcustT5lRxIxSe9W5UWWJB3KjiT21PgThEspUfNI/wWtTzZn1PB6FX7dtj61rSqumFMTTh1X1DgVM2b7UzGx8riklRr3/5akT1adrh5qTUVNG0jUwCZ6qOEG4gpuIK4iIjuS6JNxQX3foasuGCbsJFw68WqVhyvmdxTbMn5H+1OIzU8t71ZhhxPllUou0CwAACAASURBVD//RCy/Jcks8T88P7Vs63M2r1fh1+2uT50w44qdn8Kpm4oaqbL9qSgznB49V+f+t1fdJlHTBRI1AAAgzA5Ihe0nthU7fWL3gW0VWp9OG78/VOdv68qOJA5K+hPj1HvODAzmjNu0P4VbaZDwjrSZj0nTC2NnVPi2WSqMF6C0H63quvWpS1TUhFM3M2qk2omaWm1PRR/ZVP7bzvGnhtOj36v6PcOE20CiBgAAhFmp7Wmnr++UJCXWsnlJ68Z9Oml/eoekJzvHD0n6f8/1DRw3fk9FTbiVknv5whyHIlfanxB6PW99qmJW1JCoCY9uK7W+U3V7S9LH6915OD16/je0Of0Jnfs1ST9R4y4VM2rWUyudVrNGAokaAAAQZqVEzXas76RxvuM5NdmRxHMk/bJx6q2Jtezxs/27zCHFVNSEWylRs1OZqPm+cWxzi26EmxetT6acChfhknTl3OTEUIP7IjjM1icbFTXLw+nRJxr9wZe1feJ3dPpzw+nRkzV+valyfO+RtK+DNUUGiRoAABBmpQuO87H+rhM1zsyb21X+DLUs6e8k6Uz/oFlRQ6Im3MqtT7G6iRoqatAqT1ufZhaXzkv6lnGKOTXhYLui5oNdrKU4oJg5NS0iUQMAAMKsXFHT129eUJuJmuE2Hu8Vkp7nHG9JepPTSqXNXXvMihpan8LNrKjZNM7T+oROeN36JDFQOIxsV9R8pPOllDCnpkUkagAAQJiVEjXn+ioqajqdUfNq43ghsZYtXdyc3LWXiproKCVqtml9Qve8bn2SGCgcRl3F1XB69Jikf3Juvm84PfqghTVVzKmx8HihNeD1AgAAAFxUbn3qG6hXUdNSosZpezIHJP6D+fvHdx+goiY6yomaWN6sqKH1CZ3wetcniYqaMOq2okaSflzSdZLu7X45kmh9ahmJGti01fwuQNuIK7iBuIqOUqJmq2+g2xk1z1X54vsRSZ8zf/nYnkMPGTepqAm30oyabfd3feL1Kvy8aH2qjisqakLE2VGp60TNcHp0R5Xzi5pp9npFoqZFJGpgTS49fpfXa0D4EFdwA3EVKeVETf+ueoma4exIIlacNdPAbcbxUmItu23+8j9861N3GDepqAk3s/WpXkWNldYnXq8ioeetTzXiyqyoefrc5ET/zOLSthBUg8bxOSfh4roWXq+YUdMiZtQAAIAwKyVqzvbvMisfNlSuhNgn6eIWHstM1Hyoxu8fNo4vy44k+ltdJAKnlKg5F8uz6xO65fmMmpnFpQ2V43dQUtyLdcAaz2OqDipqWkSiBtbEU5lEPJVJeL0OhAtxBTcQV5FSStScHthdqqhxqmdabn/KjiSeJukZzs0zkj5ZfZ8fe9UfPW07FttwbvaJD6FhVkrUnK/cnvsxSeec46H5qeW96hKvV5HQ8xk1deKKOTXhYbY99SxR08LrFcOEW0SiBjYNqrLMDrCBuIIbiKvoKCVqNgf2nKr6XTtzasxqmk8m1rLVjyVJg+dj/WZZN+1P4VWaUbNlJGqmF8Z2JB0z7mejqobXq/DzYkZNrbhiTk14mDHV6SDhTjR7vaKipkXMqIE1ufT4V71eA8KHuIIbiKtIKSVqnhjce7LqdxVzapo8TrO2J+XS41/NfvBt90u61jl1WNJqi+tEsJQqarZUseuTVGgfKcbTlZLu6+aJeL2KBC9m1NSKKypqwsOTipoWXq9I1LSIihoAABBmFxUPNnYfqE7UrBvHdStqsiOJyyS9wLmZl7TU4PnMagoqasKrlKg5Xdn6JLmz8xPCzQ/bc0tU1ISJVxU1zTBMuEUkamBNPJW5KZ7K3OT1OhAuxBXcQFxFSqmi5pE9Q522Pk2o/Jnp84m17LFad4qnMjcd23uxuUsKW3SHVylRs9lXs6KmqOudn3i9ioSetz7ViatvGsfXCkHm1YyaZq9XFTNqnG3EUQOJGti03/kBbCKu4AbiKjpKiZoHD1zWqPWpUaKmaduTY/8Tg/ueMG6TqAmv0oyak3356gSg7Z2feL0KPy926KkVVw8Zxwx6DTavKmoavl4Np0c3VU5G7m5036gjUQMAAEIpO5Lok1H5cN+hqxpV1NScUZMdSeyV9ArjVKNEjU7u2nvcuEnrU3iV4urxCytqaH1Cu/zS+nRS5V3L9s5NTnS9axk849ftuSXm1LSEYcIAACCsDkgqllVvnth9YLvq9+aMmuHsSCLmbNttepmkfc7xWmIte48aODG430zUUFETQvNTyzEZiZpH+nastD7NTy0PqDAXpN88f8uegac90rfzeAdLRXB4sevTBWYWl/JzkxOPqpxgvFSVr5MIDrP1yU8zaqTCnJpiFetlknLeLcW/qKgBAABhNWQcb1T/MrGWPSHphHNzj2p/s9dq25Mk6ZG9Q48ZN6moCaf9MhKAZ/tUnQBsu/Vpfmp5v6SvqrBL2FfMnxec2XX0ts3dH5qfWn5Ld8uGH81NTvRL2mWc2vJqLQ7zNewSz1aBbgWlooYWuzpI1AAAgLAyEzX1KhLqzqnJjiT6Jb3SONU0UbN+4HIqasLvoHH8RI3fd9L69POSntHkPm9q8bEQLBUX1DOLS9VVfb1m7srDRXRw+bmihtanFpCoAQAAYdWwosbRaE7N81Suijkm6V+bPeHXL73G/Db6cHYkwY4W4XPIOD5R4/fmrmBXzk8tN/y87bRSmUmY+yR9zfgpum5+atmsvEA4+KLtyUBFTTgEpaKGRE0dJGoAAEBYtZKoMecvVO/8ZLY9fSSxlt1p9oTfPXTlGUnFocWDqryoRzg0TNRML4ydVjneBtT8YvcWSUnneFPSD0wvjN1U/DmvfHEnngGxZXIY+e2CmoqacPBzRY0ZYyRq6mCYMAAACKt2K2pekh1JmPNFXmMcN217Mjwk6Rrn+HCD50YwNauokQrtT8X4u1KV3yBXe6Nx/HfTC2MVbXpbMX1nIF+q7BqR1HCgNQLHLzs+FZGoCQe/JQBNzKhpAYka2FS97SlgA3EFNxBX0dBuouY1qkzOFG1K+pcWnq8YV8dUTtRcIembLfwtgqPZjBqpMFB4xDm+StK/1brT/NTy5ZJ+yjh1e/V9zit/rxR7rnPzhvaWigDwqvWp3vsgrU/h4FVFTSufr2h9agGJGliTS49/1es1IHyIK7iBuIqMVhI1d7fwOB9OrGWbXkAV4yr7wbc9ZJxmoHD4tFJR0+rOT69ToUVOkr44vTB2QTweyvd9VtJPOzdHqn+PwPOk8qHB+yAVNeHgt7gykahpAYkaAAAQVk0TNYm17FezI4lfkDSu2rP7HpT0e20+rzlMlkRN+LTa+lRUM1EzP7XcL+kNxqk/q/NYZqsTFTXh47fWJypqwsHPM2pI1LSARA2siacyN0l8Uw27iCu4gbiKjFYqapRYy75X0nu7fbJiXH2sMlFzRZ27I7jarai5qs59fkTlFrnjkv6+1p0+uXcr9vLTxaIbKmpCyJPWpwbvg1TUhIMnFTUtfr5imHAL2PUJNm05P4BNxBXcQFxFQ0uJGouKcUXrU7i1OqOmqF7rkzlE+H84u0Vd4OuD2+t55Yu/u2R+apkLm3DxauhrvfdB8yKaiprgMitq/BBXpopk4HpqJebiegKLihpYk0uPZ71eA8KHuIIbiKvI6GmiphhX2Q++LWmcpqImfNptfXrx/NRyYnphrPS6Mz+1HFeh3a7oPfWe7Ft/OP6N+anlNUnPcU6NSLqzrRXDzzxpfWrwPmi2PlFRE1xmArBnrU+tfL4aTo9urqdWNiXtU2FG1wHVT3pHFhU1AAAgrHpdUVNERU24tZKo+Yakbef4SZL+dX5q+ZXG739JUvFb5E9OL4x9q8lzMqcmvLza9ameimqHuckJqh2CyauKmlYxp6YJEjWwJp7K3BxPZW72eh0IF+IKbiCuIqOniRojrphRE25NEzXTC2MPqLBT06Zz6qCkD81PLb99fmp5j6TXG3evN0RYUiGuHu7bMZ+HOTXh4tUskZrvgzOLS2dUjtsBFaodEDyeVNS08fmKOTVNkKiBTYMqbzEJ2EJcwQ3EVTRcZBz3oqKmGFdU1IRbKzNqNL0w9g+SbpH0HedUTNLvSvqSygm8dUlLTZ5vcKMvv27cpqImXLza9anR+yDtT8HnVUVNq5+vzIoaYqwGEjUAACCsvGp9Oi7pvHN8KDuS2NPozgicVlqfJEnTC2NflXSzpE8Zp280jv98emHsvJp4qH/nu8ZNKmrCxW+tTxIDhcPAk4qaNtD61ASJGgAAEDrZkUSf2rigtimxlt1RZVUN7U/h0lZcTS+MPaLCVtx/WvWr85L+opUn/MbgtpmouXZ+apmKwPDwatenRqioCT4/xpWJRE0TJGoAAEAYHVB5WOtmYi17rsfPT/tTeLWdAJxeGDs3vTD2FkmvU3nr2vdOL4x9r8GflRzvz5+VVEzW9Eu6rsW1wv+8an1qpGKgsGerQDfM1ic/VtQwo6YJEjUAACCMvGp7KmKgcHi1NKOmlumFsb9SYcbMbZLe3ObzrhnHzKkJDz9WPtD6FHx+jCsTM2qaGPB6AQAAAC7wOlFDRU0IzU8tD0ja59zMSzrV7mNML4zlJOU6ePp7JL3COWZOTXj4cUYNrU/B5/eKGlqfmqCiBgAAhJGZqHncg+c3K2pI1ISHWU1zYnphLN/D56aiJpz83vpERU0wBamihkRNDSRqAABAGPmpoobWp/Aw59O01fZkwT3GMRU14eHHC2oqaoKPipqAI1EDm447P4BNxBXcQFyFnxeJGjOuqKgJp4qKmh49ZzGuKipq5qeWY3Xuj2DxqvWp0fsgw4SDz6sEYKufr4ixJphRA2ty6fGs12tA+BBXcANxFQk9T9RUxRXDhMOp51u+F+PKScycVGFHs4slXa7Kyi0EkyetT03eB2l9Cj5PKmra+HxVsevTemolNpwe7WUrqe9RUQMAAMLIT61PVNSER88TNUXOPByz/Yk5NeFA6xOsWk+txOTz1qfh9OhplYex71JltSJEogYWxVOZm+OpzM1erwPhQlxFT/JocnD/0/7gtw9c/44/SR5Nxt14DuIqEnqeqKmKK1qfwqnnM2qq4oo5NeHjSetTk/dBKmqCbdA4PjecHt3p1RO3+fmKOTUNkKiBTcx8gBuIq+h5Vd+ujR+J9Z/+QUnvcOk5iKvw83pGzcPG+cuyI4n+Hq0B7vJyRo3Ezk9h5MdZIub5i+cmJ7hmDJYDxnGvq7Ta+XxV0f7kwloCjRk1sCaXHr/X6zUgfIirSDIvPsaSR5Ox1SOrVvuWiatI8GJGTSmuEmvZc9mRxGMqfBsdU+FD6LF6f4vA8GJGjfl6RUVN+Hg1o6bu++DM4tK5ucmJEyrEe5+ki1TZDgV/e5px/J1ePnGbn6/Mihpa7KqQHQUA+M3VxvGwpGu8WggCzesZNRJbdIeRZzNqHFTUhI9Xuz41Q/tTcJlJ3LW69/IerU8NkKiBNfFU5pZ4KnOL1+tAuBBXkTRcdftW209AXEWCFzNqquOKOTXh48WMGjOuviWpWGF47fzU8u46f4bg8KT1qYX3QQYKB5eZxL2n7r1c0ObnKxI1DZCoAQD4zdVVt1/sySoQdH6oqCFREz5ezKgpmV4YO61yK0OfpOt6vQZY50nrUwuoqAmuoFTUMKOmARI1AAC/IVEDG/yQqKH1KXy8bn2SmFMTNn5tfaKiJrg8q6hpEzNqGiBRAwDwjeTR5EFVXmBL0lOTR5NP9WI9CDQ/JGqoqAkfPyRqmFMTEnOTEwOSijvC7Ug67+FyqpnVDlxEB8R6amVA0tONU0FJ1FBRU4VEDQDAT6rn0xRRVYOWZUcSfapM1Hh1QU1FTfj0fEZNDWaihoqaYKtoe5pZXLK6w2GXaH0KprikXc7x94bTo169/7WCRE0DJGoAAH5S3fZUdGsvF4HAO6DCltiStJlYy57zaB1U1ISPpzNqHOY35FTUBJtf254kWp+CKijzaSQSNQ2RqAEA+EkpUZPfGXjAOE9FDdrhh7YniYqaMPJb69PI/NRyrO494Xd+HSQsUVETVEGZTyPRXtcQiRoAgJ+UEjU75y7+jMrfMF6bPJqs1xYFVPNLooaKmvDxQ6Lm+yq3XQ2JJGCQvc44ftizVdRGRU0wBbaiZj21Qm7CwP8YAAA/KSVj8tsHHpD0OeN3VNWgVb5M1GRHElQ+BJhTueL5jJrphbG8mFMTeHOTE9dL+g3j1J97tZY6qKgJpsBU1AynR8+q/B49IOliD5fjOyRqYNMxVX4oBWwgrqKl3Pp07uBDkj5t/O5Wi89DXIWbmah5vIfPWxFXibXsKUmbzs1BVV7kI3h2q3AxIUlb0wtjZ3v0vLVer5hTE2BzkxMxSber8LogSV9U7xM1zd4HaUsJJq8ratr9fEWLcB0Dze8CtCaXHr/X6zUgfIiryCm3Pm1d/pCk+4zfWauoIa5Cz5OKmjpxdUzSNc7x4V6uB9Z50vZUJ66oqAm2n5U05hzvSJqaWVza7uUCWngfpPUpYNZTK5dIuty5eUbSd3u9hg4+Xx1TeTvxw5KydlcUXFTUAAB8IXk0GZORqNnevOaYCt8yFr+1fnryaPIqL9aGwPFL65PEt4Vh4nnbk4GKmoCam5y4WNL/Z5z645nFpf/t1XoaeFxScbvwQ3OTE7sa3Rm+YL4WfHM4Pbrj2UpaZ75HMsvNQKIG1sRTmVviqcwtXq8D4UJcRcohFbZVVj4f29revObE6pHVM5I+b9zHSlUNcRV6niRq6sQVA4XDw5OKmjpx9S3j+BohSH5f5aTtA5L+sxeLaPY+OLO4tCPpuHGK+SH+5/l8mg4+X5nvkXyZYaD1CTbd7/UCEErEVXSUqmmUHzgm9RdvfVrl+TQvlvS/LDwXcRVuXlXU1IorEjXhcdA47uWOT7Xi6nvG8ZW9Wgi6Mzc58cOS3mCcesvM4pJX1VmtvA8+qvIg4UtUWf0A//F6Po3U/ucr3iPrIFEDa3LpcS58YB1xFSnlRM3OLvPDoPWBwsRV6Hk1o6ZWXNH6FB5ezaipFVePSNpWIaN98fzU8u4eDjdGB+YmJwYkLUgq7v6WkfSPXq2nxffBR1WeH8KcGv8zK2o8SdR08PmK98g6aH2CNfFUZjCeygw2vyfQOuIqUso7PuUHzW9YviBpyzkeSR5Ndv2NyzP/8nkvuPF//OBPJo8m+5vfGwHkVetTrdcrvi0MD09m1NSKq+mFsR0RW0HzZkk3OcenJb15ZnEp3+D+rmrx8xUDhYPFrKjxqvWp3c/tvI7VQaIGNt3s/AA2EVfRMVw8yG/vfrh4vHpk9bSkfzXu96JOnyB5NDmQPJr8o76BzTtj/Vvvl/SrnT4WfM2r1qdar1cMSgwPTypqVP998PvGMYPWfWxucmK/pHcYp35nZnHpvnr375FWPl+ZW3RfUvde8Nx6amWXpOuMU54katT+53YqauogUQMA8ItyRc32/mNVvzPbnzoaKJw8mrxE0kclzRinX9/JY8H3/LTrk3kxzSyRYPNqRk09zKkJjmeoHD/fVeWuT35GRU1wXCOpuDPXA8Pp0ZNeLqYNVNTUQaIGAOAX5UTN+UPVAwu7StQkjyZvVGGr75dX/WokeTTJ1rbh46dEzYPG8ZM8WwVs8Kqiph6SgMERN46/MrO4tFXvjj5DRU1weD6fpkNUndZBogYA4BelRM3O2SuqK2o+L+m8c3xj8mjyslYfNHk0+WoV5tyUSoLzO/2PGHe5rf2lwud8m6jJjiT47BVcnsyoaYDWp+CIG8ff8WoRHTATNVTU+Jvn82k6dEJScRD6vvXUyn4vF+Mn7PoEAPBc8mgyJmNGzfbmNQ+bv189snoqeTT5JUnPd0799+TR5AMtPPTFkn7WuH1K0pHtzWufM3DgW7/pnLtN0js7Xjz8yDeJmsRa9lR2JLGhwpp2qXCx83Djv4JP+a2ihtan4HiqcZzzahEdoPUpOAJZUTOcHs2vp1aOSXqKc+qwpG97uCTfIFEDAPCDiyXtc45PbZ9+Sq1vq+9QOVHzqg6e4z5Jt60eWV297nf/62b//m/txGLqk/T85NHk4dUjq9VVPAggp2LFbxfUD6qcPHqSSNQEld9m1ND6FBxx4zjn0Ro6QetTcAS1okYqtD8VEzVXiESNJFqfAAD+cLVxfL9Uc9fsv5e00+Hj/4uk564eWV2VpO1T129oZ++q87uYpIkOHxf+c0DlzzebibXsOS8X4zCrv57s2SrQLb8lAGl9Cg6zoiZIrU9U1ARHICtqHAwUroGKGgCAH1Qlai60emT1K8mjyedKuqXNx75P0j+tHlk9b57c2brsM/1777/JuXmbpL9s83HhT75pezIwUDgc/DajhtanAJibnIiJihq4aD21cqmk4uy+05LWPVxOJxgoXAOJGgCAHwwbx3U/YKweWb1b0t02nvDcxnNW+vfe/2bn5suTR5P7V4+snrLx2PAUiRq4xW8VNea30FfOTy3HphfG8p6tBvVcokKln1SYk/ZYg/v6DcOEg8GsprlnOD3aafWxV8zXsis8W4XP0PoEm+5XnW/CEVKzQ7s/Ofhrb1wefOsva3boQPM/aPvxD31p9xt/5u7db3i9ZoeYAh9uTStqLLv/3PFbviDpG87tPbpw624Ek5eJmnrvg7Q+hYNXM2pqxtX0wtgplSt7BlWY9QX/qRgkPLO45JdkWiuf20+qvOPivrnJiT3uLgkd8tN8mk6uB2l9qoGKGliTS4+TpIme1z6974Gfc47PSDpi7ZFnh66X9MHLYxsJ58yDkn7L2uPDb3qaqCm+XiWPpj4k6RnO6dskfdDt54brnm0cP97LJ27wPkhFTTh4UlHT5PPV91ROIF2pYFVrREXcOM55tIYLtPK5fWZxKT83OfGoyhfPl6jy9Qz+4Jv5NB1eD5qtT1TUOKiogTXxVGYwnsoMer0O9NSLjePXanboJVYedXboRyV9UVLCOPtTVh4bftXTRI3xevUh4/RE8miy5hRjBEN2JHG5pN81Tn26l8/f4H3QrKghURNA81PLfaqsqDnZq+du8vmKnZ/8z5eDhNv43M5AYf/zTUVNh9eDVNTUQKIGNt3s/CA6qv//vl2zQ7s7frTZoZhmh35d0kdV2b4gSTdoduiGGn+FcGhpRo1FxderL6k8kPMytT+oGP7yLpXbP+6T9Mc9fv5674PmN9C0PgWT2d57anphbLuHz93o8xU7P/lf3DjOebSGWlr93M5AYf/zTUWNOrseZJhwDSRqYNO9zg+iYHZoSJVvDHJuv63Dx9sn6X2S/lCF7ZIlaX0r328Ojr2to8eGryWPJmOqTNT0oo3yXkn3rh5Z3ZH0YeM8MRZQ2ZHErapsv3xTYi272eNl1Hsf/L6k4lyKK7IjiV29WxIs8Wo+jdT48xU7P/lf3DjOebSGWlr93M5AYR9bT63sknSdceqbXq3F0cn1IMOEa2BGDazJpcePNb8XQuQHiwf5vLZjMRVbRt6u2aH/pdmN1l+kZ4eeosJskOcYZ++U9JODse0flfRe59yrJL2zm0XDly5TYZivJJ1YPbJ6Ip7KuPqEVa9XH5L0Buf4tuTR5K+tHln1y7BHtCA7khiUdLtx6v2JtezHe72Oeu+DibXsuexI4iEVvimMqXBBzVy3YPFsx6cmn69offI/X7Y+tfG53Wx9oqLGf65V+Zr+/uH0qKe7V3Z4PfiopB0VikguWU+t7BpOj56zu7LgoaIG1sRTmQPxVMb+zj/wq1JZ43r+so+pvGXyHknv1uxQrOZfVZsdepGku1SZpFmQ9FLNbhz74PYL7sjnVdxm8Ic1O0RJZPiY82l60fZU/Xq1rPK8iaepcjYSguFtKvfoPyHpV71YRJP3QQYKB9uLjOOe7ibWJK5offK/uHGc82gNF2jjczsVNf5mzqfxuu2po+vB4fTotqRHjFOX211VMJGogU3Pcn4QDc8tHtyfv+LrKlQkFKsQflTSTzb868I8mjdK+heVX5DPS3qjZjfeqNmNLUn6lXPTT97Q/q85v49JeqW1/wbwi163PUnG69XqkdWzkszqC9qfAiQ7krhWlTvCvT2xln2g3v1d1uh9kERNQM1PLV8h6Q+MU0s9XkKjuKL1ycfmJicuUnnm3mlJD3u4nGqtfm5nmLC/mWMIvN6aW+r8epCBwlVI1ADoVClRc1f+hqxmN+6SNG/8/o81O3Towj+TNDs0KOk9kv5M5XLNhyS9RLMbC9V3/3b+qhXjJhfR4dPTHZ/qMHd/IsYCIjuSiKnwulNsnbtbhdcVPzKTRwwUDhZzSPW3Jf2Rh2upRuuTv1W0Pc0sLgWxrZZhwv7mq4qaLrBFdxUSNQDaNzt0uZwPHzv52NZ7z//It53fvF3lD41XqXKb3OLfXinpU5J+0Th7t6SbNbtxZ62n+8D2qJmoeZlmh/Z3tX74jR8SNR+VVNzF5XnJo0laCILhNSpU8EmFir6pxFr2vIfraYSKmgCan1p+iaTXGqempxfGTnu1nhpoffK3uHGc82gN3aL1yd/8VlHTKSpqqpCoAdCJ0nyak9r7zcd0qHCBO7uxIelXjPu9RbNDOxU/hTJtcwvk90l6oWY36l6g/+32yx+Q9HXn5h5Jr7DzXwM+0fMZNdVWj6w+Jukzxqmf8GIdaF12JHFAldtv/1liLfslr9bTAhI1ATM/tbxbVUOqpxfGej6kuolHVE4yX+KsGf7hy0HCbWKYsL+FsaKGRI1I1ADoTKnt6dH8weo3hb+X9Anjdqzqp2hHhQGgP6/ZjVa+naQ1Jby8mFFTixljt3q1CLTsNSonPL4v6Tc9XEsraH0Knrep/G21Z0OqG5leGNsWLQN+FjeOcx6toVtU1PjUemrlEpWTZ5uqfJ8JGrborkKiBkAnShU1380fzlb8ZnYjL+mXJH2jwd9/U9KPaXZjzrl/K8yL6AnNDg3UvSeCxg+tT5JkVmOM1L0X/OJVxvF/S6xle7oTTweoqAmQSk49tgAAIABJREFU+anl61Ro5y16+/TCmF8vgmh/8q+4cZzzaA3dYpiwf5mfn74znB4N4gykIlqfqpCoAdCewrbbpYqaz+7cmL3wPhvf0ezGMyX11/kZ0ezGJy74u8buUnl3i0tV2T6FgEoeTfapsqLGk9Ynh9nbfYOzNvhQdiSxV5UtkB/0ai1tIFETEPNTyzFJ71Z5SPWXVTks32/Y+cm/wtD6VDFMeG5yIlb3nug1v3zRZQOVgVX4EBotgyrvsAN06skqfxA8+b7tl9Z/Y5jd2Knz037Gf3ZjR9KHjTO0P4XDFZJ2OcePrx5ZPenVQlaPrD6qwrwHSdqrygQS/OVlkvY5x/ck1rJBGKD4iKRzzvFF2ZHEvkZ3hqd+UlVDqp0WI79i5yf/ihvHOY/W0JWZxaXTKmwtLhWuJdjQwT88n/FnERU1VUjUREQ8lXm2pIykj8RTmZ/0ej0ItOcax18+pb07PXzuyjk1heoeBJtf5tMUmTOXaH/yLzNR+6G69/KRxFq2OEy9iKoaH5qfWt6nyiHV89MLY3d5tZ4W0frkQ3OTEwdVnh+ypcoL0aBhoLA/+e0zVDcYJlyFRE10vEWFbx8PSXp/PJX53XgqY/v//3udH4TbzcZxL3ZYMeNqWVKx4uI6Sc/owfPDXV6V7dZ7vapof+rRWtCG7EiiX9IrjVN+StQ0ex+k/cn/XqpysuP7qpxT45VmcUVFjT9VtD3NLC718outVrTzuZ2Bwv7kx9anTq8HzUTN5euplcjnKWiDiY4XV91+u6Sb4qnMz+XS4ydsPEEuPR7kbwrQOrOixvVETUVczW6c1ezQx1UoS5cK36p/vdbfITA8+ZDR4PWKihr/e57K/esPSfpXD9dSoYX3QXZ+8j/z89LfTi+MeT6kuoW4YkaNP8WN45xHa6irzc/tDBT2J98lajq9HhxOj55ZT62cUKGoYEDSxapMEEZO5DNVURBPZa6WdG2NX71S0hfiqcz1lp7nQDyVOWDjseBThVYjs6LG9XLwGnHFNt3h4kl/dYPXKypq/M/8d/+RxFrWN7NDWngfpKLG/241jj/t1SJMLcQVrU/+5OtBwm1+bq8YKOzGetAR382o6fJ6kC26DVTURIP57dDdKrSPvM25nZD0xXgq89O59PjHW3kwJ/GTqPGrZ0j6tioHviJcrlUhwy0V3rTvk/vf3j3L+c/POf+ZkbStwu5RP6TZoSdpduPBmn+JIPCqv7o6roqoqPE/P8+nqRdXRSRqfGx+anlI0nOcm3lJd3q4HFOzuKL1yZ/ixnHOozU00iyuTLQ++cx6aiUmf86oaSeuqh2T9HTn+LCkC3eWjRAqaqLBTNTclUuP/5qkn5N0xjk3JOmj8VTm1+OpTN3hrPFUpi+eyvwXSd+V9E81fv6rpH+MpzKpRo+DQDPbnu7qaPem9q3JvHie3Tiuym85X1n9BwgUr8p2K+Oq7D6Vd+Z5cvJo8mDvloRmsiOJG1SudNqU9M8eLqeWenFVROuTv71A5c/GX5leGHvcy8UYmsVVRaLG2V4c3jMranJeLaKBZnFlYpiw/1wmabdzvDGcHn3Cy8UY2omragwUNpCoiQYzUfMVScqlx98n6YUql8nFJP2hpPfFU5kLtgyNpzJDKnxz+ZtNnqtP0h9I+p+1HgeBV5mo6YFcevyxXHr8sarTS8bxLb1YB1zj1YyaWnGl1SOr5yX9u3HKSmsorDGraT6RWMuerntPD9SLKwMVNf5mfl66w6tFVGsWV9MLYydVHrS/W9JFPVkYmokbx75rfWrh9cpERY3/+G4+jdR2XFWj9clAoibk4qnMk1QuIduS9I3i73Lp8S+rMG/ELO39GUl3xlOZpxqPcYOkL0iaMO63KumTVT/mbIdJSZ+NpzJxW/9d4Au93vFJ8VTmkngqU/3tzZeN42Qv1gH7kkeT/aqsKnig3n1tqxNXRcyp8S8/tz01iyuJRI3f3Woc+2I+jdRSXEm0P/lR3DjOebSGulqMqyKGCfuP7+bTSG3HVTUqagwkasLP/Hbo31Qu6ZdUmsz9UkkLxunnSLornsq8OJ7K/LikL6pyVsO7JD0nlx5/hfkj6RclfcC437MlfSmeytxq7b8NvDM71C/pB40zPUnUqBB71bNCVo3jZ2h2iHlbwXRYhVlDkvTo6pHVzR4+d624KmJOjQ9lRxKHJT3fubmjyso6v2gUV1JV61N2JEGLik/MTy0fVPk9Li9pxcPlVGsWVxI7P/nK3OTEPkmXOzfPq/L/H79oJa6KGCbsP36cTyO1F1fVqKgxkKgJPzNR879r3SGXHt/KpcffKGlKhTcTqdD3+M8qfBA+5Jw7I+n/zqXHfz2XHq+1y8a2pDlJv6RyQugySf8cT2Wmu/pvAT8YkbTfOf6epwN8C3Nqihc8u1WuGkOw+LJsV1TU+NWECm26knRnYi37iJeL6dATkk45x3tEi4qf3KJy4nh1emGs09J9r7Dzk7+Y82m+O7O45Jvd6TpE65P/+PUzVDfMRA0VNV4vAK5rmqgpyqXH3yPpJSqXnQ2o/KH4fkkvzKXH/67ZE+bS4//deZziP7Z+Se+OpzJjbawb/tPztqcmzKoa2p+CKW4c+6ZsV1TU+JWv255akVjL5kX7k1/5cj5NG2h98pe4cZzzaA020frkP75sfeqS2fpERY3XC4B74qnMlSpfZGxJ+nqzv8mlx+9U4YL8buP0iqSbnZk2Lcmlxz/rPI75N69u9e/hS+YgYRI1sOE/GMd+2oLRrKi5Pnk0yXulx7Ijif2SXm6cCmSixsHOT/50q3Hsm/k0baD1yV/MihrfDRLugJlgfurc5AQt596joibk+PAZbi8yjv9VhWRNU7n0+P0q7Aj1FhXaoV6WS48/1Pivaj7OuqR3GKe4mA42EjWwJnk0+WRVVki816OlXGD1yOpxlb/V2SPpKR4uBwUvV+H/C0n6emIte6+Xi+kSFTU+Mz+1vF+V73Gf8WotXaD1yV/ixnHOozVYM7O49LgqW86f5uFyUODXGTXdYJiwgWxouHVcxptLj5+W9KcW1mBeTD8rnsrEcunxvIXHRS/NDg2qMBy6qOXqKhd9zTgmURM8v6jyPIhPrx5Z/UajO3vgHpXLbm9QCD5oB1zg254MJGr85/kqfyb++vTCWBDnH9H65C9mRU3Oq0VYtqpyFWBSlW3C6KH11EqfKhM1YWl9OiHprArJwH3rqZX9w+nRU03+JrRI1ISbmajxqoz3OyoMTzwo6WIVPpT2bAteWHOjpEHn+D7NbvjhQ+yaCgOs+yVdq9mhA5rdOOnxmtCC5NHkLhUSNUV/5tVaGliTNOocj0j6Jw/XEmnZkcSApFcap4KeqKH1yX+CPp9GinDr09zkxAsl/YTKyX/To5L+emZxqdcXsnHjOAytT1IhUfOjznFS0vs9XEvUXSFpl3N8PCzJjOH0aH49tfKQym1dhyV928MleYrWp5CKpzKXS3qmc/OcpM97sQ6neoYWleB7nnHsh7YnaXbjrCpnidzo1VLQtleqXElwTNIHPVxLPez85B+jKg+v/J6kuzxciw1U1PjPrcZxEOfTSBFtfZqbnLhR0rKkX5P01ho/vyfpK3OTEy/p8dLixnGux8/tFrOS+VmerQJSOOfTFLFFt4NETXiZ82m+lEuPb3q2EhI1YTBuHH/Os1VciNgKpjcZx3+xemS1pflZPcbOT/7xBuP4HxNr2R3PVmIHFTU+Mj+1vFfSDxmngjifRpIellT8t3Hp/NTyYKM7h8Hc5ESfpNtVriyo51JJn5ybnHjz3ORErMl9baxrj8pVTdsKTyU5n7n8I4zzaYoYKOwgURNeXpTxrql2vyov7EE2O3RA0suMMx/u8QrqxZVEbAVO8mjyekkvdW7uSPpzj5bSKK6kyooaEjUeyY4krpT0GuPUe7xaS4uaxZVERY3f/LDKrb3Z6YWxY43u7JGmcTW9MLat6G1t+x9V2PxCks5L+k1JbzN+Uipf9PVL+hNJfzk3ObHb5XWZA+jXZxaXzrv8fJ1q5fWq+v7bzvG1c5MTB+wvCS3yc0VNu3FVjYHCDmbUhFfP59Pk0uOP1fkVF9PB9goVhnpJ0qpmN+7r5ZM3iCuJgcJBNGUcL60eWf2uF4toEldSoVR9S4ULuKuSR5OHVo+snnB9Yaj2epU/q3w2sZb9WqM7e62FuJKqZolkRxL9ibXsdt17w21+mOfXUItxJRXan4qVHFcqPANGLzA3OXG5pHcZp941s7j0+zXu9z5JH1B5V69fkPSMucmJ/2tmcenB6vtbEohBwm3ElSRpZnHp7NzkxD2SnuGceqYKu8qi98xEja/+nbcbVzXQ+uQgURNC8VTmUpV7R7fVo1aVeCpziVTzH6iZqHlGPJXZlUuPn+vFmmCFp7utNIgrqToJODsU0+wGu4r5VPJocp8KH5KLPBsi3CSutHpk9XzyaPLfVf5AeoP8Mp8pIrIjiX5Vtj3d7tVaWtUsriQpsZY9kx1JPKpCO0a/Ch9Ev1fv/lEwP7X8S5J+TLUrvR+T9DvTC2NufUlwq3Hsy0RNK3HliNKcmndKusQ5zkn6L7XuNLO4tD43OfEiFarxXuucfp6ku+YmJ35kZnFptdbfdSluHPt2kHAbcWVaVfl9MSkSNV7xbUVNh3FloqLGQetTOI0ax3fl0uO92glnRDVaBHLp8eMq9+cOSnp6j9aDbs0ODUiaMM54sdtKzbhyFHcVkwoXPZHa6SKAJiVd5BzfK+mTHq6lUVwVmaW7DBTuvXGVP4w+IukfPFxLq1qJK4n2p5L5qeVXqXAR/SoVdu6p/vmPkj40P7XcbA5JJ8+9R4XWpyJfJmrUelxFYuenucmJF6sQF0XTM4tLdWcxziwunXHu/6sqt+5cJfe+LIgbxzmXnsOGVuPKRJW8P/h5Rk0ncWWiosZBoiacvNpm8muqbEWp/l0RL+zB8QKVv7F6QNKXPVhD/bgqVM/8m3GGXQj87Y3G8XtWj6x6ORS20etVEXNqvGXGy18m1rJnPVtJ61qJK4lEjSRpfmr5gKQ/beGuSUlvcWEJP6Rya+83pxfG/FrZ1GpcmRU1oUzUzE1ODKqyuu7/n1lc+mizv5tZXMrPLC79NxW2ly5W3j5/bnJirwvLDETrk1qPKxOJGn/wbeuTOosrE8OEHbQ+hdOtxnHPvh1qUrmzqkJZs1R4YV90f0WwwGx7+rAXbUUtVIStSnq+c5yU9E/urgidSB5N3qzyjICzkv7Kw+W0ElcSFTWeyY4krlPhgkoqXFT5fYiwpJbjSmLnp6JZlb8ZfliFVjczgXurpF9xjt8xP7X8/umFMZtzrW41jv1aTdNOXEWh9WlGUsI5PqlyfLT2x4tL/+zMWRlRofXw2ZI+b3WFAWl96rDi3kzUPGtuciI2s7hEy3kPradW+lX5vuGrRI2FTg5anxwkakImnspcLOkm5+aOpM/28LkPS1IuPV5rxwQy8EEzOxRToRS9yIu2p2ZxJRFbQWFWR/z96pHVRzxbiVqKK4mKGi+Zs2k+lljL9nSIeadajCuJihrNTy3fpMqL7LdOL4z9Y9V9PqrCroM3Stov6Y8lvdriMnw/SFhqK65C3fo0NzlxraTfNk791sziUicXqXep/Jp+s+wnagJRUdNGXJmKLecHVW4592slWlhdqUKSUZIeGU6PnvZyMdU6jCsTrU8OEjXh80JJMef47lx6vJe7lFzn/GezRA3tKcFwo6RrnOMn1Ns2OlOjuJJoq/MNZ1jwvMqVM6brjWPPhggbmsWVVJmoeXryaLJ/9cgqu/O4LDuS2CPpdcYp3w8RNrQSV1LEEzXzU8t9khZUvtj4lKT3Vd9vemHs3PzU8pSkO51Tr5qfWv6J6YWxD1tYw6DK1ZiSjxM1aj2uQtv6NDc5EVOhTW6Pc+orkt7d4cN9SdLPOce13q9aWc8uSb+hQuKwen5SsUosL59VO1RpNa5KZhaXduYmJ/5NlZXMoUzUrKdW3iDpZyT9xXB69G+b3LdPhWqvCUnvHE6PZlp4/COSfl7SHw2nRz/extL8PJ9G6iCuqjyqQrFBn6RL1lMru4bTo5HchIYZNSEST2ViqvwW8g6PllLLmsoD3OLxVOagl4tBS8y2p49pdsOv8yEqdhVzBiDDG+9QYWDjM2v8FD/IfkUB2SVi9cjq4yp/0Nitym9J4Z6fUuGbWqnw7e3HPFyLW6Le+vSLKg/x3ZL0xumFsZrtE9MLY5+V9BfGqXc7s2269fOSivNJ7p1eGPPzBXWrwtz69MOSftw5zkuamllcOt/hY5k7+LWdqJmbnLhM0idUeM97ti58vyt6YGZxaavDNfpZ6CuZ11MrT1PhS4IXS/qb9dTKn66nVmoONF9PrQypUHX+TkkvkvS+9dTK/iaPf60KLeAvlfSB9dTKNY3uX8XP82m6Npwe3VZhA4Giy71ai9dI1ITLq1XYJUMqvIn9Tw/XUiGXHj+rym+nb/RqLWiZp9tyt2x2w9xVbLekp3m4mshKHk0+S4UdNRrZlvT21SOrQepnZ05N71UMnU6sZcNYxRTZipr5qeXDktLGqT+cXhi7p979HSmVP7hfrcr2l07WcLkKF1VFF1TzBFRF69P81HKs7j2Dx3xd+NuZxaVuEv5fVfnLwxvmJicOtfqHc5MTz1ahderWFu4+3/7SAiH0iRpJUyp3KEjSf5L0ifXUSkXSYD21cr2kL6hyh9QhST/d5PHfYDz+XknvXk+ttPrv1bdbc1vEnBqRqAkNp0LlT4xT78mlx+/2aj110KISFLNDT1ahb1uSzktquqOCx2it81DyaLJPhWGvxTaGO/R/2jv3OEfKKu9/Z4brqxBAvCBBAiyYAksH3+HmGMGgvkIaZF2kuYgtl+XNTLi4NGAtiBaCUoItijTkBUWioDQri0AHd7lENNwH5BKwIuxq0OAKcgvggIww7x9P1aQqk3Qn00mnUjnfzyefqTx5qnKmc1KpOs85v6O+442Pd5TGSrOmAwcM0amZR+y4tph6Sv0q4Pt9NKeXDG2gBvgmsJmz/d/AubPtkMkmnwNO8QydPJkuzOU64jzqHQ0rwDfmcKzAkMkmXwH+6jzdCGg7ABFknAyWUc/Qha3mtoPTytvtGLkA+GCbdhyC0n50sytXo4KGzX7vth6fmraaHScEhDpQUzWKG+Mvv3XZB1hRNYqLnXn7AffR/NpgeavAS9UobgQc0zC8P+3rbw1DoEZ0ahCNmjBxFvX06WeA0/toSytK1CPMoTuxh4wDPdu/xKy92DdL2qNEvUOMDlzTR1uGkWOplzGsApaVxkrlGeYPEpJRM794V81/qpXtZ1rOHGyepl6Dv6Ud1zYckPbjc2IyXUhS1wYBWJ7JJtsVwvwhcBSqFGERkJ1MFxKZbPLNmXdby4a9USWaLplMNrmyk2MEnD9T14jYCqj10ZZucRSwgbN9//jU9P1dOOYK6s03dmMGuYCJ0ZFFwNkoTRqXl4Ejxqemb+yCLYOGN1Czy8ToyHpzKEMLIocAmzvbv0ctGJyNCuptC9xVNYo/RgVz3GDMa8DJwLdQQdIPovzqvibHP5h6ea+XC6tG8ZaolXh5FvuCrlHTDaRFN5JREwpiRn5X4CTP0MkVK/VCv+yZgVBH4EPGYJQ91RHf6hN6Tn8H/tXob4QoSAOSUTNv2HFtW+AIz9AgiQh3hFPOFWY9kbWYTBfehRIQdrk6k03e3O7+jobNMlQwGOBDwKkd2rABfr+6NpNNBj1jtFNC1flpYnRkIaoMxaVbYvTeYE9LnRpHxPhH+IM0TwB7DGmQhvGp6eepZwWGseR8uWc7G7USXwMOANwGLRujMmLcIM0fgaVRK3EJMOXZ17vw0Or451Mv89katfA+G6HWqHGQ0ickUDPwxIz8ItSFj/tZFoAf98+iGfGVpzjix0LQMCObAknPyJy7a8wDUlbXPxrLGL7eR1t6gWTUzAN2XNsbdePkCjA+Sr3TT1gZmvKnyXRhCerz3dEZegm1+twRmWzSRt3YuFiT6cIlTgCmHcYBzdl+BX978LAQts5PnwC2d7ZfxH8jPBe8gsJLWs5SQZzDPM9/Duw+PjVtd8mOQSWU111Vo/hBYHfn6esowV+cLk57AI837PIrYEnUSrhyE95A4qFVo7iFd3LVKH4Af3nvBH59v5OqRnHXWcyU0qchQQI1g88/4z+hLK9YqaAKdT6JShUFlVIY6gvTAeaTeDv0mLUn+2lMm3i7im2PGelGRxBhFvSc/lFU5xSXTGms1G4Zw6DwJOCWpLxLz+mRfhoTNuy4tsCOa8uBW4EtneFVwKla2Q7qb1m3GIrOT5PpwpGooJv7f3wTVfK0ri19v4b/JjsN3OaIFM9kx/b4RYjPDEmnp0bClqnlzUq4wtGX6QYl6uf27RwdnGZ4M4xvAA4Yn5oOejn4fBDWTGavv/1b1Er8xX0StRJlVLDmalRJ4QXAx6JWwpv9sQJwgzYb4S+zbDz+tVEr8TSq+cttzthC4P9VjeIimlA1iuvh/14/1WxeCJCMGiRQM9DEjHxj5wSrYqVm65zQN5wAUlhP7GFi0MqecFqHe31/l1ZThe6g5/QN8ZcxTJXGSv/ZL3t6RWms9AYqzd1Fsmq6hB3XNgQuRXVGcTXzngGSWtn+j74ZNn+EOqNmMl1YbzJdmEBpy2zoDL8I7J/JJte5y5KjJ7MP6mbJ5cPA/U7mTjNbFgAXoW6cAB5ynoeR0JQ+TYyOvAd/N51sq7mdMj41vQrlBy6tsmoO8mz/YHxqOoxd6NaF0F3PV43iZvjLb9cqs4taiRejVuIwYPOolTg5aiVWNby+Gn95ZbpqFBc6x98Uv0bXJZ59lqMW3EFlcR3XwsytqN+/PxO1EmHVNpOMGkRMeCCIGfmNqK80ejkf1QIO2uyc0GMemX0KJVRdOagT+zBcjPcXM7Ie7V+sLUIpz7sEIVDTjl+B8q2dne33A3Np3Tl0OJ2bOrlZTAM7OdvrVMbQZ9r1K1BBwPc523GaiwMKHWDHtXcB11L/PQB4APhHrWwPcip3J37lDdS8145r0YbXX9DK9l8ZQCbThS1QJSof8wz/BvhUJpv8r7keP5NNrpxMFw4HHkQtWC1ACWwWJ9OFNPXVaZcksJ+zvRpIZ7LJQRI/7cSvwlT6dBz1m9Lbxqemu70YeT8qQwJUoMZ3TToxOvIP1K8rXgNu6fL795tO/KqR0AVqgM+h9GdA/W3ubjXRCa604ieosvAIqtxzX5TvHEm9vPcxoOg53uNVo3gu8BVn6NyqUbwuaiW832cYjLKnufiVi4gJI4GawBMz8ktRPxyzlXIsr1ip1+bBpJZUrNQrbUwL44k9uJiRT6HaJq/LSe4P+Feb+kKbfgXKt9z2neJbHaDn9CRwBf4LgE44ozRW+tPs04JDB34Ffp0areUsoS3suPZOVCD1PZ7hK4HjtLI90KVzHfqVN2V9GWsLT75mx7XzgLO0st1RZ6N+MpkuRFA3ODt5hq8Hjsxkk7N1M2kbR1z4vMl0oYS6MYqgMmaumGXXbCabHKhAfod+5b2x23kyXVg/k02uajk7oEyMjmyA6ijo0i0RYS/eErpmgsLeDONbxqemBzJw2ooO/aoRG1VyvgjYYWJ05K3jU9NzOV5fcVppe8/BF88SjGlJ1Er8tWoUc8CJztCyqlG8Fb+I8CVNjm+hMnr+AXU+Ox9/eTkMQKBmjn7l4i19GvSA8zojpU8Bxsmk+QGzB2murliptjsn9IqYkX+nU441ExKomQ/MyELMyJeBn7HukejrMWt914ho068gpMJ2vUTP6Qv0nH4ScDPrHqR5gAHsztOBX4Fa+XI5Ws/pm7ecKbTDBPUgzZvAKcDnBj1IAx371ROzvL4RSlPlOjuubTo3y+aVr+EP0pwFfLqbQRovmWzy5yitvna6zT0DnN4LO3pJh371B8/2EuDmyXTh7T0wq9f8I/Xrlz/Rm8YGnQRqgpBh3FU69Csf41PTf8MvrDvoJef7UO/s+DKwzuWZDt4yvQNRgtRudtZfUZ3EfEStxGv4gzmHV41i47VZ4AM1c/ErD09T7/D3rqpRPGCOxxtIJFATbL5IvUPCKtTqW+PjP4ET+mLd2uzgPGbCG6jZOWbk1285U1g3zMgmwE/xt/h7meb+0+pRQF1sB4F2/Aoag4BmRLqKzYCe091A8LdRK2KgLh468ZN7gSMcHZdBo12/AriRevbDOwjOd2PgsOPavvg1AD6jle2JEAkHd+JXd6L0ef7I2t+tZz3zDgTusePajmsdIWBMpgu74b/ROCaTTZqZbLKnGUGZbPJxVAnLpahARbPz1aPAYZlschCFYDvxq8fwd//cB1gxmS4s7rZRPcab3XDZ+NR0L0rVfov63QPYamJ0ZE35ryMuvNR5uhqY7sH795tO/KoZYVp89Z63fhS1EnPKColaCRv4hfN0EfA9z8tXRq3ES2vvBVErcQt+YeFGrRpviWxQxdDn6lc42js/9AxdVDWKb2k1P6xI6VNAiRn5HfGv+pxUsVJBX7W+f7YJFSv1QszIP4Xq/rABKhD1m14bNjSYkR1Qqz7elY0CcAhm7bn+GDVnZvUrB7er2CbA21CpkuvaVSTU6Dl9a+DfqXeMAxV0+fSglTDNgXb9itJY6RU9p5+I0lQBSOs5PVcaKw1U+US/sePaRvizr36ile1/75c9PaJtv3KCU8c7Dx92XFsPpTt3ijsduM+Oa4cFVWh5Ml1YD1Vq6wbJf47T2nY+yGSTLwH/d77eb55p268y2eTqyXThs6jSlLOd4W2BuybThaMy2WS32lv3jInRkV2AvZ2nbwCX9eJ9xqem35gYHXkA+IgztBv1zJkR6gvad49PTT/duH8IaNuvWvAIcIizPbCBmqpR3Aq/aHS37rcuAT7qbG/cMD7bfvs628dWjeLZUSvhCg0HPqOGufuVi4H6XN6GysL9MiqJYWiQQE0HxIz8dvhr6r0a7RaaAAAS/ElEQVQ8WrFSbd0Ix4z8u4HXK1bq2RavL0DV4m7gDN2HWiUKNBUr9frsswB1YnfbdOpIoKY5ZmRrYCFmrb0TsRn5OEq80VuW8W3gVMzaIIkm+mjbr8zaaszIo8BezoiOBGrWQs/pe6GCNN6a3yuAZaWxUl91ruaTDs5XLtcBeSCFuhHN6jl9t9JYaWC/W+uCHdfeBmyule11EYT1ZonWGDwB6llZB79qila2/w6case1h1ArsRsBmwF5O64ZwDcDmIW0HNjV2X4NON7RkRHmSKd+5fzdz5lMFx5GlXBsgrpRvHoyXfgAqjV5kDMh057t68enpnvZgngFzQM1oS57gq6cr2bMqJkYHXk7Snfl5PGp6doc36uXHEv9nrgYtRKPdum4P0NpRnmvt+6OWomHZ9nvBtT161bOvgcB1zivBT5Q063fwaiVeLZqFE8FLneGTq4axSujVqI0035hQkqf2iRm5A9GdVa6vcXjf2JGPuMEWVodY2HMyH8Vlar2p5iRP6HF/EOpd0p4E0hXrFSQf1ABiBn5bWJGvh2dizClSvYGM5IEfgdUMCNnzFjGY0YWYEZORolOu0GavwGfx6z9yyAHaaAjvwK/b41iRuQc50HP6cegzlfuRcMbwEnA0cMUpIGO/YrSWGk1qszU1VFZTHDKTucFO67thNIkeMKOa5c57bXb3bcxS/R0rWw3drMYeDr1q9nQyvZVqNbTbor7QuA84Co7rv2vbr3PXJlMF7YGzvEMnZ3JJn/XL3vCxrr6VSabvBFVEubVQ/pX4Dvdsq3bTIyOvBXVfcel19nk3tX/JY4NGwOf8IyHMlDThfOV73p+YnRkzbXqxOjIYtTf9mjgqonRkUWNOweBqlF8P/6sxq6JVjutuxuzwWY9vrOfd4HeWwbo/bwCWfrU5d/BHPXuWOsBl7jtzoeBofmPzoWYkd8C9cWaSfNifeAi4LKYkV/r4jVm5DdFrcie6RxnfeBC4Hve+TEjvxlwgWfXCytW6sE5/yfmh21oT5BUAjUzYUY2Rp3YN0B9R88BrsGMrC0qreb+ECXO6X6f/wR8BLOWmxd7e0+7fgVwl2f7aOBnmJFBEuHsCXpOX1/P6d9Frcy7mXrPA58ojZUudIIQw0YnfgVAaaz0e+CrnqGz9ZzetZvyIGPHtQWoG6YtnKFjgV/YcW2rNvf1ZomuQJXIhJGO/Wo2tLL9AOoG8g7P8FLqbV6DwAWorA1QJTff7KMtYWSd/SqTTdqoMldvyVxmMl1Y2mKXfnM44P5uP44q3+4lPkFhJ9jwMcANhP62B23Bg8Jcz1dPAq6Wy5Y44s8ToyOjqOsxtwphfyAxh/fpCVWjeDCqQ907nKGnURnH3eRS6qK4f0FpSLbDZajFNIB9qkZRqxrFDagLbK/G3zkwSHTtdzBqJd5EBarcReelwFHdOPYgIIGa9jgXcBXznwd+1fDwrhodA/wiZuTXXLw6ejP3oAQBGzkauN0z/2vUv4RPoerxwoYEambmdGD7hrGDgTsxI9utGTEjUZT/fdYz7x5gCWbtvl4bGVCuwn8xegBwL2ZkpxbzQ4+e098O3IJ/xegRYElprNTrC+AwMkG9C9RbUOWFw8DhQLJhbC/gfjuu7d5kvpe1skS1sh34LNEgoZXtp1GaBVlUVtdBWtn+S3+tUkymC/sBn/EMLctkk11JfRe6gyOgPIJfEDc7mS4EsaHDzaissWeB7PjUdK9b0/8OeMHZ3gLYjiEoe+oGzmfjLRNaPDE6YgFXU9dkeQk4YHxq+vZ5Nq8lVaO4sGoUzwb+jXpA7hXgSI8WTFeIWokq8E/AlUDK6ezUzn5P4fe9ZcC7qScN/NnJvAk9USvxGKpVuct5VaM4iJ3sOkYCNbMQM/Ifwq+4fUzFSu3tfQDvQ30BXfYC7o8Z+d1jRv6TKI0ZzfP6BP62bHsCD8SM/DL86W0nVaxUT9pZ9pky9SjxdjEjv8lMk4cKM6LhF8ryrqC+H1iBGUliRpaiUkqXeF7/PrAPZm14dVlUmdcI/hN6HLgPM7Jff4zqH3pOd1OP9/YM/xRY6mSHCB1SGiutwn+e/rSe00f6Zc98YMe1zYFveYbuQQVcQF04/sqOa2Mt9m3MEv2uVrZ/3RNDQ45Wtl/XyvYyQNfKdiAybSfThY1Rnatccpls8pf9skdojaNJkwFWOkPvA77QP4uaMz41XRmfmv4iqrtNzzPvxqemV+Mvf9oDtcjjIoGamfEuvv4I/zXs48Ae41PT+fk1qTVVo7gpSjvmS57h/wL2dDoudZ2olbgxaiWOjFqJFbPP9uEt+xuj3j4cAqpP00POASrO9haoYG7oCb2YcMzIL0S1KZyuWKkrZ5vfsO/6qNUrlxtpcsKuWKlXY0b+c8BDKMdZiLp4LaL+xm5A7DXg2IqVusrRpnkQlR68ECUY5a1bvInup98FgoqV+lvMyP8W2NkZOiVm5P/QwSF+PUDlYHXMyG6oz/o+zNrapSZKh+YSVFkcqHTMvYHPO+MboJTPb0bdJLnz/o662Lq46XGHDbP2BnAaZuRh6iKcESCPGTkd+EaY/k56Ttfxd29y2RL4CvVVrdWo0suvD2mpU9cojZWKek6/HJURCXCRntMLpbHSypn2CyKO7sw2wO0zZLl8nXpqeBWl3bAndfHyDYEr7Lj2IdTChJf98GeJntk964cTrWz/d79t8HAGKgMBVFbCqX20RZiFTDb5h8l04SvUFzPMyXThmkw2+WQ/7WrG+NT03+bx7VYAH3e2j6d+vnsG1RFRaI03ULOlZ/sm4IjxqekX59mellSN4k6o+zhvwONm4NColXih+V59pYDSl9oRVQ54mue1QOrT9IqolVhZNYoZVFMHgM9XjeIVUSsR6oWB0AdqABMYBUZjRn4xYFSsVLviqidRL81ZCZxQsVJNb3Cc8YmYkS+hUv42p16PD+oLdVDFSj3gmX9BzMg/ytqdel4Djm/1XiHhEeqBmk7Lu76MCnINBmZkA5Qekds29HLMyHLMWuNFyJH421GmMWtvOvNt6p16FjkPUKnBn8Gs3d7D/8FgYtauwoyUUdpQ26DSRc8FFmNGjsasDdxNtRc9py9CrTAYbUx/GTi8NFaannWm0C5fRKXHvw3V+vZaPacfVhorBeaidCYc3ZjTUN+JBcCtdlwb1cr28w3z9sTf8vhErWy/DNxixzW3Q8ouzmvH4c9AbeQkZ18hBEymCxr+G4fTMtlkIMqxhBn5DkqsV0eVfVyIv9RnGPFmOnzIs33j+NS0lGnOzCNNxs4FzgzS365qFD+B6pwU8QyfD/xr1EoExk4vUSvxZtUoXkI9o/WjnpeHLaOGqJW4qWoUr0WVkoESFl7c7XK1IBHq0qeYkd+Y+ocJMA7c5IgDz7bve4CzPENmxUrNuuJQsVI3o9r7PeYZvgNY4gZpGubf4sz31nh+tWKlwl6W8It+GzAvmJF3Arfhv9E5GrgdM/Juz7wtUCVxLhdg1uo/fmbtblSZk3e1+iGUHs3tXbc7LJg1V4Sz6BkdRen9bNsfo+aOntM3Q2X4tROkeRzYXYI03aU0VnoWf/bAJ4H79JyutdglMDjdgn6Mapvq1rt/DFhhxzXdM289VFapO2calTIOrMns2AsVDJ2N0GaJDjHLqWd23kW9haoQYDLZ5Cr87a8PnEwXhj1Qc3+LcSl7mp0HAbf19kpgdHxq+vQgBWkcVlLXo3kN+GzUSpwW1CCNhxzK3kaGLlDj8AXqAtYa8H/6aEvPCXWgpmKlXkVdRN7oGf44cF/MyO/SfK81XEj9C/0oHQhGVqyUe/F6GiqFct+KlXq6jflnACcC32j3vQaYy4F/cf7t9PFQH+ztHDOyBPXj/+Emr+4J3I8Z2cN5blFPGf0j/iChc7zaU6iMmxOBU4APY9YCl64cOMzaM6ibUG8Zo9JuMSN7N98puDiBgHtRJSUud9L8u3I6sEdprFSebzuHhCtQAvAuOwL36jn9gObT+48d17ZFLR4c2uTl7YG77bj2aef5CcAHnO1XgRO0su3L9HQyZA5GZQR+n+Z+aAFHNO4rDDxfQGmePAekM9lkr0VfhS6RySbvwt82+LuT6cLanSWHh6eAPzeMrQRu7YMtA8X41PRLKG3ArwO7jU9NX9Nnk5oStRJ3oO7JqsCHo1biqj6b1BZRK/E88JMmLw1loMYRZz4T1V1wn6iVuHGWXQaa0Jc+VazUSzEjfxCqBMqtjd8BuCdm5I+sWKmfNe4TM/Kfwp8Gmq5YqY6UtR0R4PNnnVif/wrqJDcUOOVn4e2WYkY+i7oI2sgZWY3KfngdpUu0CKVL9CvMyHeAf/bsfTxm7RWaYdZeA77bI6vDi1l7HViGGXkQuAi1CrwlcCtmZGD0fZwAwFXU2+CCOm98uTRWCvqqUOhwtH6+pOf0R4AfoIL7mwDX6zk9cHpAdlzbGyUm7dURuASV4Xg58FZUJ6tr7bj2bfznpbO0sl1pdlytbL+JEtTvSAdOGGwccdqLJ9OFKzLZ5ECXkg4pBnAQqqvpNqjr5FP6aVC/GJ+aXj0xOrICv4jwzeNT06/2y6ZBYnxq+g78zS8CSdRKXFo1ildHrcRL/balQy5h7ZbUQ6VR08BFwMVhLnlyCX2gBqBipd4Evhwz8g+jUsjegrogvS5m5H8ANGa7eNsdf69ipe6cH0uFgcGM7Eu93Wwj2wBHeJ7XgEMxa//h7FtC1clugdIx8pZPXI9Zu6Hr9goKs3YpZuQ3wLUoscD1UCf8XTEjmSa6QfOKntP3pLVWwJbAMdTLUFYCR5XGSoFcvRomSmOla/Sc/jiqLGhb1Gd0DrBYz+lHlcZKzQOv84SjR7McFRx3f/dXARmtbF/mzLFRaf7bO697u8E8hr/rkyCsQYI0g0kmm3x+Ml0YB37oDH1hMl34USabfLifdvWRxkCNlD2FkAEM0hC1EiuqRvEB4H97hocyowYgaiXa1ZodeIYiUONSsVLXxoz846iTr9uloDFC6eVZ2tOAEBStanzDyFLa8w0b+BRm7Yk1I2btNqcD1PWo9pguK1FlTYKf7vqVWbvDKUu7jvqP3jHAzpiRfTFr/VxB25X2/OpJ4KDSWGkwygCDSVf9qjRWekjP6buhgrD7OMMHA+/Vc/repbFSPztKfAdVxuTyNPBPWtleswihle1HHXHgq6l3P3FZppXtjrJKh5hh+h0U5o9e+dWVKN28fVCZvtnJdGHpkJaxef/Gb6I0ucKOnK8Gh4tR5cWg/PN/+mjLbIhfdYlQa9Q0o2KlSijx3tvamH5yxUo912OTQkPFSr1esVKhT0PrgBuAPX1BGhez9juULtG1ntEvYdY6aVM+FPTEr8zaH4EE/lKNB/ocpGmX24HdJEgzN3rhV6Wx0l9Qrau95YmPAf3uBOXNCn0A2M0bpHFxOj7tjz975jKtbBcb5wrNkd9BoRf0yq8y2eRqYBkqww5gJ5TW1jByJ+B2vbtxfGr62X4aMx/I+WqguJp6udOdQc4qEb/qHkOVUeNSsVLPxYz8J4EDgfe2mPZwxUrdNI9mDTwxI78NQMVKDUM6XoH6hU0zHgXyTnvt5pi1VzAjh6D8cAGebipCnZ75lVl7FTPyOVTHgv2Bk7t6/HXjXpQAcCueAK4vjZUku2GO9MqvnM/mRD2nP4TSeDmm3zo1WtmesuPaYiAKHKeV7ZYBSa1s/x0Yt+PaDUAM1R1KaJMh+x0U5ole+lUmmyxPpgsWqmz71Ew2GfoARTPGp6ZfmhgdWYpqz91OJ7uBR85Xg0PUSqysGsWPAPsS8PsF8avuMZSBGlgjZiutQrvLNs6/4f9imrXuCKepQE6gT7gBoHd+pQSEv4UZ+faMQbV5ojRW+jXw637bMST09HxVGitdruf0K0pjpb77lcMZwOp2Oy9pZfuXwC97a1IoGZ7fQWE+6bVffcXJrhlqxqemy8AwdUmU89UAEbUSvwe+12872kD8qksMbaBG6D4VK3VXv20Qwse8+FUAgjTC/DIffhWgII3bmUnoMfI7KPSCXvuVBGmGEzlfCb1A/Kp7DJ1GjSAIgiAIgiAIgiAIQlCRQI3QNWJGfoeYkd+h33YI4UL8SugF4ldCLxC/EnqB+JXQC8SvhF4gftU9JFAjdJN3Og9B6CbiV0IvEL8SeoH4ldALxK+EXiB+JfQC8asuIYEaQRAEQRAEQRAEQRCEgCCBGkEQBEEQBEEQBEEQhIAggRpBEARBEARBEARBEISAIIEaQRAEQRAEQRAEQRCEgCCBGkEQBEEQBEEQBEEQhIAggRpBEARBEARBEARBEISAIIEaQRAEQRAEQRAEQRCEgCCBGkEQBEEQBEEQBEEQhICwYPXq1f22QRAEQRAEQRAEQRAEQUAyagRBEARBEARBEARBEAKDBGoEQRAEQRAEQRAEQRACggRqBEEQBEEQBEEQBEEQAoIEagRBEARBEARBEARBEAKCBGoEQRAEQRAEQRAEQRACggRqBEEQBEEQBEEQBEEQAsL/BzLtgH3E79G+AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.axis('off')\n", "for i in range(unanchored_chain.shape[0]):\n", " data = df['volume'].iloc[unanchored_chain[i]:unanchored_chain[i]+m].reset_index().values\n", " x = data[:, 0]\n", " y = data[:, 1]\n", " plt.axvline(x=x[0]-x.min()+(m+5)*i + 11, alpha=0.3)\n", " plt.axvline(x=x[0]-x.min()+(m+5)*i + 15, alpha=0.3, linestyle='-.')\n", " plt.plot(x-x.min()+(m+5)*i, y-y.min(), linewidth=3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The discovered chain shows that over the decade, the bump transitions from a smooth bump covering the period between Thanksgiving (solid vertical line) and Christmas (dashed vertical line), to a more sharply focused bump centered on Thanksgiving. This seems to reflect the growing importance of \"Cyber Monday\", a marketing term for the Monday after Thanksgiving. The phrase was created by marketing companies to persuade consumers to shop online. The term made its debut on November 28th, 2005 in a press release entitled “Cyber Monday Quickly Becoming One of the Biggest Online Shopping Days of the Year”. Note that this date coincides with the first glimpse of the sharping peak in our chain.\n", "\n", "It also appears that we may have “missed” a few links in the chain. However, note that the data is noisy and undersampled, and the “missed” bumps are too distorted to conform with the general evolving trend. This noisy example actually illustrates the robustness of the time series chains technique. As noted before, we don't\n", "actually need “perfect” data in order to find meaningful chains. Even if some links are badly distorted, the discovered chain will still be able to include all of the other evolving patterns.\n", "\n", "One final consideration is the potential use of chains to predict the future. One could leverage the evolving links within the chains in order to forecast the shape of the next bump. We refer the reader to the [Matrix Profile VII](https://www.cs.ucr.edu/~eamonn/chains_ICDM.pdf) for further discussions on this topic." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "And that's it! You've just learned the basics of how to identify directional trends, also known as chains, within your data using the matrix profile indices and leveraging `allc`.\n", "\n", "## Resources\n", "\n", "[Matrix Profile VII](https://www.cs.ucr.edu/~eamonn/chains_ICDM.pdf)\n", "\n", "\n", "[Matrix Profile VII Supplementary Materials](https://sites.google.com/site/timeserieschain/)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }