Skip to content

Instantly share code, notes, and snippets.

@IlievskiV
Created March 31, 2020 09:03
Show Gist options
  • Save IlievskiV/7686afe530d4a46d7aac5f15e5ce657d to your computer and use it in GitHub Desktop.
Save IlievskiV/7686afe530d4a46d7aac5f15e5ce657d to your computer and use it in GitHub Desktop.
Radnom Walk Animated using the MatplotLib's FuncAnimation
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Brownian Motion or Wiener process\n",
"In this notebook we will introduce the Brownian Motion (or the Wiener Process), which is a random process often used in modelling the stock price. \n",
"\n",
"## Random Walk\n",
"First we will introduce the discret random walk, which is the foundation of the random processes. Then, we will see how to scale it to a continiuous process. This will enable us to derive a special case Brownian Motion.\n",
"\n",
"In random walk, at each step we take a unit step up or down with equal probability, i.e. with a probability 1/2 we move +1 or -1. Let's implement this simple random walk."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# import libraries\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.animation as animation \n",
"\n",
"\n",
"# set a random seed\n",
"np.random.seed(1234)\n",
"\n",
"# set larger font size\n",
"plt.rcParams.update({'font.size': 18})\n",
"plt.style.use('seaborn')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def random_walk(N):\n",
" \"\"\"\n",
" Simulates a discrete random walk\n",
" :param int N : the number of steps to take\n",
" \"\"\"\n",
" # event space: set of possible increments\n",
" increments = np.array([1, -1])\n",
" # the probability to generate 1\n",
" p=0.5\n",
" \n",
" # the epsilon values\n",
" random_increments = np.random.choice(increments, N, p)\n",
" # calculate the random walk\n",
" random_walk = np.cumsum(random_increments)\n",
" \n",
" # return the entire walk and the increments\n",
" return random_walk, random_increments"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# generate a random walk\n",
"N = 500\n",
"R, epsilon = random_walk(N)\n",
"\n",
"# normalize the random walk using the Central Limit Theorem\n",
"R = R * np.sqrt(1./N)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAG2CAYAAAAnY0i0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeZhb5Xk3/u/RrhmNpNn3GW+zYBvwRrANBsdgk5SAIWmBK42htE1eKFeapKHpL2mbhdBAk/dKS5ISskGavmQrIXEJTUjYjDFe8L7g2ezxSLNvkkbbSKPl98fROTrSaPZFmtH3849npKOjI+lo/Nznee77FqLRaBRERERERESUdVTpPgAiIiIiIiJKDwaEREREREREWYoBIRERERERUZZiQEhERERERJSlGBASERERERFlKQaEREREREREWYoBIRERZYT9+/fjzjvvxN69e3Hffffh3LlzAIAXX3wRmzdvxt69e7F3717ccccdeOihh3D+/PmU+zl69CiuueYaefu9e/fi1ltvxUMPPQSHwzFvx/vYY4/h29/+9rztT/Lyyy/jrrvuSrjt3nvvxY4dO6DsFPXxj38cP/3pTyfd165du3Du3DkcPXoUH/rQh+b9WImIaOljQEhERGl3+fJlfOMb38APf/hD7N+/Hw8//DA++clPyvdv2bIF+/fvx/79+/HSSy/h/vvvx1//9V+jq6sr5f5qamrk7ffv349XXnkFKpUKzz777GK9pFm74YYb0NbWBqfTCQAYHh5Gf38/CgsL5SA5FArhxIkTuPnmm9N5qEREtAwwICQiorTT6XR4/PHHUVJSAgBYv349BgcHEQwGU26/fft27N69Gz/72c+mtX+Px4Ph4WFYLBYAwOnTp/Hnf/7n+LM/+zPs3LkTX/jCFwAAnZ2duPXWW/HVr34Vf/qnf4o9e/bgj3/8o7yPT33qU7jtttuwb98+XL58Wd5/a2sr9u3bhzvuuAN33nknfvOb3wAQZyvvvfdefPrTn5ZnPl9//XU8+OCD2LlzJ772ta+NO1ar1Yr169fj+PHjAIA333wTN954I3bu3InXX38dAHDmzBlUVlaisrISg4OD+Ju/+Rvce++92LVrF/bt24ehoaEJ34vjx49j586dOHny5LTeOyIiWt4YEBIRUdpVVVVh586dAIBoNIonnngCu3btgk6nm/AxjY2NaGlpSXmfzWbD3r17cfvtt2Pbtm34i7/4C+zatQsPPPAAAOAnP/kJ/vZv/xb//d//jZdffhmvv/66vATVbrfjxhtvxAsvvIDPfvazctD2rW99CwaDAb///e/x1FNPob29HYA4W/fwww9j3759eOmll/CDH/wA3/zmN3Hq1CkAwLlz5/CJT3wC+/fvh8lkwve//31873vfw4svvoif/vSn6OvrG3f8O3bswNGjRwEAb7zxBnbu3JkQEB4+fFieHXz55ZexYcMG/OIXv8Brr70Gg8GA/fv3p3xfjhw5gs9//vN45plnsGnTpok/ECIiyhoMCImIKGP4fD586lOfgs1mw+OPPz7l9gaDIeXt0pLRl19+GY8++igGBgbwwQ9+EFqtFgDw5JNPwu1245lnnsFXvvIVBAIB+Hw+AIBWq5WDrbVr18pLNw8fPoy77roLgiCgoKAAu3fvBgBcuXIFgUAAe/bsAQCUlpZiz549OHjwIAAx2F27dq18XNdffz10Oh0KCgqQm5sLl8s17vhvuukmHDt2DMFgEMePH8f27dtxzTXXYHBwEIODgzh69KgcQD/wwAPYtGkTnnvuOXz5y19Ga2ur/FqUent78dBDD+HWW29FY2PjlO8tERFlBwaERESUEbq7u3HfffdBrVbjJz/5Ccxm86Tbnz9/HvX19VPu9yMf+Qh27dqFT33qUwiFQgCAj33sYzhw4ABWrVqFRx55BCUlJXLBFq1WC5VK/O9REISEfSmLuqjVagBAOBxOuZ30XMmznBqNZspjXr9+PYaGhvDqq69i/fr1MBqNUKlU2LFjBw4dOoT29nZs2LABAPCNb3wDTz31FPLz83HvvffihhtuSDhO5fE+++yz+PWvf40zZ85MeQxERJQdGBASEVHaeTwe7Nu3D3v27MG//du/TTjzJzlw4ADefPNN3HvvvdPa/6OPPoqenh48//zzGBkZwblz5/Doo49iz5496O3thc1mQyQSmXQfO3bswAsvvIBIJAKXy4XXXnsNALBq1SpoNBr84Q9/AAD09fXhlVdewfbt26d1bKkIgoDt27fjmWeekWcCAWDnzp149tln8b73vU8OLN9++2088MADuOuuu1BYWIh33nkH4XB43D6Li4uxadMm/MM//AM+97nPwe/3z/r4iIho+Zj6MiUREdECe/7559Hd3Y0//vGPchEXAPjxj38MQCyEsnfvXgBisFRSUoIf/ehHKC4untb+zWYzHn30UTzxxBO4/fbb8YlPfAJ33303cnJyUFpaik2bNqGjowPV1dUT7uOTn/wkvvSlL+GDH/wgCgoK5NlJrVaLp59+Go8//ji+/e1vIxwO45FHHsHWrVvlPMDZuOmmm7B//368//3vl2+78cYb8fd///d48MEH5dseeeQRfP3rX8dTTz0FrVaLTZs2wWazTbjfu+++G6+88gqefPJJfOUrX5n18RER0fIgRFOtKyEiIiIiIqJlj0tGiYiIiIiIshQDQiIiIiIioizFgJCIiIiIiChLMSAkIiIiIiLKUku+ymgoFIbDMb4BL1G65efn8NykjMXzkzIVz03KZDw/KVMVF+fN+rFLfoZQo1Gn+xCIUuK5SZmM5ydlKp6blMl4ftJytOQDQiIiIiIiIpodBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKUYEBIREREREWUpBoRERERERERZigEhERERERFRlmJASERERERElKU0i/2EkUgEX/7yl9Hc3AydTofHH38ctbW1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El677777cNVVV2Hfvn2T7hMIBPCpT30Kn/nMZxCNRnHrrbdi9erVqKmpmfaz8vK4pJRSE89NSmU8PylV8dykVMbzk5aaeQsIt27diq1bt57SPiaTCbfeeitMJhMAYOPGjairq5sxIOzr8572OInmS16elecmpSyen5SqeG5SKuP5SanqTL6oSKkqo83Nzbj55psRjUYRDofx3nvv4ayzzlroYRERERERES1JC1JldLyf/exncLlc2Lx5M66++mps27YNer0e1157LSorKxd6eEREREREREuSIIqiuNCDOFOcuqdUxGUllMp4flKq4rlJqYznJ6WqJbNklIiIiIiIiJKHASEREREREVGaYkBIRERERESUphgQEhERERERpSkGhERERERERGmKASEREREREVGaYkBIRERERESUphgQEhERERERpSkGhERERERERGmKASEREREREVGaYkBIRERERESUphgQEhERERERpSkGhERERERERGlKEEVRXOhBEBERERERUfJxhpCIiIiIiChNMSAkIiIiIiJKUwwIiYiIiIiI0hQDQiIiIiIiojTFgJCIiIiIiChNMSAkIiIiIiJKUwwIiYiIiIiI0pRuoQdwumKxGO655x7U19fDYDDg3nvvRWlp6UIPi9LQoUOH8IMf/AA7duxAS0sL7rjjDgiCgMrKSvzHf/wHNBoNfvzjH+PNN9+ETqfDXXfdhbVr1y70sGmJC4fDuOuuu9DR0YFQKIQvf/nLqKio4PlJCy4ajeJb3/oWmpqaoNVqcf/990MURZ6blDIGBgZw/fXX44knnoBOp+O5SSnjuuuug9VqBQAUFxfjE5/4BP7zP/8TWq0WmzZtwvbt208rRlq0AeFf/vIXhEIhPP300zh48CAeeOAB/Pd///dCD4vSzE9/+lO8+OKLMJlMAID7778fX/va17BhwwbcfffdeP311+F0OvHOO+/g2WefRVdXF77yla/g+eefX+CR01L34osvwm634/vf/z6GhobwsY99DDU1NTw/acHt3LkTAPCb3/wG+/btUwJCnpuUCsLhMO6++25kZGQA4P/XKXUEg0EAwI4dO5TXrr32WvzoRz9CSUkJvvjFL+Lo0aPKF8GnEiMt2iWjBw4cwCWXXAIAOPvss3HkyJEFHhGlI5fLhR/96EfK86NHj+KCCy4AAFx66aXYs2cPDhw4gE2bNkEQBDidTkSjUQwODi7UkClNXHnllfjqV7+qPNdqtTw/KSVs2bIF3/3udwEAnZ2dyM3N5blJKePBBx/EjTfeiGXLlgHg/9cpddTV1WFkZASf/exnceutt2L//v0IhUJwuVwQBAGbNm3C3r17TytGWrQBoc/ng8ViUZ5rtVpEIpEFHBGloyuuuAI63dhEuyiKEAQBAGA2m+H1eiecq/LrRPPJbDbDYrHA5/PhX/7lX/C1r32N5yelDJ1Oh9tvvx3f/e53ccUVV/DcpJTw29/+FtnZ2crNNMD/r1PqyMjIwOc+9zk8/vjj+M53voM777xTWaEGTH1+ziZGWrQBocVigd/vV57HYrGEG3OihaDRjF1Sfr8fNpttwrnq9/uV9d9E86mrqwu33norrr32Wlx99dU8PymlPPjgg3jllVfw7W9/W1kKBfDcpIXz/PPPY8+ePbjllltw7Ngx3H777Qkzfzw3aSGVl5fjmmuugSAIKC8vh9VqhdvtVt6f6vycTYy0aAPC9evX4+233wYAHDx4EFVVVQs8IiJg1apV2LdvHwDg7bffxnnnnYf169dj165diMVi6OzsRCwWQ3Z29gKPlJa6/v5+fPazn8W///u/4+Mf/zgAnp+UGn7/+9/j0UcfBQCYTCYIgoDVq1fz3KQF9+STT+JXv/oVduzYgZUrV+LBBx/EpZdeynOTUsJzzz2HBx54AADQ09ODkZERZGZmorW1FaIoYteuXcr5eaox0qKdUrv88suxe/du3HjjjRBFEffdd99CD4kIt99+O7797W/jhz/8IZYvX44rrrgCWq0W5513Hj7xiU8gFovh7rvvXuhhUhr4yU9+Ao/Hg0ceeQSPPPIIAOCb3/wm7r33Xp6ftKA+8pGP4M4778QnP/lJRCIR3HXXXVixYgX/20kpif9fp1Tx8Y9/HHfeeSduuukmCIKA++67DxqNBv/2b/+GaDSKTZs2Yd26dVizZs0px0iCKIpiEn4GIiIiIiIiSjGLdskoERERERERnRkGhERERERERGmKASEREREREVGaYkBIRERERESUphgQEhERERERpSkGhERERCovv/wyrr/+elxzzTW4+uqr8dhjjwEAHn74Ybz77rsLPDoiIqK5tWj7EBIREc21np4ePPjgg/jtb38Lh8MBv9+PW265BeXl5di/fz82bNiw0EMkIiKaUwwIiYiI4oaGhhAOhzE6OgoAMJvNeOCBB/Dqq6/iyJEj+Na3voUf//jHyMjIwD333AO3242MjAx8+9vfxqpVq3DHHXfAaDTigw8+gN/vx5e//GVcd9112Lt3L77//e8DALKysvDQQw8hOzt7IX9UIiIiAAwIiYiIFDU1Ndi8eTO2bNmClStXYsOGDbj66quxfft27Nu3D9u3b0d1dTVuvPFG3H333Vi1ahWOHz+Of/7nf8Yrr7wCAGhra8PTTz+NgYEBXH/99bj44ovxyCOP4J577sHatWvx05/+FLW1tdi0adMC/7REREQMCImIiBJ85zvfwT/90z9h165d2LVrF7Zt24Yf/OAHyvt+vx9HjhzBnXfeqbwWCAQwNDQEALj++uuh1+tRUFCA9evX48CBA9i8eTO2b9+OLVu2YPPmzbj44ouT/nMRERFNhgEhERFR3JtvvolAIICrrroKN9xwA2644QY888wzeO6555RtYrEYDAYDXnjhBeW17u5u2O12AIBWq03YVqfT4dOf/jQuu+wy7Ny5E9///vdx+PBhfPnLX07eD0ZERDQFVhklIiKKy8jIwEMPPYT29nYAgCiKOHbsGFauXAmtVotoNAqr1YqysjIlINy9ezc++clPKsf485//DFEU0dHRgcOHD+Pcc8/F1q1b4ff78elPfxqf/vSnUVtbuyA/HxER0XiCKIriQg+CiIgoVfzud7/D448/jnA4DAC45JJL8I1vfAM7duzAb37zGzz44IPIyspSisro9XolP/COO+7A4OAg+vv7EQqF8PWvfx1/93d/h7179+L++++HTqdDZmYm7r33XpSVlS3sD0pERAQGhERERHPmjjvuwAUXXIDrr79+oYdCREQ0K1wySkRERERElKY4Q0hERERERJSmOENIRERERESUphgQEhERERERpSkGhERERERERGmKASEREREREVGaYkBIRERERESUpv4/GHnPvpSeaYgAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1080x504 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(15, 7))\n",
"ax = plt.axes(xlim=(0, N), ylim=(np.min(R) - 0.5, np.max(R) + 0.5)) \n",
"line, = ax.plot([], [], lw=2)\n",
"ax.set_title('2D Random Walk')\n",
"ax.set_xlabel('Steps')\n",
"ax.set_ylabel('Value')\n",
"\n",
"# initialization function \n",
"def init(): \n",
" # creating an empty plot/frame \n",
" line.set_data([], []) \n",
" return line, \n",
"\n",
"# lists to store x and y axis points \n",
"xdata, ydata = [], []\n",
"\n",
"# animation function \n",
"def animate(i):\n",
" # x, y values to be plotted \n",
" y = R[i] \n",
" \n",
" # appending new points to x, y axes points list \n",
" xdata.append(i) \n",
" ydata.append(y) \n",
" line.set_data(xdata, ydata) \n",
" return line,\n",
"\n",
"# call the animator\t \n",
"anim = animation.FuncAnimation(fig, animate, init_func=init, frames=N, interval=20, blit=True)\n",
"# save the animation as mp4 video file \n",
"anim.save('random_walk.gif',writer='imagemagick') "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (blog-env)",
"language": "python",
"name": "myenv"
},
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment