jidt/course/Module10-InformationStorage/AISSyntheticExamples_Soluti...

283 lines
58 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "fe8e1d06-f91e-430d-855b-b4f618232057",
"metadata": {},
"source": [
"# Module 10 -- Active Information Storage -- Synthetic examples\n",
"\n",
"In this notebook, we explore the AIS in several synthetic time series.\n",
"\n",
"## 5. Active Information Storage with JIDT\n",
"\n",
"In this activity we will write some simple code to calculate AIS on sample data.\n",
"\n",
"1. Start by opening the AutoAnalyser and selecting Active Info Storage. Select a Discrete estimator, data file `2CoupledBinaryUseK2.txt`. and tick `Add stat. signif.?\"`. Click `Generate Code and Compute`.\n",
"2. Copy and paste the the generated code into the cells below.\n",
"3. Replace the loaded data in `variable` with the following line:\n",
"``` python\n",
"variable = [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];\n",
"```\n",
"This is the first example plot you tried to predict the next value of in the activity above. You can plot the data if you like with the code:\n",
"``` python\n",
"import matplotlib.pyplot as plt\n",
"plt.scatter(range(1,len(variable)+1), variable, marker='x'); \n",
"plt.ylabel('x(n)'); \n",
"plt.xlabel('n'); \n",
"plt.axis([0,20,0,1.1]); \n",
"plt.grid();\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "9c419f90-69df-439b-b2d2-986335b07d65",
"metadata": {},
"outputs": [],
"source": [
"# Paste the import and JVM startup lines here:\n",
"\n",
"from jpype import *\n",
"import numpy\n",
"import sys\n",
"# Our python data file readers are a bit of a hack, python users will do better on this:\n",
"sys.path.append(\"../../demos/python\")\n",
"import readIntsFile\n",
"\n",
"if (not isJVMStarted()):\n",
" # Add JIDT jar library to the path\n",
" jarLocation = \"../../infodynamics.jar\"\n",
" # Start the JVM (add the \"-Xmx\" option with say 1024M if you get crashes due to not enough memory space)\n",
" startJVM(getDefaultJVMPath(), \"-ea\", \"-Djava.class.path=\" + jarLocation, convertStrings=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "31d1ff27-5047-4da2-816b-5c770176789b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"AIS_Discrete(col_0) = 1.0000 bits (null: 0.0475 +/- 0.0767 std dev.; p(surrogate > measured)=0.00000 from 100 surrogates)\n"
]
},
{
"data": {
"image/png": "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+OGHRpI5efJkjWPWrl1roqOjG3Zyjchb7kmTJpnvfe97N3U/Tlzv733ve2bYsGG1jmlu621M9b9b/jzGHfWKUXl5uT766CONGDGiyvYRI0Zo7969XvfZt29ftfEjR47UwYMH5fF4Gm2ujam4uFiS6vRDe71791ZsbKweeOAB7dy5s7Gn1uA+++wzxcXFKTExUY8++qiOHz9e41gnrnV5ebn+8z//U1OnTq31x5el5r/WX3XixAkVFBRUWc+wsDANHjy4xmNdqvk5UNs+TV1xcbGCgoJ022231TruwoULSkhIUMeOHTV69Gjl5OT4ZoINaNeuXWrfvr26du2q73//+yosLKx1vNPW+29/+5u2bdumadOm3XBsc1vv6/9u+fMYd1QxOnPmjK5evVrtR2hjYmKq/fhshYKCAq/jr1y5ojNnzjTaXBuLMUbp6em677771LNnzxrHxcbG6tVXX9WmTZu0efNmdevWTQ888IB2797tw9nemnvvvVdvvPGGtm/frn//939XQUGBBgwYoKKiIq/jnbbWkrR161adO3dOkydPrnGME9b6ehXH880c6xX73ew+Tdnly5c1Z84cjR8/vtYfE+3evbvWrVun3/72t3rrrbcUHh6ugQMH6rPPPvPhbG9NcnKy3nzzTb333nv61a9+pQMHDmjYsGEqKyurcR+nrffrr7+uVq1a6ZFHHql1XHNbb29/t/x5jPv1J0Eay/X/cjbG1PqvaW/jvW1vDp588kn97//+r95///1ax3Xr1k3dunWrvN6/f3+dOnVKL7zwgu6///7GnmaDSE5Orvzvu+66S/3799edd96p119/Xenp6V73cdJaS9Lq1auVnJysuLi4Gsc4Ya1rcrPHen33aYo8Ho8effRRXbt2TcuXL691bL9+/aqcqDxw4EB9+9vf1ksvvaTf/OY3jT3VBpGSklL53z179lSfPn2UkJCgbdu21VoUnLLekrRmzRo99thjNzxXqLmtd21/t/xxjDvqFaO2bdsqODi4WjMsLCys1iArdOjQwev4kJAQtWnTptHm2hieeuop/fa3v9XOnTvVsWPHm96/X79+TfZfFHURGRmpu+66q8YMTlprSTp58qR+//vfa/r06Te9b3Nf64pPH97MsV6x383u0xR5PB6NGzdOJ06ckNvtrvXVIm9atGihvn37NuvnQGxsrBISEmrN4JT1lqTs7GwdPXq0Xsd7U17vmv5u+fMYd1QxCg0NVVJSUuWndCq43W4NGDDA6z79+/evNn7Hjh3q06ePXC5Xo821IRlj9OSTT2rz5s167733lJiYWK/7ycnJUWxsbAPPznfKysp05MiRGjM4Ya2/au3atWrfvr1GjRp10/s297VOTExUhw4dqqxneXm5srKyajzWpZqfA7Xt09RUlKLPPvtMv//97+tV6o0xys3NbdbPgaKiIp06darWDE5Y7wqrV69WUlKSevXqddP7NsX1vtHfLb8e43U+TbuZePvtt43L5TKrV682hw8fNjNnzjSRkZHmL3/5izHGmDlz5pgJEyZUjj9+/LiJiIgws2bNMocPHzarV682LpfLvPPOO/6KcNP+9V//1URHR5tdu3aZ/Pz8yktpaWnlmOtz//rXvzZbtmwxx44dM5988omZM2eOkWQ2bdrkjwj1Mnv2bLNr1y5z/Phxs3//fjN69GjTqlUrR691hatXr5pOnTqZH//4x9Vuc8panz9/3uTk5JicnBwjySxdutTk5ORUfvpqyZIlJjo62mzevNkcOnTI/Mu//IuJjY01JSUllfcxYcKEKp9I3bNnjwkODjZLliwxR44cMUuWLDEhISFm//79Ps9Xk9pyezweM3bsWNOxY0eTm5tb5XgvKyurvI/rc2dkZJjf/e535s9//rPJyckxU6ZMMSEhIeaDDz7wR0Svast9/vx5M3v2bLN3715z4sQJs3PnTtO/f39z++23O3q9KxQXF5uIiAizYsUKr/fRHNe7Ln+3/HWMO64YGWPMK6+8YhISEkxoaKj59re/XeVj65MmTTKDBw+uMn7Xrl2md+/eJjQ01HTu3LnGJ19TJcnrZe3atZVjrs/9/PPPmzvvvNOEh4ebr3/96+a+++4z27Zt8/3kb0FKSoqJjY01LpfLxMXFmUceecR8+umnlbc7ca0rbN++3UgyR48erXabU9a64msGrr9MmjTJGPPlx3kXLFhgOnToYMLCwsz9999vDh06VOU+Bg8eXDm+wsaNG023bt2My+Uy3bt3b3IFsbbcJ06cqPF437lzZ+V9XJ975syZplOnTiY0NNS0a9fOjBgxwuzdu9f34WpRW+7S0lIzYsQI065dO+NyuUynTp3MpEmTTF5eXpX7cNp6V1i1apVp2bKlOXfunNf7aI7rXZe/W/46xoPsBAEAAAKeo84xAgAAuBUUIwAAAItiBAAAYFGMAAAALIoRAACARTECAACwKEYAAAAWxQgAAMCiGAEAAFgUIwAAAItiBAAAYIX4ewIAcKuGDBmiu+++W+Hh4XrttdcUGhqq1NRUZWRk+HtqAJoZXjEC4Aivv/66IiMj9cEHH+gXv/iFFi1aJLfb7e9pAWhmgowxxt+TAIBbMWTIEF29elXZ2dmV2+655x4NGzZMS5Ys8ePMADQ3vGIEwBHuvvvuKtdjY2NVWFjop9kAaK4oRgAcweVyVbkeFBSka9eu+Wk2AJorihEAAIBFMQIAALAoRgAAABafSgMAALB4xQgAAMCiGAEAAFgUIwAAAItiBAAAYFGMAAAALIoRAACARTECAACwKEYAAAAWxQgAAMCiGAEAAFgUIwAAAOv/ACOdi+zxn2RdAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Paste the code performing the actual analysis and plotting here:\n",
"\n",
"# Hard code our time series examples:\n",
"variable = [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];\n",
"\n",
"# Plot the data\n",
"import matplotlib.pyplot as plt\n",
"plt.scatter(range(1,len(variable)+1), variable, marker='x'); \n",
"plt.ylabel('x(n)'); \n",
"plt.xlabel('n'); \n",
"plt.axis([0,20,0,1.1]); \n",
"plt.grid();\n",
"\n",
"# Set history length k\n",
"k = 1;\n",
"\n",
"# 1. Construct the calculator:\n",
"calcClass = JPackage(\"infodynamics.measures.discrete\").ActiveInformationCalculatorDiscrete\n",
"calc = calcClass(2, k)\n",
"# 2. No other properties to set for discrete calculators.\n",
"# 3. Initialise the calculator for (re-)use:\n",
"calc.initialise()\n",
"# 4. Supply the sample data:\n",
"calc.addObservations(variable)\n",
"# 5. Compute the estimate:\n",
"result = calc.computeAverageLocalOfObservations()\n",
"# 6. Compute the (statistical significance via) null distribution empirically (e.g. with 100 permutations):\n",
"measDist = calc.computeSignificance(100)\n",
"\n",
"print(\"AIS_Discrete(col_0) = %.4f bits (null: %.4f +/- %.4f std dev.; p(surrogate > measured)=%.5f from %d surrogates)\" %\\\n",
" (result, measDist.getMeanOfDistribution(), measDist.getStdOfDistribution(), measDist.pValue, 100))"
]
},
{
"cell_type": "markdown",
"id": "85cb1f19-8315-4e38-b38c-183ac26a0c27",
"metadata": {},
"source": [
"4. How much information storage did you predict for this example? Did this match the output from the code above? Do you need to change the history length $k$ parameter to be longer than the default of 1 to see the result you expect? You can use the AutoAnalyser to see the line of code to use to change the $k$ parameter to something other than its default value. Modify your code so that you can set any value for the k parameter:\n",
" * Add a line such as `k = 1;` before the estimator is constructed, then\n",
" * Change how the estimator is constructed to:\n",
"```python\n",
"calc = calcClass(2, k)\n",
"```\n",
"5. Repeat for the following examples (you can change the code in the cell above, or copy/paste and adjust in a new cell below). For these you may need to try up to `k=3` to see the information storage result that you expect:\n",
" * `variable = [0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0];`\n",
" * `variable = [0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0];`\n",
" * `variable = [0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1];`\n",
"6. For the last example, you may be interested to examine the results of the statistical significance check to see that we haven't really supplied enough data to properly conclude on a pattern of information storage."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3d3925e8-d81f-4fb2-b2a6-c16b4825c4f8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"AIS_Discrete(col_0) = 0.8113 bits (null: 0.1672 +/- 0.1188 std dev.; p(surrogate > measured)=0.00000 from 100 surrogates)\n"
]
},
{
"data": {
"image/png": "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e11VVaX/+q//0iOPPFLvly9LLb/X33Ts2DEVFxfX6Gd4eLgGDx5c53NdqvsxUN82zV1ZWZkcDoduuummeuedO3dOCQkJ6tKli8aMGaP8/Hz/LLAJ7dixQ506dVL37t314x//WCUlJfXOD7R+//Wvf9WWLVs0bdq0a85taf2++u+Wnc/xgApGp06d0uXLl2t9CW1MTEytL5+tVlxc7HX+pUuXdOrUKZ+t1Vcsy1JmZqbuueceJSUl1TkvNjZWr7zyijZs2KCNGzeqR48euu+++7Rz504/rvbG9OvXT2+88Ya2bt2q//iP/1BxcbEGDBig0tJSr/MDrdeStHnzZp05c0ZTpkypc04g9Ppq1c/n63muV293vds0ZxcvXtScOXM0YcKEer9MtGfPnlqzZo3effddvfXWW4qIiNDAgQP1xRdf+HG1NyY1NVVvvvmm3n//ff3mN7/Rvn37NGzYMFVWVta5TaD1+/XXX1fbtm314IMP1juvpfXb298tO5/jtn4liK9c/T9ny7Lq/d+0t/nexluCxx9/XP/3f/+nDz74oN55PXr0UI8ePTzXU1JSdOLECf3617/Wvffe6+tlNonU1FTPv2+//XalpKTotttu0+uvv67MzEyv2wRSryVp9erVSk1NVVxcXJ1zAqHXdbne53pjt2mO3G63HnroIV25ckXLly+vd27//v1rnKg8cOBA3XnnnXrxxRf1wgsv+HqpTSItLc3z76SkJPXt21cJCQnasmVLvUEhUPotSdnZ2Xr44Yevea5QS+t3fX+37HiOB9QRow4dOigkJKRWMiwpKamVIKt17tzZ6/zQ0FC1b9/eZ2v1hSeeeELvvvuutm/fri5dulz39v3792+2/6NoiDZt2uj222+vs4ZA6rUkHT9+XL///e81ffr06962pfe6+t2H1/Ncr97uerdpjtxut8aPH69jx47J5XLVe7TIm1atWumuu+5q0Y+B2NhYJSQk1FtDoPRbkvLy8nT48OFGPd+bc7/r+rtl53M8oIJRWFiYkpOTPe/SqeZyuTRgwACv26SkpNSav23bNvXt21dOp9Nna21KlmXp8ccf18aNG/X+++8rMTGxUfeTn5+v2NjYJl6d/1RWVurQoUN11hAIvf6m1157TZ06ddLo0aOve9uW3uvExER17ty5Rj+rqqqUm5tb53NdqvsxUN82zU11KPriiy/0+9//vlGh3rIsFRQUtOjHQGlpqU6cOFFvDYHQ72qrV69WcnKyevfufd3bNsd+X+vvlq3P8Qafpt1CvP3225bT6bRWr15tHTx40Jo5c6bVpk0b689//rNlWZY1Z84ca+LEiZ75R48etSIjI61Zs2ZZBw8etFavXm05nU7rnXfesauE6/Yv//IvVnR0tLVjxw6rqKjIc6moqPDMubru3/72t9amTZusI0eOWJ999pk1Z84cS5K1YcMGO0polNmzZ1s7duywjh49au3du9caM2aM1bZt24DudbXLly9bXbt2tZ5++ulatwVKr8+ePWvl5+db+fn5liRr6dKlVn5+vufdV0uWLLGio6OtjRs3WgcOHLD++Z//2YqNjbXKy8s99zFx4sQa70jdtWuXFRISYi1ZssQ6dOiQtWTJEis0NNTau3ev3+urS311u91ua9y4cVaXLl2sgoKCGs/3yspKz31cXXdWVpb1u9/9zvrTn/5k5efnW1OnTrVCQ0OtDz/80I4Svaqv7rNnz1qzZ8+2du/ebR07dszavn27lZKSYt18880B3e9qZWVlVmRkpLVixQqv99ES+92Qv1t2PccDLhhZlmW9/PLLVkJCghUWFmbdeeedNd62PnnyZGvw4ME15u/YscPq06ePFRYWZt1yyy11PviaK0leL6+99ppnztV1P/fcc9Ztt91mRUREWN/+9rete+65x9qyZYv/F38D0tLSrNjYWMvpdFpxcXHWgw8+aH3++eee2wOx19W2bt1qSbIOHz5c67ZA6XX1xwxcfZk8ebJlWV+/nXfBggVW586drfDwcOvee++1Dhw4UOM+Bg8e7Jlfbf369VaPHj0sp9Np9ezZs9kFxPrqPnbsWJ3P9+3bt3vu4+q6Z86caXXt2tUKCwuzOnbsaI0YMcLavXu3/4urR311V1RUWCNGjLA6duxoOZ1Oq2vXrtbkyZOtwsLCGvcRaP2utmrVKqt169bWmTNnvN5HS+x3Q/5u2fUcd5gFAgAABL2AOscIAADgRhCMAAAADIIRAACAQTACAAAwCEYAAAAGwQgAAMAgGAEAABgEIwAAAINgBAAAYBCMAAAADIIRAACAEWr3AgDgRg0ZMkR33HGHIiIi9OqrryosLEzp6enKysqye2kAWhiOGAEICK+//rratGmjDz/8UL/85S+1aNEiuVwuu5cFoIVxWJZl2b0IALgRQ4YM0eXLl5WXl+cZu/vuuzVs2DAtWbLExpUBaGk4YgQgINxxxx01rsfGxqqkpMSm1QBoqQhGAAKC0+mscd3hcOjKlSs2rQZAS0UwAgAAMAhGAAAABsEIAADA4F1pAAAABkeMAAAADIIRAACAQTACAAAwCEYAAAAGwQgAAMAgGAEAABgEIwAAAINgBAAAYBCMAAAADIIRAACAQTACAAAw/h+tRuij7ukdKQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Hard code our time series examples:\n",
"# variable = [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];\n",
"# variable = [0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0];\n",
"variable = [0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0];\n",
"# variable = [0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1];\n",
"\n",
"# Plot the data\n",
"plt.scatter(range(1,len(variable)+1), variable, marker='x'); \n",
"plt.ylabel('x(n)'); \n",
"plt.xlabel('n'); \n",
"plt.axis([0,20,0,1.1]); \n",
"plt.grid();\n",
"\n",
"# Set history length k\n",
"k = 3;\n",
"\n",
"# 1. Construct the calculator:\n",
"calcClass = JPackage(\"infodynamics.measures.discrete\").ActiveInformationCalculatorDiscrete\n",
"calc = calcClass(2, k)\n",
"# 2. No other properties to set for discrete calculators.\n",
"# 3. Initialise the calculator for (re-)use:\n",
"calc.initialise()\n",
"# 4. Supply the sample data:\n",
"calc.addObservations(variable)\n",
"# 5. Compute the estimate:\n",
"result = calc.computeAverageLocalOfObservations()\n",
"# 6. Compute the (statistical significance via) null distribution empirically (e.g. with 100 permutations):\n",
"measDist = calc.computeSignificance(100)\n",
"\n",
"print(\"AIS_Discrete(col_0) = %.4f bits (null: %.4f +/- %.4f std dev.; p(surrogate > measured)=%.5f from %d surrogates)\" %\\\n",
" (result, measDist.getMeanOfDistribution(), measDist.getStdOfDistribution(), measDist.pValue, 100))"
]
},
{
"cell_type": "markdown",
"id": "ed0610bb-cb0e-4b1a-b94b-888c5b3f7e3f",
"metadata": {},
"source": [
"# 6. Local active information storage with JIDT\n",
"\n",
"Here we will continue the above activity, but examining _local_ AIS on the same sample data. The local AIS is the pointwise or local mutual information from the previous $k$ samples to the next sample.\n",
"\n",
"1. Using the second last example with `variable = [0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0];` let's compute and plot the local AIS values at each point in the time series. To do so:\n",
" * Switch your code in the cell above back to that data set, and re-run it.\n",
" * Then insert the following code into a new cell below and run it:\n",
"```python\n",
"# Pull out the local AIS values for each point in the time series:\n",
"localAISValues = calc.computeLocalFromPreviousObservations(variable);\n",
"# We only plot the local values from time index k onwards -- the AIS is undefined before this (localAISValues just fills these values with zeros)\n",
"plt.scatter(range(k+1,len(localAISValues)+1), localAISValues[k:], marker='x'); \n",
"plt.ylabel('AIS(n,k)'); \n",
"plt.xlabel('n');\n",
"plt.title('Local AIS (k = %d)' % k);\n",
"plt.axis([0,20,-0.5,2.2]); \n",
"plt.grid();\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "e2865a32-79dc-46d8-b643-164639927464",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAHFCAYAAAA5VBcVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3ZElEQVR4nO3deXhU5d3/8c9ANoIhypKNJcSFTRBpABNkFwKhoFREKH2QRbEUlUJEClh/IG0fqPIoFQRcEqKiQtuAD8pSopCAsggaV5BqGwlCIhIggYSECZzfHz6ZGrKQ3GRmMpn367pyXcw59znn+809k3w4c87EZlmWJQAAANRYA3cXAAAA4KkIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUoCXSU5Ols1m04EDB9xdSjlt27bVxIkTqz3ebrcrLCxMNptNf//73yscs2DBAtlsNp08edKxzLIsrV27Vn369FFISIgCAgLUqlUrDRkyRC+//HK1j92hQwctXry4ymO5w9GjR/WLX/xC119/vRo3bqzg4GB169ZNy5cvV0lJSZmx48eP18iRI91TKFAPEKQAeKx33nlH33//vSQpMTGx2tvNnTtXv/zlL9WxY0e9/PLL2rJli/74xz8qNDRU//u//1utfaxYsUKnT5/WI488YlS7MxUUFKhJkyZ64okntHHjRq1du1a9e/fWI488oqlTp5YZu2DBAm3atEnbt293U7WAZ/NxdwEAYCoxMVF+fn7q16+ftm3bpu+++06tWrWqcpvz589r6dKluu+++/Tiiy+WWTdx4kRdunTpisctKSnR008/rcmTJ6tx48ZX1YMzdOjQQa+88kqZZfHx8Tpx4oReeeUVPf/88/L395ck3XDDDRo6dKgWL16sgQMHuqNcwKNxRgpAhd5//33dcccdCgoKUmBgoHr16qVNmzaVG3fs2DE9+OCDat26tfz8/BQREaF77rnHcaaoqKhIjz76qG699VYFBweradOmio2NrfaZn8ocP35cW7du1YgRI/TYY4/p0qVLSk5OvuJ2BQUFKi4uVnh4eIXrGzS48o/FjRs36tixYxo/fvwVx3711Ve6/vrrddttt+nEiRNXHO9MLVq0UIMGDdSwYcMyy8ePH693331X//rXv9xUGeC5CFIAyklPT9fAgQOVl5enxMREvfnmmwoKCtKIESO0bt06x7hjx46pR48e2rBhgxISErRlyxYtXbpUwcHBOn36tCSpuLhYp06d0qxZs/TWW2/pzTffVO/evXX33Xfr1VdfNa4xOTlZFy9e1OTJkzVo0CBFRkYqKSlJlmVVuV3z5s114403asWKFXrmmWf01VdfXXGby23atEkhISHq1KlTlePS09PVq1cv3XLLLdqxY4dCQkIqHWtZlkpKSqr1VV2l+zx9+rTWrVun5ORkPfroo/LxKftmRP/+/WVZljZv3lztfQP4PxYAr7J69WpLkrV///5Kx8TExFghISHW2bNnHctKSkqszp07W61atbIuXbpkWZZlTZ482fL19bUOHjxY7eOXlJRYdrvduv/++61u3bqVWRcZGWlNmDDhivu4dOmSdeONN1otW7a0SkpKLMuyrPnz51uSrPfee6/M2NLlP/zwg2PZhx9+aLVp08aSZEmygoKCrOHDh1uvvvqqo7eqdOzY0Ro6dGi55T891muvvWb5+flZ06dPty5evHjFfe7YscNRz5W+MjMzr7g/y7KsRYsWObax2WzW448/XunYli1bWmPGjKnWfgH8B9dIASijoKBA+/bt029+8xtdc801juUNGzbU+PHj9bvf/U6HDx9Whw4dtGXLFg0YMEAdO3ascp9/+9vftHTpUn366acqKChwLA8ICDCqMT09Xd98843mzZvneJtq0qRJWrhwoZKSkq54rU+PHj30zTffaPv27dq5c6cOHDig9957T++8847++te/auPGjbLZbJVuf/z4cfXo0aPS9X/605+0bNkyPf3005o5c2a1eoqOjtb+/furNTYiIqJa4yZOnKhBgwbp1KlT2r59u55++mnl5eVp2bJl5caGhITo2LFj1dovgP8gSAEo4/Tp07Isq8JriEp/gefm5kqSfvjhhyte3L1+/Xrde++9Gj16tB577DGFhYXJx8dHK1euVFJSklGNpXfo/eIXv9CZM2ckScHBwerdu7dSUlK0fPlyXXvttVXuw9fXV0OGDNGQIUMcPd1zzz165513tGXLFg0bNqzSbc+fP19lCFyzZo1atmypsWPHVruna665Rrfeemu1xl7+1lxlwsLCFBYWJkmKi4vTddddpzlz5mjy5Mnq1q1bmbEBAQE6f/58tesF8COukQJQxnXXXacGDRooOzu73Lrjx49L+vE6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AADeocZBSpJmzZql3Nxcde/eXRcvXtS2bdt022231XZt5Rw4cEADBgxwPC69lmnChAlKTk5Wdna2srKyHOujoqK0efNmzZw5U88//7wiIiL03HPP8dEHAACgVlQrSD333HPlloWHhyswMFB9+/bVvn37tG/fPknS9OnTa7fCn+jfv7+quskwOTm53LJ+/frp448/dlpNAADAe1X7Azkr0rBhQ33wwQf64IMPJP14J5wzgxQAAEBdUq0glZmZ6ew6AAAAPI7RHy0GAABALQephQsXaufOnbW5SwAAgDqrVoPU6tWrNXToUI0YMaI2dwsAAFAnGX38QWUyMzNVVFSk9PT02twtAABAnVTr10gFBARoyJAhtb1bAACAOsfojNSZM2f04Ycf6sSJE7p06VKZdffdd1+tFAYAAFDX1ThIvf322/rVr36lgoICBQUFyWazOdbZbDaCFAAA8Bo1fmvv0Ucf1eTJk3X27FmdOXNGp0+fdnydOnXKGTUCAADUSTUOUseOHdP06dMVGBjojHoAAAA8Ro2D1JAhQ3TgwAFn1AIAAOBRanyN1M9//nM99thjOnjwoLp06SJfX98y6++8885aKw4AAKAuq3GQmjJliqQfP8X8cjabTRcvXrz6qgAAADxAjYPU5R93AAAA4K34o8UAAACGqhWk1q5dW+0dHj16VB988IFxQQAAAJ6iWkFq5cqV6tChg/785z/r0KFD5dbn5eVp8+bNGjdunKKjo/k8KQAA4BWqdY1Uenq63nnnHS1btkzz5s1T48aNFRoaqoCAAJ0+fVo5OTlq0aKFJk2apC+++EIhISHOrhsAAMDtqn2x+fDhwzV8+HDl5ubq/fff17fffqvz58+refPm6tatm7p166YGDbjkCgAAeI8a37XXrFkz3XXXXc6oBQAAwKPUOEj9VFFRkdatW6eCggINHjxYN910U23VBQAAUOdVO0g99thjunDhgv7yl79Iki5cuKCYmBgdPHhQgYGBmj17tlJTUxUbG+u0YgEAAOqSal/UtGXLFt1xxx2Ox6+//rqysrL09ddf6/Tp0xo9erT++Mc/OqVIAACAuqjaQSorK0udOnVyPN62bZvuueceRUZGymaz6be//a0yMjKcUiQAAEBdVO0g1aBBA1mW5Xi8d+9excTEOB5fe+21On36dO1WBwAAUIdVO0h16NBBb7/9tiTp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T5jv6vzectdr3OuD1Lp16zRjxgw9/vjjysjIUJ8+fRQfH6+srKwKx2dmZmrYsGHq06ePMjIyNG/ePE2fPl0pKSkurtxcenq6HnroIe3du1epqakqKSlRXFycCgoKrrjt4cOHlZ2d7fi66aabXFBx7bn55pvL1P/5559XOrY+zLX049+r/GnPqampkqTRo0dXuZ2nzXVBQYG6du2q5cuXV7j+qaee0jPPPKPly5dr//79CgsL0+DBg3X27NlK97lnzx6NGTNG48eP16effqrx48fr3nvv1b59+5zVRo1V1XdhYaE+/vhjPfHEE/r444+1fv16/fOf/9Sdd955xf02adKkzPxnZ2crICDAGS0YudJ8S9LQoUPL1L958+Yq9+np8y2p3JwlJSXJZrNp1KhRVe63rs93dX5vue01bnm5nj17WlOnTi2zrEOHDtacOXMqHD979myrQ4cOZZb9+te/tmJiYpxWo7OdOHHCkmSlp6dXOmbHjh2WJOv06dOuK6yWzZ8/3+ratWu1x9fHubYsy/rtb39r3XDDDdalS5cqXF8f5lqStWHDBsfjS5cuWWFhYdbixYsdy4qKiqzg4GBr1apVle7n3nvvtYYOHVpm2ZAhQ6yxY8fWes214fK+K/Lhhx9akqwjR45UOmb16tVWcHBw7RbnRBX1PWHCBOuuu+6q0X7q43zfdddd1sCBA6sc42nzbVnlf2+58zXu1WekLly4oI8++khxcXFllsfFxWn37t0VbrNnz55y44cMGaIDBw7Ibrc7rVZnKv00+Or8Ycdu3bopPDxcd9xxh3bs2OHs0mrd119/rYiICEVFRWns2LH697//XenY+jjXFy5c0Jo1azR58mTZbLYqx3r6XP9UZmamcnJyysynv7+/+vXrV+lrXar8OVDVNnVdXl6ebDabrr322irHnTt3TpGRkWrVqpWGDx+ujIwM1xRYi9LS0hQSEqJ27dppypQpOnHiRJXj69t8f//999q0aZPuv//+K471tPm+/PeWO1/jXh2kTp48qYsXLyo0NLTM8tDQUOXk5FS4TU5OToXjS0pKdPLkSafV6iyWZSkhIUG9e/dW586dKx0XHh6uF198USkpKVq/fr3at2+vO+64Qzt37nRhtVfntttu06uvvqp//OMfeumll5STk6NevXopNze3wvH1ba4l6a233tKZM2c0ceLESsfUh7m+XOnruSav9dLtarpNXVZUVKQ5c+Zo3LhxVf7x2g4dOig5OVkbN27Um2++qYCAAN1+++36+uuvXVjt1YmPj9frr7+u7du363/+53+0f/9+DRw4UMXFxZVuU9/m+5VXXlFQUJDuvvvuKsd52nxX9HvLna9xj/kTMc50+f/MLcuq8n/rFY2vaLknePjhh/XZZ5/p/fffr3Jc+/bty/yB6NjYWB09elRLlixR3759nV1mrYiPj3f8u0uXLoqNjdUNN9ygV155RQkJCRVuU5/mWpISExMVHx+viIiISsfUh7muTE1f66bb1EV2u11jx47VpUuXtGLFiirHxsTElLkw+/bbb9fPfvYzLVu2TM8995yzS60VY8aMcfy7c+fO6t69uyIjI7Vp06Yqg0V9mW9JSkpK0q9+9asrXuvkafNd1e8td7zGvfqMVPPmzdWwYcNyyfPEiRPlEmqpsLCwCsf7+PioWbNmTqvVGR555BFt3LhRO3bsUKtWrWq8fUxMTJ39H0t1NG7cWF26dKm0h/o015J05MgRvfvuu3rggQdqvK2nz3Xp3Zk1ea2XblfTbeoiu92ue++9V5mZmUpNTa3ybFRFGjRooB49enj0cyA8PFyRkZFV9lBf5luSdu3apcOHDxu93uvyfFf2e8udr3GvDlJ+fn6Kjo523MVUKjU1Vb169apwm9jY2HLjt23bpu7du8vX19dptdYmy7L08MMPa/369dq+fbuioqKM9pORkaHw8PBars51iouLdejQoUp7qA9z/VOrV69WSEiIfv7zn9d4W0+f66ioKIWFhZWZzwsXLig9Pb3S17pU+XOgqm3qmtIQ9fXXX+vdd981+k+AZVn65JNPPPo5kJubq6NHj1bZQ32Y71KJiYmKjo5W165da7xtXZzvK/3ecutrvNqXpddTa9eutXx9fa3ExETr4MGD1owZM6zGjRtb3377rWVZljVnzhxr/PjxjvH//ve/rcDAQGvmzJnWwYMHrcTERMvX19f6+9//7q4Wauw3v/mNFRwcbKWlpVnZ2dmOr8LCQseYy/t+9tlnrQ0bNlj//Oc/rS+++MKaM2eOJclKSUlxRwtGHn30USstLc3697//be3du9caPny4FRQUVK/nutTFixetNm3aWL/73e/Krasvc3327FkrIyPDysjIsCRZzzzzjJWRkeG4O23x4sVWcHCwtX79euvzzz+3fvnLX1rh4eFWfn6+Yx/jx48vc8fuBx98YDVs2NBavHixdejQIWvx4sWWj4+PtXfvXpf3V5mq+rbb7dadd95ptWrVyvrkk0/KvN6Li4sd+7i87wULFlhbt261/vWvf1kZGRnWpEmTLB8fH2vfvn3uaLFCVfV99uxZ69FHH7V2795tZWZmWjt27LBiY2Otli1b1uv5LpWXl2cFBgZaK1eurHAfnjjf1fm95a7XuNcHKcuyrOeff96KjIy0/Pz8rJ/97GdlPgZgwoQJVr9+/cqMT0tLs7p162b5+flZbdu2rfTJWldJqvBr9erVjjGX9/3nP//ZuuGGG6yAgADruuuus3r37m1t2rTJ9cVfhTFjxljh4eGWr6+vFRERYd19993Wl19+6VhfH+e61D/+8Q9LknX48OFy6+rLXJd+bMPlXxMmTLAs68fbo+fPn2+FhYVZ/v7+Vt++fa3PP/+8zD769evnGF/qb3/7m9W+fXvL19fX6tChQ50LlFX1nZmZWenrfceOHY59XN73jBkzrDZt2lh+fn5WixYtrLi4OGv37t2ub64KVfVdWFhoxcXFWS1atLB8fX2tNm3aWBMmTLCysrLK7KO+zXepF154wWrUqJF15syZCvfhifNdnd9b7nqN2/6vQAAAANSQV18jBQAAcDUIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIYIUgAAAIZ83F0AALha//79dcsttyggIEAvv/yy/Pz8NHXqVC1YsMDdpQHwMJyRAuCVXnnlFTVu3Fj79u3TU089pYULFyo1NdXdZQHwMPzRYgBep3///rp48aJ27drlWNazZ08NHDhQixcvdmNlADwNZ6QAeKVbbrmlzOPw8HCdOHHCTdUA8FQEKQBeydfXt8xjm82mS5cuuakaAJ6KIAUAAGCIIAUAAGCIIAUAAGCIu/YAAAAMcUYKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADAEEEKAADA0P8HABY5LTspmzkAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Pull out the local AIS values for each point in the time series:\n",
"localAISValues = calc.computeLocalFromPreviousObservations(variable);\n",
"# We only plot the local values from time index k onwards -- the AIS is undefined before this (localAISValues just fills these values with zeros)\n",
"plt.scatter(range(k+1,len(localAISValues)+1), localAISValues[k:], marker='x'); \n",
"plt.ylabel('AIS(n,k)'); \n",
"plt.xlabel('n');\n",
"plt.title('Local AIS (k = %d)' % k);\n",
"plt.axis([0,20,-0.5,2.2]); \n",
"plt.grid();\n"
]
},
{
"cell_type": "markdown",
"id": "d8be9cd7-cec4-4120-98a5-05d94d9d8093",
"metadata": {},
"source": [
"Explain why there is greater active information storage at some updates of the time series compared to others."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "862ea03b-6930-4824-854a-797399910c4c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}