{ "metadata": { "name": "", "signature": "sha256:ec1983abca708e7a4fd543a68e30a98fc8d440b96195e07a2425dd47276d6ae0" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Parameter estimates for correlated regressors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By JB Poline and Matthew Brett." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Compatibility with Python 3\n", "from __future__ import print_function # print('me') instead of print 'me'\n", "from __future__ import division # 1/2 == 0.5, not 0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# Array and plotting libraries\n", "import numpy as np\n", "import numpy.linalg as npl\n", "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# Display plots inside the notebook\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# Make numpy print 4 significant digits for prettiness\n", "np.set_printoptions(precision=4, suppress=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# Set random number seed to make random numbers reproducible\n", "np.random.seed(42)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The linear model again" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have some vector of data $\\vec{y}$ with values $y_1, y_2, ..., y_N$.\n", "\n", "We have one or more vectors of regressors $\\vec{x_1}, \\vec{x_2}, ..., \\vec{x_P}$, where $\\vec{x_1}$ has values $x_{1,1}, x_{1,2}, ..., x_{1,N}$, and $\\vec{x_p}$ has values $x_{p,1}, x_{p,2}, ..., x_{p,N}$.\n", "\n", "Our linear model says that:\n", "\n", "$$\n", "\\vec{y} = \\beta_1 \\vec{x_1} + \\beta_2 \\vec{x_2} + ... + \\beta_P \\vec{x_P} + \\vec{\\varepsilon}\n", "$$\n", "\n", "Here:\n", "\n", "* $\\beta_1, \\beta_2, ... \\beta_P$ are scaling coefficients for vectors $\\vec{x_1}, \\vec{x_2}, ..., \\vec{x_P}$ respectively;\n", "* $\\vec{\\varepsilon} = \\varepsilon_1, \\varepsilon_2, ... \\varepsilon_N$ are the remaining unexplained errors for each observation.\n", "\n", "Usually one of vectors $\\vec{x}$ is a vector of constant value 1. This models the intercept of the regression model. We will write this special vector as $\\vec{1}$.\n", "\n", "As we saw in the [introduction to the general linear model](http://perrin.dynevor.org/glm_intro.html), we can express this same linear model as matrices. We:\n", "\n", "* assemble the $\\vec{x_p}$ vectors as columns in a design matrix $\\mathbf{X} = [\\vec{x_1}, \\vec{x_2}, ... \\vec{x_P}]$;\n", "* assemble the $\\beta_p$ coefficients into a vector $\\vec{\\beta} = \\beta_1, \\beta_2, ..., \\beta_P$.\n", "\n", "Then matrix multiplication does the rest:\n", "\n", "$$\n", "\\vec{y} = \\mathbf{X} \\cdot \\vec{\\beta} + \\vec{\\varepsilon}\n", "$$\n", "\n", "To solve for this and find an estimate of $\\beta$, we use the OLS with\n", "\n", "$$\n", "\\mathbf{X}^t\\vec{y} = \\mathbf{X}^t\\mathbf{X} \\cdot \\vec{\\beta}\n", "\\\\\n", "(\\mathbf{X}^t\\mathbf{X})^{-1} \\mathbf{X}^t \\vec{y} = \\hat{\\vec{\\beta}}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our first exercise will be to implement the linear model and solve for the parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Models with correlated regressors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some correlated regressors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Imagine we have a TR (image) every 2 seconds, for 30 seconds. Here are the times of the TR onsets, in seconds:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "times = np.arange(0, 30, 2)\n", "times" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28])" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we make a hemodynamic response function (HRF) shape for an event starting at time 0. Call this `hrf1`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Gamma distribution from scipy\n", "from scipy.stats import gamma\n", "\n", "# Make SPM-like HRF shape with gamma for peak and undershoot\n", "hrf1 = gamma.pdf(times, 6) - 0.35 * gamma.pdf(times, 12)\n", "# Scale area under curve to 1\n", "hrf1 = hrf1 / np.sum(hrf1)\n", "# Plot the hrf with title 'HRF at t=0 (not mean-centered)' \n", "\n", "plt.plot(times, hrf1) ##\n", "plt.title('HRF at t=0 (not mean-centered)')##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have our model (hrf1). Let's simulate some data that follow this model by adding some random gaussian noise, and find out the parameter estimate. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Generate data Y, the noise e, generate Y given X = hrf1 with noise N(0,1)\n", "noise = np.random.normal(0,1, size=times.shape)\n", "b = 2.0\n", "X = hrf1\n", "Y = X*b + noise\n", "# plot this signal\n", "plt.plot(Y) ##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEACAYAAABfxaZOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecVOX1+PHPkaICFrCAIIgNFUSDwoaF8GU0Fiyxxp+a\n+NJoLBh7jBorxI7EGmvsGmuMIAqiWCZ2I1KVolgXpKggiI12fn+cWV3W2d2ZuXfm3jtz3q/XvtyZ\nuXPvUXfP3jnP85xHVBXnnHOVYY2oA3DOOVc6nvSdc66CeNJ3zrkK4knfOecqiCd955yrIJ70nXOu\nggRK+iLSWUReFJF3ReQdETk1yzEpEVksIhMzXxcEuaZzzrnCNQ/4/uXAGao6SUTaAG+LyDhVnV7v\nuP+q6n4Br+Wccy6gQHf6qjpPVSdlvl8KTAc6ZjlUglzHOedcOEKr6YtIV6AX8Ga9lxToJyKTRWSM\niHQP65rOOefyE7S8A0CmtPMYcFrmjr+uCUBnVf1WRPYCRgLdwriuc865/EjQ3jsi0gJ4CnhaVa/L\n4fiPgJ1VdWG9570JkHPOFUBVcy6hB529I8CdwLSGEr6ItM8ch4hUYX9oFmY7VlUT+zVkyJCinHf6\ndKVbN2XZsuTFnvT/9h6/x5+Er3wFLe/0B44ApojIxMxz5wFdMkn8NuC3wIkisgL4Fjgs4DUrytln\nw3vvwbvvwi9+EXU0zrmkC5T0VfUVmvi0oKo3ATcFuU6lev55S/aHHgr/+58nfedccL4iNySpVCrU\n861cCWeeCVddBQMGwFtvhXr61YQde6l5/NHy+JMl8EBuWERE4xJLHNx1F9x9N7z0EowfD8ceC5Mn\nRx2Vcy5uRATNYyDXk34MLV0K22wDI0dCnz7www/Qti18/jm0bh11dM65OMk36Xt5J4auugp23dUS\nPsCaa0LPnjBhQrRxOeeSL5TFWS48NTVw000wadLqz1dV2WDugAHRxOWcKw9+px8z558PJ54InTuv\n/nxt0nfOuSC8ph8j48fDfvvBzJmwzjqrvzZzJgwaBB99FE1szrl48pp+QqnCn/8MF1/884QPsPXW\nsGgRLFhQ+ticc+XDk35MjBgBX30FRx+d/fU11rCB3WLO13fOlT9P+jGwbJm1W7jmGmjWrOHjvK7v\nnAvKk34M3HQTbLst7LZb48d50nfOBeUDuRH78ktL+C+9BNtt1/ixc+fC9tvDF1+A+F5kzjl8IDdx\nLr7YGqo1lfABNtkEWrWCDz8sflzOufLki7MiNHMmPPggTJuW+3v69LESz5ZbFi8u51z58jv9CJ19\nNpxzDmy0Ue7v8bq+cy4IT/oReeEFmDoVTjklv/dVVfm0Tedc4YJul9hZRF4UkXdF5B0RObWB424Q\nkfdFZLKI9ApyzXJQt1f+mmvm996dd7a+PMuXFyc251x5C3qnvxw4Q1V7AH2Bk0RktSFJEdkb2EpV\ntwaOB24JeM3Eu+8+a5F88MH5v3e99aBLF9tRyznn8hUo6avqPFWdlPl+KTAd6FjvsP2AezPHvAms\nLyLtg1w3yZYuhQsusIVYhU679Lq+c65QodX0RaQr0At4s95LnYCaOo9nA5uGdd2kGT4cUilL3IXy\npO+cK1QoUzZFpA3wGHBa5o7/Z4fUe5x1FdbQoUN//D6VSpXd3pVz5sCNN8LEicHOU1UFt94aTkzO\nuWRJp9Ok0+mC3x94Ra6ItACeAp5W1euyvH4rkFbVhzOPZwADVXV+vePKfkXuH/4AnTrBZZcFO8+y\nZbZ94vz50KZNKKE55xKqpCtyRUSAO4Fp2RJ+xijgyMzxfYGv6if8SvD22/DMM/DXvwY/V8uWvn2i\nc64wQcs7/YEjgCkiUlu0OA/oAqCqt6nqGBHZW0RmAd8ADTQPLl+qNkWzoV75hait6//f/4VzPudc\nZQiU9FX1FXL4tKCqJwe5TtI98QQsXAjHHBPeOauqYNSo8M7nnKsMviK3yJYtg7POgquvbrxXfr58\nBo9zrhCe9Ivs5puhWzfYffdwz7vVVrB4sQ3mOudcrjzpF9HChXD55TY3P2y+faJzrhCe9Ivo4ovh\nkEOge/finL+2zbJzzuXK++kXyXvvwQMP5NcrP19VVXBLxXcycs7lw7dLLJIDDoB+/axnfrH49onO\nOd8uMQbSaZg8GU7N2mg6PL59onMuX570Q7ZqFfz5zzBsGKy1VvGv51M3nXP58KQfsvvvt2R/yCGl\nuZ4nfedcPjzph+ibb+D884P1ys+XJ33nXD58IDdEf/sbzJwJDz5YumsuWWK1/a++ghYtSndd51w8\n5DuQ61M2QzJnDtxwQ+k7X667LnTtCu+8A70qfvdh51xTvLwTkgsugBNOgM02K/21vcTjnMuVJ/0Q\nTJgAY8eG0yu/EJ70nXO58qQfgr/8xer5664bzfU96TvncuUDuQHNmgUDBkBNDTSPaISkdvvEefPC\n26TFOZcMJV+RKyJ3ich8EZnawOspEVksIhMzXxcEvWacjBgB++8fXcIH2z5xhx18+0TnXNPCKO/c\nDQxq4pj/qmqvzNelIVwzNh5/HA48MOoovMTjnMtN4KSvqi8Di5o4rCzbgX32GcyYAbvsEnUk3mbZ\nOZebUgzkKtBPRCaLyBgRKVJ3+dJ74gnYe28rr0TN7/Sdc7koRSV6AtBZVb8Vkb2AkUC3bAcOHTr0\nx+9TqRSpVKoE4RVuxAibmx8HW21lq3Pnz4f27aOOxjlXLOl0mnQ6XfD7Q5m9IyJdgSdVtWcOx34E\n7KyqC+s9n6jZO4sW2UKsuXOhdeuoozF77GHtnPfdN+pInHOlErt++iLSXsTaj4lIFfaHZmETb4u9\n0aOtlh+XhA9e4nHONS1weUdEHgIGAhuKSA0wBGgBoKq3Ab8FThSRFcC3wGFBrxkHI0bEY9ZOXVVV\ncPPNUUfhnIszX5xVgG+/tc6WH34IG2wQdTQ/mTsXevSAL7+snO0TX30VbrsN7r23cv6dnasrduWd\ncvTss7DzzvFK+GB/iNq0gQ8+iDqS0nngAfv6z3+ijsS5ZPCkX4A4lnZqVVJdXxXGjIEbb7QtKr/5\nJuqInIs/T/p5Wr4cnnoKDjgg6kiyq6SkP22aJf7Bg2HgQLi0rNZ6O1ccnvTz9NJLsOWW0Llz1JFk\nV0lJf8wY2Gcfq+UPHw533GErpJ1zDfOkn6c4l3bAxhomT7ZPJOVuzBhbEQ3QoYPtT3zKKXb375zL\nzpN+HlatgpEj453011kHNt8cpmbteVo+Fi+G8eNh111/eu7kk21Fsg/qOtcwT/p5GD/ekuq220Yd\nSeMqocQzbhz86lfQqtVPzzVvDjfdZIO6S5dGF5tzceZJPw9xaaPclEpI+qNHWz2/vgEDIJXyQV3n\nGuKLs3Kkanf4//qXtTGOswkT4Mgj4Z13oo6kOFatgo4d4bXXYIstfv76vHnQs6cNum+3Xenjc66U\nfHFWkUyfbitxe/eOOpKm9ewJH30EX38ddSTFMWGCbQ+ZLeGDDepecIEP6jqXjSf9HNXO2knCUv8W\nLcp7+8S6s3YactJJsGABPPZYaWJyLik86eco7lM16yvnun5D9fy6fFDXuew86efg00/hk09skDAp\nyjXpL1gAM2fazJ2mDBhgUzovuaT4cTmXFJ70czBypG1M0rwU+4yFpFyT/tix8Otf575F5VVXwV13\n2ZiMc86Tfk6SMlWzrq22soHcefOijiRcudTz62rfHi680Ad1navlSb8Jn38OEyfC7rtHHUl+RGxq\n6VtvRR1JeFassLbWe+2V3/v+9Cf7//jvfxcnLueSJHDSF5G7RGS+iDS48F9EbhCR90Vksoj0CnrN\nUnrySdt7du21o44kf+VW4nn9deja1ebo56N2UPfMM8t3GqtzuQrjTv9uYFBDL4rI3sBWqro1cDxw\nSwjXLJmkzdqpq9ySfr6lnbp+9SsbC/BBXVfpQlmRKyJdgSdVtWeW124FXlTVRzKPZwADVXV+veNi\ntyL366+hUyeoqYH11os6mvzNmwfdu5fP9ok77GBbI1ZXF/b++fNh++19pa4rL3FckdsJqKnzeDaw\naQmuG9jYsdCvXzITPtjK1HXWgVmzoo4kuJoa+Owz+/RSqPbt4aKLrBtnzO4vnCuZUk1CrP9XKOuv\n3NChQ3/8PpVKkUqlihdRDpJc2qlVW+LZeuuoIwlmzBgYNAiaNQt2nhNPhDvvhEcfhUMPDSc250op\nnU6TTqcLfn+pyjtpVX048zgR5Z0ffrA75enT7Z9JNXw4zJ4N118fdSTB7L+/Jenf/S74uV591c41\nfbp9EnIuyeJY3hkFHAkgIn2Br+on/Dh64QXo0SPZCR/KYzD3++8hnYY99wznfP37w267wcUXh3M+\n55IkcHlHRB4CBgIbikgNMARoAaCqt6nqGBHZW0RmAd8ARwe9ZimUQ2kHbPvEKVNg2bLcV7HGzUsv\n2QDsBhuEd85hw+ycRx9tg93OVQrvp5/FypU2F/z11xtu35sk228P995rfwCS6LTTbBD2vPPCPe+N\nN9pq6+efL4/ZTa4yxbG8kzivv25lnXJI+GAlniSvzA0yP78xgwfDokXwyCPhn9u5uPKkn0W5lHZq\nJbmu//77tnnNjjuGf+7albp/+Yuv1HWVw5N+Paqe9ONk9Gi7yy9W+aVfP+ur5IO6rlJ40q9n8mT7\n5w47RBtHmJK8feKYMU1vmBLUsGE25vHuu8W9jnNx4Em/nhEj4KCDymtgr0ULK4+8/XbUkeRn6VJ4\n4w3rmVNMG28MQ4b4Sl1XGTzp11NupZ1aSSzxPP88/PKXpVlANXgwLF4MDz9c/Gs5FyVP+nV88IFt\nx1doQ684S2LSr63nl0KzZj8N6i5ZUpprOhcFT/p1jBhhy/3XKMP/KklL+qrFm6rZkOpqW/Xrg7qu\nnJVheitcuZZ2ALbc0mrkc+dGHUlupkyBtdaCbt1Ke90rr4T77oN33intdZ0rFU/6GXPnwrRpsOuu\nUUdSHCLJWqRVe5df6gH1jTeGoUN9UNeVL0/6GU88YXuvJrU/TS6SVOIZPbr4UzUbcsIJVtd/6KFo\nru9cMXnSz6idqlnOkpL0Fy608s7AgdFcv3ZQ96yzfFDXlR9P+sBXX1m/nUEN7vRbHvr0sfLOqlVR\nR9K4Z5+FVMpq+lGprrafh7/9LboYnCsGT/pYKSGVgjZtoo6kuNq3t60f4759Yimnajbmyivh/vt9\nUNeVF0/6lPesnfr69Il3iWflStubOA5Jf6ON4MIL4fzzo47EufAETvoiMkhEZojI+yJyTpbXUyKy\nWEQmZr4uCHrNMH33HYwbB7/5TdSRlEbcZ/C89Za1te7SJepIzDHHwCuvwKefRh2Jc+EIlPRFpBlw\nIzAI6A4cLiLbZTn0v6raK/N1aZBrhm3cONhpJ9hww6gjKY24D+aWosFaPlq3ht//Hm6/PepInAtH\n0Dv9KmCWqn6sqsuBh4H9sxwX2/Zljz9eOaUdWH37xDiKSz2/rsGD4Y47YPnyqCNxLrigSb8TUFPn\n8ezMc3Up0E9EJovIGBGJzY6kK1bAU09VVtJv08Z2BJs6NepIfm7uXGsB3a9f1JGsrnt3Wxk8cmTU\nkTgXXNCkn8uaxQlAZ1XdEfgHEJtfnZdegs03h86do46ktOJa4nn6advQpHnzqCP5uRNPhFtvjTqK\n/C1caO03nKsV9NdrDlA3ZXbG7vZ/pKpf1/n+aRG5WUTaqerC+ic77rihdMp8TkilUqRSqYDhNa6S\nZu3UVVVlfepPPDHqSFY3Zkx8B9QPOsg2aJ85E7bZJupocnfooTYwfv/9UUfiwpJOp0mn0wW/XzRA\ngxERaQ7MBH4NfAb8DzhcVafXOaY9sEBVVUSqgEdVtWuWc+mGGyq33goHH1xwSDlTtRkizz4L22Ub\nei5jEyfCEUfEa6eoZcus781779k/4+jcc+H77+Haa6OOJDeTJtn4yPLl8NprsPXWUUfkikFEUNWc\nx00DlXdUdQVwMvAMMA14RFWni8gJInJC5rDfAlNFZBJwHXBYQ+cbO9bupoYPL36zq/HjbWZGpSV8\ngO23h48/jleLgVdftbp5XBM+WE+e+++3ab5JcPXV9vt08slw+eVRR+PiItCdfphERFWVmhrYd1/o\n2xduvNG2+iuG886zPyxXXFGc88dd//5w6aWwyy5RR2LOOssGmYcMiTqSxu2zDxxyCPzhD1FH0ria\nGtsi88MP7ed8661tHGeLLaKOzIWtpHf6xdC5sy2GmT3bfsEWLy7OdSq1nl8rboO5cZyqmc2JJ8It\nt0QdRdOuv97+MK2/PrRtC3/6k9/tOxO7pA+2J+oTT9jH/f79rRQRpunTbUZD797hnjdJ4pT0P/oI\nvvzS1hDE3V57wbx5MGFC1JE0bPFiuOsuK+3UOv10u9EJ+3fJJU8skz7YtL1//AOOO87mbYeZoEaM\ngAMOKM9tEXMVp6Q/Zowl0yT8/2jWDI4/Pt7TN2+/3TqEbrbZT8+1a2djEldeGV1cLh5iV9PPZtQo\n+OMfCW1mT58+MGxY+e6SlQtVaz0xdSp07BhtLPvsY6WIQw6JNo5czZtnEwA+/ti6lsbJsmW2NeYT\nT1h7kbq++MKmm06aVHlrU8pZ4mv62ey3HzzzTDgze2pqrJzwf/8XXnxJFJftE7/9Fl5+2RZlJUWH\nDhbvv/4VdSQ/98gjVhatn/DB/sgfe6zf7Ve6RCR9sB/i11+3X7QTTii8D8rIkTY7KI6rPkstDm2W\n02n7f7v++tHGka/aAd2YfFAGLJa//x3+8peGjznzTNsGcs6c0sXl4iUxSR9+mtkzZ07hM3sqfdZO\nXXG400/KrJ36Uinr3fTKK1FH8pPnnrP9CBrbAW7jja1d9FVXlS4uFy+JqOnXt2IFnHEGvPCCJY2u\nXXO7xhdfWL1z3jxYe+3CYy0X8+fDttvazJkoBlFVbd74U09Bjx6lv35Q111nn5QefDDqSMwee8Dv\nftf0GoJ586yJ3LvvwiablCQ0V0RlWdOvr3Zmzwkn2MyeN9/M7X1PPmm1WE/4JurtE6dPt/16u8em\n72p+jjrKmsQtWBB1JDB5sm3rePjhTR/boQMceaSNj1WyVaus3DVvXtSRlFYik36tU0+F226zGv1j\njzV9vJd2fi7KqZu1G6ZIbHdbaFzbtvbzdPfdUUdiLRdOPRXWXDO3488+G+65xz7tVaqbboJrrrH+\nW5Uk0UkfrCvjM8/Y4pOrrmp4YG3pUhs0jNOuTHEQddJPYj2/rsGD7cZj1aroYqipsRLZ4MG5v6dj\nR9sR7OqrixdXnL3/Pvztb7ZS+fXXo46mtBKf9MFmf7zxhtVWjz8++8yesWOhujp5s0SKrarK9hVY\nubK011282JrexaX3T6H69LE7/ijvFm+4wUpN+f5sn3OO7Qj2+efFiSuuVq60cY8LL7T/bq+9FnVE\npVUWSR9g001tvvfcuXb3+NVXq7/upZ3s+va1+dsHHQTffFO66z73nLXYaN26dNcsBpFo+/HUtlw4\n/fT837vpptZv/5prwo8rzq691ho5nnIK/OIX8MEH8PXXTb+vXJRN0gfr2TNypM1I6d/fFmGBrVJ8\n+mnYP9vuvRWuZUsrs7Rta9MQSzWoldSpmtkcfrjdcHz6aemvfccdsOeeq7dcyMe558I//2kzuCrB\ntGm2OO2uu2zGWsuWlvijXq9SSmWV9GH1mT39+9vMnhdftGXzPj0tu5YtbTBy332tBDZ9etPvCWLV\nKvsjXC7jK61bW338jjtKe93ly23a6JlnFn6OLl2stUlSNoYJYsUKK+tceunqLab79auwEo+qxuLL\nQgnXqFGqG26o2ru36vDhoZ++LN1zj+rGG6um08W7xvjxqttsU7zzR+Gdd1Q32UR12bLSXfP++1V3\n2SX4eT78ULVdO9WFC4OfK84uvVR1991VV61a/fnHH1fda69oYgpDJnfmnGsD3+mLyCARmSEi74vI\nOQ0cc0Pm9cki0ivoNXP1m9/YANvy5aXZgrEcHHUUPPCANT8r1qKj2qma5aRHD9hqK2t0Vgq5tFzI\n1eabW9fZ668Pfq64mjzZPhXdeefPpwhXV9tEkChnYJVUPn8h6n8BzYBZQFegBTAJ2K7eMXsDYzLf\n/xJ4o4FzFffPocvLlCmqXbqoXnbZz++MgvrlL1Wfey7cc8bBgw+q7rpraa717LOq3buH9/9m1izV\nDTZQXbQonPPFyQ8/qO64o+pddzV8zOabq06bVrqYwkSJ7/SrgFmq+rGqLgceBuoPl+4H3JvJ6m8C\n62c2S3cx1rOnzV/+978bngZbiM8/hxkzYMCAcM4XJwcdZKtiZ84s/rVq7/LDWti25Zb26esf/wjn\nfHFy6aXWt6ux9hTV1ZUzXz9o0u8E1NR5PDvzXFPHbBrwuq4EOna0Ofxz5lipLIxpbWPH2j4GLVsG\nP1fcrLmmNTO77bbiXmfKFNsH4Xe/C/e8559vc/6XLAn3vFEaP97+f/zzn43/gfSkn7tcu7XV/88d\njy5vrknrrGOb2Gy2md2dB23JW471/LqOPx7uuw+++65418i35UKuunWz6Z833RTueaPy/fc2RnXt\ntU3P3KukGTxBu8rPAeruwdMZu5Nv7JhNM8/9zNChQ3/8PpVKkUqlAobnwtC8ue1aNmyY3RGNHm3l\nn3ytWGED6+W89H/zzW2V86OPWsIJ2+zZ1jjwuuvCPzfY3X4qZQuX2rQpzjVKZcgQW7OTSxO6HXaw\ndRZffRX/VfvpdJp0Ol34CfIZAKj/hf3R+AAbyG1J0wO5ffGB3ER78EHVjTaygcR8vfyyaq9e4ccU\nN6NG2WB1MZx1lupppxXn3LUOO0x12LDiXqPYXntNtUMH1fnzc3/PwIGqY8cWLaSioZQDuaq6AjgZ\neAaYBjyiqtNF5AQROSFzzBjgQxGZBdwG/CnINV20Dj/cOpoecUT+3SXLocFaLvbeGz77DCZODPe8\nS5bYlMNCWi7k44ILrDVDKdtyhOnbb+1T1o032qYxuaqurowSTyI3UXHRmzHDktsRR1i3wlxmkey4\no5WJqquLH1/ULr3Uul+GOah79dU2MPnQQ+GdsyGHHGJ9mYKs9o3K6afbHgf5rjN58kmbvZS0Vsv5\nbqLiSd8VbP5827R+m22sBUFjM3Jmz7YeJ/PnQ7NmpYsxKnPn2uYwn3wC664b/HzLl1vrgJEjYeed\ng5+vKVOm2KDuBx9Aq1bFv15Y/vtfm9U0dSq0a5ffez//3BbYLVyYrJ/Ritg5y8VD+/bW12jJEtuX\ntX5n07rGjLEkkqRfpiA22QR22w3uvz+c8z36KGy9dWkSPtjAZnU13H57aa4XhqVL4eij7dNVvgkf\nYKONrBw0bVr4scWJJ30XSKtW8J//2GyeX/3K7myzKfepmtnUtlwO+gE2zJYL+bjwQtuY6PvvS3vd\nQp11FgwcaI0DC9WvX/nP1/ek7wJr1sz6thx7rHU2nTBh9dd/+ME+Eey5ZzTxRWWXXaws8+qrwc7z\n/PPWHnzQoHDiylWvXvbJotTdQwsxbpxNJQ46lbUSFml50nehOf10W9G55572C1jrpZdg++1hgw2i\niy0KIraFYdANVv7+dxtQXSOC39aLLrL1GT/8UPpr52rxYvjjH+2P03rrBTuXJ33n8nTQQTYL4thj\nf0p25bRhSr6OOsr+/QvdknDKFPv6/e/DjStXvXtbfT8Om7835Iwz7Odrjz2Cn2v77W26bTlvKuNJ\n34Wub1945RVb/n722Zb0Kq2eX6tdO9ums9Ckec01tjo27JYL+bjoIrjiCisxxc1TT0E6DcOHh3O+\nZs1sRfUbb4RzvjjypO+KYsstbaHLa6/ZYpkdd4w6ougMHmwzSvLt1z5njvU9Gjy4OHHl6pe/tJ3n\n7r032jjqW7jQdsi7+27rERWWci/xeNJ3RbPhhrYB+gsvhNcCOImqqqzWnO+inxtugCOPtP2Lo3bR\nRXD55eG12A7DKafYIrKBA8M9b7k3X/PFWc6VwO23W5lr5Mjcjl+yxJq3vf02dO1a1NBytttutvDp\nmGOijgQef9w2dZ84MfzFY4sWWVfZhQut2WDc+eIs52Lo8MNtFlNNTdPHgs1E2X33+CR8sK6Vl11m\n3VKj9PnncNJJcM89xVkt3LYtdOpkG+KUI0/6zpVAmzZ2l5zLCtfly22+eakXYzVlwADo0qV4eyfn\nQtUWvR15ZHF7OJVziceTvnMlcuKJdgffVF383/+2gfDevUsTVz4uusiayUV1t//wwzB9ujX5K6Zy\nHsz1pO9cifToYQ29Ro1q+JioWi7kKpWCDh3gkUdKf+3PPrMFgPfdB2utVdxredJ3zoWiqRW6L7xg\nvW722qt0MeVD5Ke7/ZUrS3ddVduK8oQTStN0brvtbIHWggXFv1apedJ3roQOPtja/r73XvbXa+/y\no2i5kKtf/9oGOx97rHTXvOceW7dwwQWlud4aa9j6hHK82y/4R0tE2onIOBF5T0SeFZGsO0uKyMci\nMkVEJorI/woP1bnkW3PNn9r/1vfOOzBpUnQtF3IlYjN5Lrkk/wVnhaipsZXd997b+J4NYSvXEk+Q\n+4m/AuNUtRvwfOZxNgqkVLWXqlYFuJ5zZeH44y2Bfffd6s///e/Rt1zI1R57QOvWNl++mFStmdrp\np1sPoFIq1xk8BS/OEpEZwEBVnS8iHYC0qm6b5biPgN6q2mgLI1+c5SrJXnvBYYdZQzaw0kXPnjBr\nVmEbgERh9Gg47zxbINVYOWrVKuvbU8jX+PHWW+e110q/UGrJEujY0RZrtWhR2mvno2TbJYrIIlVt\nm/legIW1j+sd9yGwGFgJ3KaqWWcqe9J3lWTUKGtiVls++Otf7c7/+uujjSsfqtZi4uuv7XFDiXvl\nSvv00rJlbl91j11rLTj/fOjWLZp/x549rbdPHKfP1so36Tf6t1NExgEdsrx0ft0Hqqoi0lDG7q+q\nc0VkI2CciMxQ1ZezHTh06NAfv0+lUqRSqcbCcy6x9t7bVpVOmmRz8u+4A956K+qo8iNivZU+/rjh\npN2ypXWuTGrvpdoST5ySfjqdJp1OF/z+oOWdlKrOE5FNgBezlXfqvWcIsFRVr87ymt/pu4pyySW2\nYfy228JQtWpRAAALK0lEQVSbb9rCIxcv99wDzzwDDz0UdSQNC/VOvwmjgKOAYZl//qyVlIi0Apqp\n6tci0hrYAyjyWjrnkuHYY6F7d2vRMGJE1NG4bKqroU4BoiwEudNvBzwKdAE+Bv6fqn4lIh2B21V1\nHxHZAqgd328OPKCqVzRwPr/TdxXnt7+FL76wwUoXP6rWInzqVBvUjaOSDeSGzZO+q0Rz51ovni5d\noo7ENWTffW1txcEHRx1Jdt5a2bkE2WQTT/hxV26LtDzpO+dcI/r1K6+k7+Ud55xrxNKl0L697aQV\nx9XSXt5xzrkQtWlji8MmTow6knB40nfOuSaUU13fk75zzjWhnJqvedJ3zrkm+J2+c85VkC22sOZx\nNTVRRxKcJ33nnGuCSPmUeDzpO+dcDsqlxONJ3znnclAuSd8XZznnXA6+/RY22sga5K29dtTR/MQX\nZznnXBG0amWtsN9+O+pIgvGk75xzOSqHEo8nfeecy1E5zODxpO+cczmqvdNP8vBjwUlfRA4RkXdF\nZKWI7NTIcYNEZIaIvC8i5xR6Peeci1qXLrDGGrYZfFIFudOfChwIvNTQASLSDLgRGAR0Bw4Xke0C\nXNM55yJTDou0Ck76qjpDVd9r4rAqYJaqfqyqy4GHgf0LvaZzzkUt6YO5xa7pdwLqdquYnXnOOecS\nKelJv3ljL4rIOKBDlpfOU9Unczh/XsMdQ4cO/fH7VCpFKpXK5+3OOVd0O+0EM2bAN99A69alv346\nnSadThf8/sArckXkReBMVZ2Q5bW+wFBVHZR5fC6wSlWHZTnWV+Q65xKhuhquuALicF8a1Yrchi44\nHthaRLqKSEvgUGBUSNd0zrlIJLnEE2TK5oEiUgP0BUaLyNOZ5zuKyGgAVV0BnAw8A0wDHlHV6cHD\nds656CR5Bo83XHPOuTzNmQO/+AUsWGDTOKPkDdecc67IOnWyTpuzZkUdSf486TvnXAH69UtmXd+T\nvnPOFaC6Opl1fU/6zjlXgKTO4PGBXOecK8CyZdCuHXz2Gay7bnRx+ECuc86VQMuW0KsX/O9/UUeS\nH0/6zjlXoCSWeDzpO+dcgZI4g8dr+s45V6D582G77eCLL2xzlSh4Td8550qkfXtYf32YOTPqSHLn\nSd855wJIWonHk75zzgWQtEVanvSdcy6ApM3g8YFc55wLYMUKaNsWamqsvl9qPpDrnHMl1Lw59O4N\nb7wRdSS58aTvnHMBJanEE2TnrENE5F0RWSkiOzVy3MciMkVEJopIwhYsO+dc0yoi6QNTgQOBl5o4\nToGUqvZS1aoA13POuViqroY334SVK6OOpGkFJ31VnaGq7+V4eMQbijnnXPFsuKEt1Jo2LepImlaK\nmr4Cz4nIeBE5rgTXc865kktKiad5Yy+KyDigQ5aXzlPVJ3O8Rn9VnSsiGwHjRGSGqr6c7cChQ4f+\n+H0qlSKVSuV4Ceeci1a/frZI6/jji3uddDpNOp0u+P2B5+mLyIvAmao6IYdjhwBLVfXqLK/5PH3n\nXGJNmQKHHFL6PjxRzdPPekERaSUi62S+bw3sgQ0AO+dcWenRA+bNgy+/jDqSxgWZsnmgiNQAfYHR\nIvJ05vmOIjI6c1gH4GURmQS8CTylqs8GDdo55+KmWTOoqor/Ii1vw+CccyG56CKbtnnZZaW7prdh\ncM65iCRhBo/f6TvnXEgWLYLNNoOFC60nTyn4nb5zzkWkbVvYdFOYGuPpKp70nXMuRHEv8XjSd865\nEMV9+0RP+s45F6JSbZ/47bcwalT+7/Ok75xzIdp2WxvIXbCgOOefNAlOPhk6d4Zbbsn//Z70nXMu\nRGusAX37hlviWbIEbrsN+vSB/faDjTaCiRPh6acLiC+8sJxzzkE4JR5VO8cxx0CXLvDss3DJJfDR\nRzBkiD1XiBLNJHXOucpRXW0JuhBffAH33w933GGbrh97rDVxa98+nNh8cZZzzoVsyRLo2NEWa7Vo\n0fTxq1bBCy9Yoh87Fn7zGzjuOBgwAKSJZVf5Ls7yO33nnAvZuuvCFlvYoGufPg0fN2cO3HMP3Hmn\nvee442xwtm3b4sXmNX3nnCuChhZprVhhUy332w+23x4+/RQefdQGZk86qbgJHzzpO+dcUdRfpPXB\nB3D++TYAe+WVcOCBUFNjs3J69266jBMWT/rOOVcE1dXw6qvw8MOw2242jfO772DcOJuVc/TR0KZN\n6eMqeCBXRIYD+wLLgA+Ao1V1cZbjBgHXAc2AO1R1WAPn84Fc51zZULWOm926Wa3+gANgzTXDv04p\nu2w+C/RQ1R2B94BzswTTDLgRGAR0Bw4Xke0CXDO2gmxUHLUkxw4ef9Q8/uxE4JNP4Lnn4NBDi5Pw\nC1Fw0lfVcaq6KvPwTWDTLIdVAbNU9WNVXQ48DOxf6DXjLMk/+EmOHTz+qHn8DStVnT4fYdX0jwHG\nZHm+E1BT5/HszHPOOeci0Og8fREZh21uXt95qvpk5pjzgWWq+mCW47xI75xzMRJoRa6I/AE4Dvi1\nqn6f5fW+wFBVHZR5fC6wKttgroj4HwjnnCtASVbkZmblnAUMzJbwM8YDW4tIV+Az4FDg8GwH5hO0\nc865wgSp6f8DaAOME5GJInIzgIh0FJHRAKq6AjgZeAaYBjyiqtMDxuycc65AsWm45pxzrvgiX5Er\nIoNEZIaIvC8i50QdTz5EpLOIvCgi74rIOyJyatQxFUJEmmU+rT0ZdSz5EpH1ReQxEZkuItMy40iJ\nISLnZn5+porIgyISk9ncPycid4nIfBGZWue5diIyTkTeE5FnRWT9KGNsTAPxD8/87EwWkcdFZL0o\nY2xMtvjrvHamiKwSkXZNnSfSpF8Gi7eWA2eoag+gL3BSwuKvdRpWfkvix77rgTGquh2wA5CY8mFm\nrOs4YCdV7YmtWj8sypiacDf2u1rXX4FxqtoNeD7zOK6yxd/kItMYyRY/ItIZ2B34JJeTRH2nn+jF\nW6o6T1UnZb5fiiWcjtFGlR8R2RTYG7gDSNRgeuaubICq3gU2hpStFUiMLcFuHFqJSHOgFTAn2pAa\npqovA4vqPb0fcG/m+3uBA0oaVB6yxZ/jItNYaOC/P8A1wNm5nifqpF82i7cyd229sB+cJLkWm4W1\nqqkDY2hz4HMRuVtEJojI7SLSKuqgcqWqC4GrgU+x2W1fqepz0UaVt/aqOj/z/XwgpP2dItHQItPY\nEpH9gdmqOiXX90Sd9JNYTvgZEWkDPAaclrnjTwQR2RdYoKoTSdhdfkZzYCfgZlXdCfiGeJcXViMi\nWwKnA12xT4htROT3kQYVQKZjYiJ/p5tYZBpLmRuc84AhdZ9u6n1RJ/05QOc6jztjd/uJISItgP8A\n/1LVkVHHk6d+wH4i8hHwELCriNwXcUz5mI3d5byVefwY9kcgKXoDr6nql5npzY9j/0+SZL6IdAAQ\nkU2ABRHHk7fMItO9gaT9wd0Su2GYnPkd3hR4W0Q2buxNUSf9HxdviUhLbPHWqIhjypmICHAnME1V\nr4s6nnyp6nmq2llVN8cGEF9Q1SOjjitXqjoPqBGRbpmndgPejTCkfM0A+orI2pmfpd2wAfUkGQUc\nlfn+KCBRNz51Fpnu38gi01hS1amq2l5VN8/8Ds/GJgU0+oc30qRfBou3+gNHALtkpjxOzPwQJVUS\nP5qfAjwgIpOx2TuXRxxPzlR1MnAfdvNTW5P9Z3QRNU5EHgJeA7YRkRoRORq4EthdRN4Dds08jqUs\n8R9DA4tM46hO/N3q/PevK6ffX1+c5ZxzFSTq8o5zzrkS8qTvnHMVxJO+c85VEE/6zjlXQTzpO+dc\nBfGk75xzFcSTvnPOVRBP+s45V0H+P/Kf8s7zYd0GAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "# now solve for b: find an estimate - careful, we need matrices, not one dimensional vectors\n", "X = X.reshape(times.shape[0],1)\n", "Y = Y.reshape(times.shape[0],1)\n", "bhat = npl.inv(X.T.dot(X)).dot(X.T.dot(Y))##\n", "print(bhat)##\n", "# notice that in practice we solve using bhat = npl.pinv(X).dot(Y)##" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 3.5148]]\n" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# Investigate : \n", " # re-run the experiment above to see the noise influence, \n", " # average 10000 estimates of b (bhat)\n", " # display the distribution of these estimates\n", " # what can you do to reduce the variance of the estimates ?\n", " # Further, we predict the variance of this distribution - see further down ..." ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Add a correlated regressor to the model:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we make another HRF starting at t=2 (at the beginning of the second TR):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# HRF starting at t=2\n", "hrf2 = np.zeros(hrf1.shape)\n", "hrf2[1:] = hrf1[0:-1]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For simplicity, we remove the mean from these regressors. We do this to make the HRF regressors independent of the mean ($\\vec{1}$) regressor, but it may not be clear yet why that is a good idea." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Remove the mean from both HRF regressors\n", "hrf1 = (hrf1 - hrf1.mean())\n", "hrf2 = (hrf2 - hrf2.mean())\n", "plt.plot(times, hrf1, label='hrf1 start t=0')\n", "plt.plot(times, hrf2, label='hrf2 start t=2')\n", "plt.legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEACAYAAABfxaZOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8FeX1+PHPyQZkI0EwCWvCogICLmxVwbBUQLRa60ZA\nq62Ke+tXW6rtV7DaBVS0v1ZQKyoVKdW6FEXqV5CIOyBBWQWEIPsatiRAlvP7YxIMMQlJZia5y3m/\nXveVu8w9M5erJ5Mzz/McUVWMMcaEh4jGPgBjjDENx5K+McaEEUv6xhgTRizpG2NMGLGkb4wxYcSS\nvjHGhBHXSV9EhovIGhFZJyLjqng9U0QOiEhO2e13bvdpjDGmfqLcvFlEIoG/AUOBrcBiEZmtqqsr\nbfqBqv7Izb6MMca45/ZMvy+wXlVzVbUImAVcVsV24nI/xhhjPOA26bcBNld4vKXsuYoUOE9EvhSR\nd0Skm8t9GmOMqSdX5R2chH4yS4F2qlogIiOAN4HTXO7XGGNMPbhN+luBdhUet8M52z9OVQ9VuD9X\nRKaISAtV3VdxOxGxRYCMMaaOVLVO5XO35Z0lQBcRSReRGOAaYHbFDUQkRUSk7H5fQCon/HKqGpK3\n8ePHN/ox2Oezz2efL/Ru9eHqTF9Vi0XkTuBdIBKYpqqrRWRs2evPAFcCt4lIMVAAXOtmn8YYY+rP\nbXkHVZ0LzK303DMV7j8FPOV2P8YYY9yzGbkNIDMzs7EPwVf2+YKbfb7wIvWtC3lNRDRQjsUYY4KB\niKB1vJDrurxjjGlYZeMiTJjx6qTYkr4xQcj+Kg4vXv6it5q+McaEEUv6xhgTRizpG2NMGLGkb4zx\nTHp6OvPnz6/Te6ZOnUpKSgqJiYnk5eX5dGSmnCV9Y4xnRKROFx2Lioq49957mT9/PgcPHiQ5OZn/\n/d//pUePHkRHR/PQQw/V6zhyc3OJiIigtLS0Xu8vl56ezvvvv1/t69nZ2bRr167a10/miSeeIC0t\njebNm/Pzn/+cY8eO1TtWbVnSN8Y0ipKSEnbs2MGRI0fo2rXr8ee7dOnCo48+ysiRI12PWqnvKKfi\n4mLg+Dh4V8dQnXfffZeJEyfy/vvvs2nTJjZs2MD48eN92VdFlvSNMZ7KycmhV69eJCUlce2113L0\n6FHAOStu27YtkyZNIi0tjeuuu+54sk9KSmLo0KEAXH/99QwfPpyEhISTJtxFixbRu3dvmjdvTmpq\nKvfddx8AAwcOPB43ISGBzz//nG+++YbBgwfTsmVLWrVqxZgxYzhw4MDxWOnp6UyaNIlevXoRHx9P\nVlYW3377LZdeeikJCQk89thjJ+w7Pz+fESNGsG3bNhISEkhMTGTHjh21/neaPn06N910E127diUp\nKYkHH3yQF198sdbvr7fGXiWuwmpxaow5uUD+f6VDhw7ar18/3b59u+7bt0+7du2qTz/9tKqqLliw\nQKOiovQ3v/mNHjt2TI8cOaK5ubkqIlpSUvK9WGPGjNEJEybUuL/+/fvrjBkzVFU1Pz9fP/vsM1XV\nKuOuX79e582bp8eOHdPdu3frwIED9Ze//OUJx3722Wfrli1b9MiRI6qqmp6ervPnz692/9nZ2dq2\nbdsTnnv55Zc1KSmp2tvmzZtVVbVXr176yiuvHH/fnj17VER0375939tPdd952fN1yrU2OcuYEOPV\nPJ76VDVEhLvvvpvU1FQALr30UpYtW3b89YiICB566CGio6PL9uGudBITE8O6devYs2cPLVu2pF+/\nftXG7dSpE506dQKgZcuW3HPPPfz+97//3rG3aVO5+V/1qtpPVlYWWVlZJ33v4cOHad68+fHHiYmJ\nABw6dIjk5ORaH0NdWXnHmBCj6s2tvsoTPkCzZs04fPjw8cetWrUiJibGzcc7wbRp01i7di1du3al\nb9++zJkzp9ptd+7cybXXXkvbtm1p3rw51113HXv37j1hGzcXZesqPj6egwcPHn9cXmpKSEjwdb+W\n9I0xDaauF2ZPtn3nzp2ZOXMmu3fvZty4cVx55ZUUFhZW+b4HHniAyMhIVqxYwYEDB3jppZe+N7qn\n8vtOtv+qXn/55ZdJSEio8paYmMiWLU5zwe7du5/wV9CXX35JSkqKr2f5YEnfGBNgiouLOXLkCCUl\nJRQVFXHkyJFqh17OmDGD3bt3A9C8eXNEhIiICFq1akVERATffPPN8W0PHz5MXFwciYmJbN26lUcf\nffSkx5KSknJCjKpe37t37wln7KNHj+bQoUNV3g4ePEjbtm0B54L1tGnTWL16NXl5eTz88MPceOON\ntfo3csOSvjHGN5XH7Vd1Zlz5uZtuuonY2FhmzZrFH/7wB2JjY5kxY0aV8d99913OPPNMEhISuOee\ne5g1axZNmjQhNjaW3/72t5x//vm0aNGCRYsWMX78eJYuXUrz5s259NJL+clPfnLSM/n777+fRx55\n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\nbdyZy2ey8/BOftn/l94GDmNW4jEmOAVU0l+xwllfx0t7C/Zy33v38fdL/050ZLS3wcOYlXiMCU4B\nlfSfecYpHXjpV+/9iqu7XU2fNn28DRzmrMRjTHAKqPX0P9/yuacx1+5dywPzH2Dl7StJaJLgaWwD\n//mP09DGZcvO7ykoKiDt8TTW37WeVnGtvA1uTAWlpVBc/N2ttNRZ1Ve1+vsne1xaCqWlSnFpCcWl\nxRSVFJPSKor2rb2f/V+f9fQDKun3edbbs3ER4ZFBj/DDTj/0NK5xHDkCaWmwerX3w2uv/fe1DEof\nZE3TQ0hJiTPTvqAA8vOdn5Xv1/Ra+f3CwhMTdXGJUlR6lGNaQBEFFJFPsRRQJAUUi3O/JKLsFplP\naUQBJZEFaFQ+RBcgMQVIk3wkpgAiiiCiGIkoQSOKy+4XO/elBMqeI6IYlWKIKAEpf/27n0SUQmkk\nolFQGsXFiffz9q9/6/m/adAn/UA5FlN7o0fDeedZR61wU1ICu3fD9u3V3/btOzFhHzsGzZpBXBzE\nxjq3ivdjYyE2TomKO4jGbackdjvHYrZzNHo7hVHbOSzbOajbOVSyi6Ol+RwtLeBIaQFHSwqIioim\naWQszaJiaRYVR7OoWGKjYomNjiU2Jo64aOd+XEwsCU3iiGsSS3yM8zguJo7Y6FiaRTUjJjKGqIio\n790iIyK//5xU8VzZdpES2SBDwy3pmwa3cCFce63zs3Nn7+IWFBXQfUp3xl84nhvOusG7wKZGRUXO\nxfmakvn27bBrFyQlOX/pVXc75ZSKSV3J173sOLyd7Ye3s/1QpZ8V7kdIBGnxaaQlpDk/K95PSCMl\nLoX4mHgnoUfH0iy6GVERHq+7HiQs6ZtG8eyzMHEifPIJpKR4F3fNnjVkvpjJC5e9wIguI7wLHOaK\nipylTpYsgS++gNzc75L5/v1w6qk1J/O0NOd7jok5Ma6qsunAJhZvXcySbUtYu28t2w5tY/uh7ezM\n30lcdNwJybtiQm+d0Pr4/fgYj1dYDGGW9E2jeeghmD3buaib4OE18083f8qPZv2IOVlz6Numr3eB\nw0RpKXz9NSxe/N1t+XKn7WifPtC7N3Ts6CTy1q2hZUtnRnxt7Di8gyXblrB462IWb3NuURFR9Gnd\nhz6t+9CtVTcnmSekkRqfasuY+8CSvmk05X2MN26Et9/+/lmgG2+vfZub37qZD274gNNOOc27wCFG\n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\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "These `hrf1` and `hrf2` regressors are correlated. The Pearson correlation coefficient between the HRFs is:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# what is the correlation between these regressors?\n", "np.corrcoef(hrf1, hrf2) ##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "array([[ 1. , 0.7023],\n", " [ 0.7023, 1. ]])" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some simulated data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we are going to make some simulated data from the *signal* formed from the correlated regressors, plus some random *noise*.\n", "\n", "The *signal* comes from the sum of `hrf1` and `hrf2`. This simulates the occurence of two events, one starting at t=0, one at t=2, both causing an HRF response of the same magnitude 1.:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "signal = hrf1 + hrf2\n", "plt.plot(hrf1, label='hrf1')\n", "plt.plot(hrf2, label='hrf2')\n", "plt.plot(signal, label='signal (combined hrfs)')\n", "plt.legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEACAYAAABfxaZOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYlNXbwPHvAUFFEVBQcTf3LUPNLU1SM/PNrfqVpe2a\nVrZamW1SuefSZqJmlmlqK1mZZhotapYL7qRm7mKiIqKyznn/OICAIDPMDMMM9+e65mLmmTPnudnu\nOXOesyitNUIIIUoHL1cHIIQQovhI0hdCiFJEkr4QQpQikvSFEKIUkaQvhBCliCR9IYQoRexO+kqp\nD5VSJ5RS269Q5h2l1F6l1FalVJi95xRCCFE0jmjpzwd6F/SkUqoP0FBr3Qh4GJjlgHMKIYQoAruT\nvtb6N+DMFYr0Az7OLLsBCFRKVbP3vEIIIWxXHH36NYHDOR4fAWoVw3mFEELkUVwXclWex7L2gxBC\nuECZYjjHUaB2jse1Mo/lopSSNwIhhCgCrXXehnWBiqOlvwy4F0Ap1RFI0FqfyK+g1tptb2PHjnV5\nDKUxdonf9TeJ37U3W9nd0ldKLQa6AcFKqcPAWMAnM4nP1lovV0r1UUrtA84DD9h7TiGEEEVjd9LX\nWt9lRZmR9p5HCCGE/WRGroOEh4e7OoQic+fYQeJ3NYnfvaii9Ak5g1JKl5RYhBDCXSil0DZcyC2O\n0TtCuJRSVv8/CFGiOaJhLElflAryKVK4O0c1XqRPXwghShFJ+kIIUYpI0hdCiFJEkr4QLlSvXj1W\nr15tdflZs2ZRrVo1KlWqxJkzV1rcVoj8SdIXwoWUUlZfoEtLS2PUqFGsXr2axMREgoKCeOWVV2jV\nqhU+Pj689tprTo5WeAJJ+kK4gYyMDOLi4khOTqZZs2bZxxs1asSbb77J//3f/8nQVGEVSfpCuNiW\nLVto3bo1gYGBDBo0iJSUFKKjo6lVqxZTpkwhNDSUe+65JzvZBwYG0rNnTwDuvfdeevfujb+/vwxL\nFVaRcfpCuJDWms8//5yVK1dStmxZrrvuOj766COaNm3KiRMnOHPmDIcOHcJisRAXF0f9+vU5e/Ys\nXl7SXhNFI385QgBK2X8r2nkVTzzxBNWrVycoKIi+ffsSExMDgJeXF6+99ho+Pj6ULVtWWvLCISTp\nCwFobf+tqKpXr55938/Pj6SkJABCQkLw9fW191sTIhdJ+kKUULZemJULucIakvSFKEFs7cJJT08n\nOTmZjIwM0tLSSE5OxmKxOCk64Qkk6QtRguQct59fyz3vsaFDh+Ln58eSJUsYP348fn5+LFy4sFhi\nFe5J1tMXHi9zvXFXhyGEXQr6O7Z1PX1p6QshRCkiSV8IIUoRSfpCCFGKSNIXQohSRJK+EEKUInYn\nfaVUb6VUrFJqr1JqdD7PByulViilYpRSO5RS99t7TiGEEEVjV9JXSnkD7wG9gebAXUqpZnmKjQS2\naK2vAcKBaUopWejNFn/+CTLhRgjhAPa29NsD+7TWB7TWacASoH+eMseBSpn3KwGntNbpdp639Ni7\nFzp0gM8/d3UkQggPYG/SrwkczvH4SOaxnOYCLZRSx4CtwJN2nrN0mTULunWDF1+ElBRXRyMcTLZL\nFMXN3m4Wa6Y5vgjEaK3DlVINgFVKqdZa63N5C0ZERGTfDw8PJzw83M7w3NyFC/Dxx7BxI4wcCZGR\n8KS8Z3qSomyX+Oeff9KyZUtOnjzJXXfdxa+//sr58+dp2bIl06dPp3379k6OWrhSdHQ00dHRRa9A\na13kG9ARWJHj8RhgdJ4yy4HrcjxeDbTLpy4t8pg7V+tbbjH3t2/XumpVrc+ccW1Mbqgk/23Vq1dP\nr169utBy6enp+tChQ1oppdPT07XWWu/fv1/PmDFDx8XFaYvFoufMmaODg4N1UlKSs8MWLlDQ33Hm\ncavztr3dOxuBRkqpekopX+BOYFmeMrFATwClVDWgCbDfzvN6Pq1h5kx47DHzuGVLuOUWmDzZtXEJ\nhyvqdon169fnqaeeolq1aiilGDZsGKmpqezZs8fF35Eoyezq3tFapyulRgIrAW9gntZ6t1JqeObz\ns4EJwHyl1FbMNYTntdan7Yzb861fD0lJ0KvXpWOvvQatW8Ojj0Lt2q6LTTiMduB2iTExMaSmptKw\nYUMXfCfCXdg9dFJr/QPwQ55js3Pcjwf62nueUmfmTHjkEcj5z12rFowYAa++CvPnuy42D6Res38D\nEj3W9pU8c26XCGRvl9i0adNc2yXCldfaT0xM5J577iEiIgJ/f/+ifQOiVJDx8iXRiROwfDm8997l\nzz3/PDRuDNu3Q6tWxR+bhypKwnaUvNslHjt2DLB+u8SLFy/St29fOnfuzOjRl82PFCIXWYahJPrg\nA7jtNggKuvy5gAB4+WWQf26PZ82onpSUFAYMGECdOnWYPXt2oeWFkKRf0qSnm6GZWRdw8zN8OOzZ\nAzaM7xbu4UpdOHmlpaVx++234+fnx0cffeS8oIRHkaRf0nz7rblIGxZWcBlfX5gwwXT1yPIMHsWW\n7RLXrVvH999/z6pVqwgMDMTf3x9/f3/Wrl1bbPEK9yPbJZY0PXvCAw/A4MFXLqe1WZ7hqafg7ruL\nJzY3JdslCk/gqO0SJemXJLGxEB4OBw9C2bKFl//lF7j/fvM6a8qXUpL0hSeQPXI90fvvw9Ch1ifw\nbt3MCJ6ZM50blxDCY0hLv6RISoK6dSEmxraJV7t2mU8Hf/+d/2gfIS194RGkpe9pFi40LXdbZ9o2\nbw4DBsCkSc6JSwjhUaSlXxJobbpp3n4bevSw/fXHjpnXb9kCdeo4Pj43Jy194Qmkpe9Jfv0VMjKg\ne/eivb5GDbMezyuvODYuIYTHkZZ+SXDHHdC1Kzz+eNHrSEw0yzOsWAHXXOO42DyAtPSFJ5Ahm57i\n2DFo0QIOHDBLLNhj5kxYtgxWrnRIaJ5Ckr7wBNK94ynmzIFBg+xP+AAPPwz//gs//mh/XcLlJk6c\nyLBhw5x+no8++oiuXbtescx1113H1q1bnR5LTl5eXuzfn//WG4sWLeKmm25yynnDw8OZN29evs9F\nRERwzz332FTf33//zTXXXEOlSpV4L79FFDNt27aN6667zqa6i0JW2XSltDST9B2VpH18YOJEsxhb\nz565l2UWbmfMmDGuDgGAb7/9loCAAFq3bu3qULINHjyYwYXNWi+iK21hae3WljlNmTKFHj16EBMT\nc8VyV199NYGBgXz33XfccsstNp/HWpIVXOnrr6FRI7MrlqPceiuUKweffuq4OkWpFhkZaXPr1lPZ\n0k2Ynp4OwMGDB2nevLlVrxk8eLDTV0uVpO9KObdDdBSl4M034aWXIDnZsXULp5g8eTK1atWiUqVK\nNG3alDVr1gCXdyUsWLCAunXrEhwczLhx46hXr16usnfccQf33XcflSpVomXLlmzatCn7tZMmTaJh\nw4ZUqlSJFi1aEBUVZVVsqamp/Pzzz3Tr1i37mMViYcKECdn1tWvXjiNHjgBmEbhrr72WwMBA2rdv\nz/r167NfFx4eziuvvMJ1112Hv78//fr1Iz4+nsGDBxMQEED79u05ePBgrvN///33NGjQgJCQEJ5/\n/vnspJu3S8rLy4vZs2fTuHFjgoKCGDlyZK56PvzwQ5o3b07lypXp3bs3hw4dyn5u1apVNG3alMDA\nQB5//PGc+3ZfRilFampqgT/nevXqMWXKFFq3bk3FihXp0aMH0dHRjBw5kkqVKrF3716WL19OixYt\nqFSpErVq1WLatGnZr+/WrRurV68mLS3Nqt9Pkdiyoa4zb5TgzaudYts2rUNDtU5NdU79/ftr/eab\nzqnbzZTkv63Y2Fhdu3Ztffz4ca211gcPHtT//POP1lrriIgIPWTIEK211jt37tQVK1bUa9eu1amp\nqfrZZ5/VPj4+2Zuqjx07VpcrV07/8MMP2mKx6DFjxuiOHTtmn+fzzz/PPsfSpUt1hQoVdFxcnNZa\n6/nz5+suXbrkG9+OHTt0hQoVch2bMmWKbtWqld6zZ4/WWutt27bpU6dO6VOnTunAwEC9cOFCnZGR\noRcvXqyDgoL06dOntdZad+vWTTdq1Ejv379fnz17Vjdv3lw3bNhQr169Wqenp+t7771XP/DAA9nn\nUUrp7t276zNnzuhDhw7pxo0b6w8++CDfmJVSum/fvvrs2bP60KFDOiQkRK9YsUJrrXVUVJRu2LCh\njo2N1RkZGXrcuHG6c+fOWmutT548qf39/fWXX36p09PT9YwZM3SZMmX0vHnz8v15FPZzrlu3rg4L\nC9NHjhzRycnJWmutw8PDc9VXvXp1/fvvv2uttU5ISNCbN2/OdY5KlSrp7du3X3bugv6OKeaN0UVR\nvf++ufCauRWew02aZDZRPy3bEVtFKftvReDt7U1KSgo7d+4kLS2NOnXqcNVVVwG5uxK++OIL+vXr\nR+fOnfHx8eH111+/rH+5a9eu9O7dG6UUQ4YMyXXh9fbbb8/eoeuOO+6gUaNGbNiwodD4EhISLtt+\ncd68eYwfP55GjRoB0KpVKypXrsz3339PkyZNGDx4MF5eXgwaNIimTZuybNkywLSSH3jgAerXr0+l\nSpW4+eabady4Md27d8fb25v//e9/bNmyJde5Ro8eTWBgILVr1+app55i8eLFBcb6wgsvUKlSJWrX\nrs0NN9yQ/f1HRkYyZswYmjRpgpeXF2PGjCEmJoZDhw6xfPlyWrZsya233oq3tzdPPfVUrp3M8nOl\nn3PW9pc1a9akbI41tHL+Ln19fdm5cyeJiYkEBAQQlmcZdX9/fxISEq4Ygz0k6bvC2bOwZIlJ+s7S\ntKnZfWvCBOedw5Nobf+tCBo2bMhbb71FREQE1apV46677uL48eOXlTt27Bi1atXKfly+fHmqVKmS\nq0y1atWy7/v5+ZGcnIwlc7+FBQsWEBYWRlBQEEFBQezYsYNTp04VGl9QUBDnzp3Ldezw4cM0aNAg\n3xjr5JkRXrdu3eztH/PGWK5cOapWrZrrcVJSUq7X186xLEmdOnVy1ZVX3m0ns+o6ePAgTz75ZPb3\nnvVzO3r0KMePH8/1c817zvxc6edc0OtzvkF/+eWXLF++nHr16hEeHs4ff/yRq+y5c+cIDAy8Ygz2\nkKTvCgsWwI03mpm0zhQRYTZQP3DAuecRdrnrrrv47bffOHjwIEqpfPe5rVGjRna/OZh9ca1J2mCS\n3sMPP8zMmTM5ffo0Z86coWXLllZdlGzYsCFa61xvRLVr12bfvn2Xla1Zs+ZlffIHDx6kZs2a+dZt\nzUiYnH3vhw4dKrCuK6lTpw5z5szhzJkz2bfz58/TqVMnQkNDOXz4cHZZrXWux0WJubAy7dq1Iyoq\nipMnTzJgwADuuOOO7OeOHj1KamoqTZo0seI7KxpJ+sVNa9O14+gLuPmpXt3M8n35ZeefSxTJnj17\nWLNmDSkpKZQtW5Zy5crh7e19WbnbbruNb7/9lvXr15OamkpERITVI0nOnz+PUorg4GAsFgvz589n\nx44dVr3W19eXnj17Eh0dnX1s6NChvPLKK+zbtw+tNdu2beP06dP06dOHPXv2sHjxYtLT01m6dCmx\nsbG5hh/mjNma+KdOnUpCQgKHDx/mnXfe4c4777Qq7qz+a4ARI0YwYcIEdu3aBcDZs2f5/PPPAejT\npw87d+7k66+/Jj09nXfeeYe4uLgr1lsUWa9LS0tj0aJFnD17Fm9vb/z9/XP9vn/55Rd69OiBj7O6\nfZGkX/zWrAFvb7j++uI536hRZi/dzZuL53zCJikpKYwZM4aQkBBCQ0OJj49n4sSJQO7x4i1atODd\nd99l0KBB1KhRA39/f6pWrZrdb5zf2PKsx82bN2fUqFF06tSJ6tWrs2PHDrp06ZKr3JVap8OHD+eT\nTz7JfvzMM89wxx130KtXLwICAhg2bBjJyclUrlyZ7777jmnTphEcHMzUqVP57rvvqFy58mUxFRZz\nlv79+9O2bVvCwsK45ZZbeOihh/J9bX71ZB0bMGAAo0ePZtCgQQQEBNCqVStWZs5aDw4O5vPPP+eF\nF14gODiYffv25frZ5GVNzAW9LsvChQupX78+AQEBzJkzh0WLFmU/t2jRIkaMGFFoffawexkGpVRv\n4C3AG/hAaz05nzLhwAzAB4jXWofnU0bbG4tbuPVW6NULnPyLzSUyEr74AlatKvIFR3fmicswJCUl\nERQUxL59+6hbt67Tz9elSxdmzpxZoiZoeZpt27bxyCOPFLjHcYlYe0cp5Q38DfQEjgJ/AXdprXfn\nKBMIrAVu0lofUUoFa63j86nL85P+4cNmMbSDB6FixeI7b1rapaWbnTR1vSTzlKT/7bff0qNHD7TW\njBo1ir/++ivXGHHh2UrK2jvtgX1a6wNa6zRgCdA/T5m7gS+11kcA8kv4pcbs2WbD8+JM+HBpeYbn\nnzdLOAu3tGzZMmrWrEnNmjX5559/WLJkiatDEm7I3pb+7ZgW/LDMx0OADlrrx3OUyerWaQH4A29r\nrT/Jpy7PbumnpJgNTn75xQynLG5aQ5cuZpjoffcV//ldyFNa+qJ0c1RL394F16z5T/IB2gA9AD9g\nvVLqD6313rwFIyIisu+Hh4cTHh5uZ3glyBdfmC4WVyR8uLQ8w6BBZv3+8uVdE4cQwi7R0dG5RlPZ\nyt6WfkcgQmvdO/PxGMCS82KuUmo0UF5rHZH5+ANghdb6izx1eXZLv3NneO45GDjQtXHcdhu0b29W\n4iwlpKUvPEFJ6dPfCDRSStVTSvkCdwLL8pT5BuiilPJWSvkBHYBddp7XvWzZAkeOQN++ro7E9O1P\nnQpWTuwRQngWu7p3tNbpSqmRwErMkM15WuvdSqnhmc/P1lrHKqVWANsACzBXa126kv7MmTB8OJQp\nAdsXNG5sunfGj4fp010dTbEpyjroQngi2S7R2c6cgauugthYyLFmh0udOGG2aPzrL6hf39XRCCHs\nINslljTz50OfPiUn4YOJ5YknzJr7QohSRVr6zmSxmO6UBQvMhdySJCnJxLZsGbRr5+pohBBFJC39\nkuTHH8HfHzp1cnUkl6tY0azC+dxzRV4WWAjhfiTpO1PWdogl9SLigw9CXBz88IOrIxFCFBPp3nGW\nf/+Fa6+FQ4fAz8/V0RRs2TLTt79tW8l9cxJCFEi6d0qKyEi4996SnfDBzB1ITpall4UoJSTpO0Ny\nMnz4ITzyiKsjKZxSZpbw11+7OhIhRDGQpO8MS5dC27aQuXF0iTdwIERFuToKIUQxkKTvDDNnwsiR\nro7Ceh06mGUZ9l62Bp4QwsNI0ne0v/6Ckyfh5ptdHYn1vLygf3/p4hGiFJCk72gzZ5q+/Hw2ty7R\npF9fiFJBhmw6Unw8NGwI+/ZBcLCro7FNaqpZnmHXLggNdXU0QggryZBNV5o3DwYMcL+ED+Dra7qk\nvvnG1ZEIIZxIkr6jZGTArFlmBq67ki4eITyeJH1HWb4cqlY1s3DdVe/esH49JCS4OhIhhJNI0neU\nrHV23Jm/P1x/vXkDE0J4JEn6jrB3r1nG4M47XR2J/aSLRwiPJqN3HOGZZ8DHByZPLrxsSXfypBmB\nFBcH5cu7OhohRCFk9E5xS0+HTz4xe+B6gpAQuOYaWL3a1ZEIIZxAkr691q6F2rXNPrieYsAA6eIR\nwkNJ0rdXVJRJkp5k4ECzzn56uqsjEUI4mCR9e2htWsQDB7o6EseqVw9q1YJ161wdiRDCwSTp22Pr\nVrPGTsuWro7E8aSLRwiPZHfSV0r1VkrFKqX2KqVGX6HctUqpdKXUrfaes8TI6trxxG0Gs4ZuuuuI\nKiFEvuxK+kopb+A9oDfQHLhLKdWsgHKTgRWA52TIzKSfmAj//QcpKc45TUJyAvEX4knLSHPOCfLT\nqpX5FBMTU3znFEI4XRk7X98e2Ke1PgCglFoC9Ad25yn3OPAF4MZrFOTx779w7BgpbTvTrJFJ+GfP\nQpkyEBBw+S0wMP/j+T3n43PpNGcunqHBOw1QSnE2+Sy+3r4ElAsgoGwAAeUCCCwXaO5nPs75NbBc\n4GXHAsoFUMbLil971jaKUVEQFua8n6MQoljZm/RrAodzPD4CdMhZQClVE/NG0B2T9D2jvyAqCvr1\n48sob5o3h1WrTE/IxYsm+WfdEhJyPz57Fv7558plfH0vvQFcbL2ACqE3sz1iEQEBmgtpF0hITuBs\nylnOJp/N9TUhOYGzyWc5cepEvsfPppwlMSWRcmXK5XpTuCroKub1m0e5MuVyf48DBsCjj8Jrr7nm\nZyyEcDh7k741Cfwt4AWttVZKKa7QvRMREZF9Pzw8nPDwcDvDc6KoKHjuOSKnwJNPmkNKgZ+fuRV1\nSXqt4cKFrDcDTZ/lkTTeNYdx42DqVEUF3wpU8K1ATWoWsX5NUmpS9ptCQnICb/z6Bu9seIfnr3s+\nd+FOneDECfMu1aBB0b4hIYRDRUdHEx0dXeTX27UMg1KqIxChte6d+XgMYNFaT85RZj+XEn0wcAEY\nprVelqcu91mGIXOpgp1rTnBj33IcPJi7S8ZRog9EM3L5SFYN3E6rVooNG5yTe/ec2kPneZ3Z9dgu\nqlaomvvJhx+GJk1g1CjHn1gIYbfiXoZhI9BIKVVPKeUL3AnkSuZa66u01vW11vUx/fqP5E34bufb\nb6FXLyI/KsfQoc5J+ACzNs5iRLsRhIYqnnkGnn++8NcUReMqjRly9RDG/jz28idl6KYQHsWupK+1\nTgdGAiuBXcBSrfVupdRwpZSHLEaTj6goknsPYNEiGDbMOac4kXSCH//5kXuuvgeAp5+GjRvh11+d\nc75Xu73Kl7u/ZOd/O3M/0aMH7NhhunmEEG5PVtm0VVIS1KjBgjcO8uWaIKftLjjhtwn8e+Zf5vab\nm31s8WKYNg3+/BO8nDCt7u0/3uaHfT+wYsiK3E8MGgTdu5uuHiFEiSKrbDrbjz+iO3bk7QVBPPKI\nc06RYclgzqY5jGg3ItfxQYNMV9InnzjnvI9c+wj7z+xnxb48ST9r6KYQwu1J0rfV119zMGwAZ85A\nr17OOcWKfSuoWqEqbWu0zXVcKZg+HV56Cc6fd/x5fb19mdprKqN+HEW6JcdiazffDL//DomJjj+p\nEKJYSdK3RVoafP897x7ox/DhzuliAYjcFMkj7fL/GNGpE3TtCm++6Zxz923cl2oVqjFn05xLBytV\ngi5dZBtFITyA9OnbYvVq0p8fQ8j+P/n7b7MPuqMdTDhI2zltOfT0Ifx8/PIvcxDatIFt26Bm0Ybr\nX1FMXAw3LbyJv0f+TWC5QHNw7lyzscqSJY4/oRCiyKRP35miotgQOpCbb3ZOwgeYu3kuQ64eUmDC\nB6hb12zU9eKLzonhmurXcEujWxj/6/hLB/v1gxUrnLfAkBCiWEjSt5bW6KgoJuwawIgRhRcvitSM\nVOZtmcfwtoWPdh0zBn780QzjdIZx3cfxYcyH/HP6H3OgWjWzhLRsoyiEW5Okb61Nm7io/DhQrild\nuzrnFN/EfkPT4KY0C7lsodLL+PvD66+bPdmd0SsW6h/KMx2fYfRPOVbLzlpuWQjhtiTpWysqip8q\nDGDEI8ppy+fP2jiLEW2t/xjx4INmsTZn5eFnOj3Dn0f/5LeDv5kDAwaYbRQzMpxzQiGE00nSt1L6\nF1G8e2Qg997rnPpj42PZdXIXA5tZv/Wit7cZwvncc87pai/vU55JPSfx9MqnsWiLWfinWjVYv97x\nJxNCFAtJ+tbYu5fkY6eod0d7AgKcc4rZG2fzYNiD+Hr72vS6nj2heXN4913nxDWo5SC8vbxZtG2R\nOSBdPEK4NUn6VrB8FcU3uj/DH3HOj+ti2kU+2fYJD7ct2jIHb74JkyaZxT8dzUt5MeOmGby45kXO\np56/NDu3pA+vFULkS5K+FRI+jmJD6ADatXNO/Ut3LqVDrQ7UC6xXpNc3bQp33w05tiNwqM61O9O5\ndmemrZ8GrVubPv3t251zMiGEU0nSL0xcHL77dhE2qrvTThG5MdKmC7j5GTsWPvsMdu1yUFB5TO45\nmbc3vM3Rc8eki0cINyZJvxCnPv6Wlao3dwyxra/dWluOb+HYuWP0adTHrnqqVDGTtZ591kGB5VEv\nsB7D2gzjpTUvyQJsQrgxSfqFODX3axJvGECFCs6pP3JjJA+3fRhvL2+763rsMdi7F1audEBg+Xix\n64us/Gclm+qXg6NHzebwQgi3ImvvXEHaqUSSQ2px9I8jNG1fyeH1J6YkUvetuux6dBeh/kXcVDeP\nqCh4+WWIiYEy9u6AnI85m+awaPsion9tgGrVyuzuIoRwGVl7x4E2jV/BzsAuTkn4AAu3LaTnVT0d\nlvAB+veHkBCYN89hVebyYNiDnL54mj+uDZV+fSHckCT9Kzj/aRTetw1wSt1aa2ZtnFXgEspFlbXm\n/tixcPasQ6sGoIxXGab3ms5DFxajt26F//5z/EmEEE4jSb8Af29Ppe1/P3D1y/2cUv+6w+tIzUjl\nhno3OLzusDDo0wcmTHB41QDc2OBG6oc2Y2/bemaTeCGE25CkX4DosT9ztkYzytat7pT6s9bZUU5a\nyGfcOPjgA+dda51641SmVd9P6hdLnXMCIYRTSNLPx8WL4Ls8Cv97rF8HxxbxF+L5bs933HfNfU6p\nH6BGDXjqKRg9uvCyRdEspBn+AweR8Us0nDvnnJMIIRxOkn4+PltioR/fUPlB5/Tnz98ynwFNB1C5\nfGWn1J9l1CizNtratc6p/4X/m8j62nDksw+ccwIhhMNJ0s/Hb9P+xKdqEDRq5PC6LdrC7E2zGdHO\nSTux5ODnBxMnmlGVFovj6w/2CyajX1/2zZvq+MqFEE5hd9JXSvVWSsUqpfYqpS7rTFBKDVZKbVVK\nbVNKrVVKXW3vOZ0pJgbaHIqi4hDndO38tP8n/Mv606FmB6fUn9fdd5u10RYvdk791z8xjbCYOH7a\nLZumC+EO7Er6Silv4D2gN9AcuEsplXfbp/3A9Vrrq4E3gDn2nNPZIiPhjrJReN3qnK6drHV2nHUB\nNy8vL5gxw2yveOGC4+svW7se6U0a8fn7j5JuSXf8CYQQDmVvS789sE9rfUBrnQYsAfrnLKC1Xq+1\nzhoxvgE06JeVAAAgAElEQVSoZec5nSYxETZ/GktQmSRo29bh9R9NPEr0gWjubnW3w+u+ki5doGNH\nmDbNOfVXHvQA/7cjlQ+3fOicEwghHMbepF8TOJzj8ZHMYwV5CCix/QCLFsGTdb42E7Kc0BL/YPMH\nDGo5CP+y/g6vuzCTJsFbb8GxY46vW916KzfvSiVizaskpiQ6/gRCCIexd3UWqxfLUUrdADwIXFdQ\nmYgcC8KHh4cTHh5uR2i20RpmzYLfMqJgoONnNaVb0pm7eS7LB7vmPe+qq2DoULMuz4eObpA3aoRP\nSHUeyajDxN8mMrHnRAefQAiRJTo6mujo6CK/3q4F15RSHYEIrXXvzMdjAIvWenKeclcDXwG9tdb7\nCqjLpQuurVsHo4cc5dezV6Pi4sDHx6H1R8VG8ea6N1n7oJPGT1rh7Flo0gR++MHM2nWoV17hXGI8\n9Wp+xqaHNxV5QxghhG2Ke8G1jUAjpVQ9pZQvcCewLE9AdTAJf0hBCb8kmDULxoYtQ/Xp4/CED47Z\nKMVeAQFmd61nnnHCbocDBuC//CeeuPZxXvjpBQdXLoRwFLuSvtY6HRgJrAR2AUu11ruVUsOVUsMz\ni70KBAGzlFJblFJ/2hWxE8THmyVkrj/9NQxw/Kidf07/w6bjm/hfi/85vG5bDR1q9tJdtqzwsjZp\n0wZSU3kusA9rD69l3eF1Dj6BEMIRZD19YOpU2LcxgcjldeD4cRy9Y8roVaPJ0BlM7VUyJjGtXAkj\nR8LOneDryA3BnnwSQkJY0LcOM/+ayfqH1uOlZP6fEM4k6+nbyGKB2bNhVLPlEB7u8ISfkp7C/Jj5\nDG87vPDCxeSmm6BhQ3j/fQdXPGAAfP01Q64eQoYlgyU7ljj4BEIIe5X6pL96tVmuoOHOKKd07Xy5\n+0taV29NoyqOX9LBHtOmmaWXT51yYKVdu8LBg3gdOsyMm2YwZvUYLqZddOAJhBD2KvVJPzISRg5N\nRv34I/Tt6/D6nbFRiiM0bw7/+x+89poDKy1TxvwMv/mGrnW7cm2Na5m+froDTyCEsFepTvpHj8Ka\nNTC4+mpo3drsM+hAO/7bwf4z++nb2PFvJo4QEWHW5ImNdWClAwdmb6M4uedkpv8xnePnjjvwBEII\ne5TqpD9vHgwaBH4/OqdrJ3JjJEPDhuLj7fghoI4QEmLW23/uOQdWeuONsHkzxMfToHIDHrzmQV5e\n87IDTyCEsEepTfrp6TB3LowYlmHGL/bvX/iLbJCUmsSn2z9laJuhDq3X0R5/HPbtg4ULHVRh+fLQ\ns2f2NoovX/8yP+7/kR//+dFBJxBC2KPUJv3vv4fataH1xT+genWzToEDLd6+mOvrXk/tgNoOrdfR\nypaFTz81a+47bGvFgQMhKgqAgHIBfDzgYx745gFOnj/poBMIIYqq1Cb9yEgYMQLT/zzQsWvna63N\nHrjFsFGKI4SFwQsvwODB5hOQ3f7v/+Dnn+H8eQC61+/OkFZDeHDZg5SUeSFClFalMunv3w8bN8L/\nbtemRerg/vy/jv1FQnICvRr0cmi9zvT002aKwrhxDqgsKAg6dIAVK7IPvdH9DY6dO0bkxkgHnEAI\nUVSlMunPmQP33gvl9+80TdvWrR1af+TGSIa3He5Ws1G9vODjj80nIIfsqZujiwfA19uXT2/9lFd+\nfoVdJ3c54ARCiKIodcswpKRAnTrw22/Q+LNxZuGdt95yWP1nLp6h/tv12fP4HqpWqOqweovLN9/A\nU0+ZbSMDAuyo6OhRaNUKTpzItYDd3E1zmfnXTDYM3UDZMmXtD1iIUk6WYSjEV1+ZXNS4MU7pz1+w\ndQF9GvVxy4QPZhDTTTfBY4/ZWVHNmmZj+Tzrfg9tM5Srgq5izOoxdp5ACFEUpS7pz5qVeQH30CFz\nu67APV1sprUmclOk21zALcj06bBpk9lJzC45JmplUUoxt+9cPtv5mQzjFMIFSlXS37nTjEnv3x/T\nj3HLLWbpAAf55eAveCkvutbp6rA6XcHPzwzjfOopO4dxDhxofs4WS67DVfyqyDBOIVykVCX9yEh4\n6KHMLmYnjNqZtXEWI9qOQDlhf93iFhZmZuvaNYyzSROoVAn++uuyp3pc1YPBrQbz0LKHZBinEMWo\n1FzIPX/eTMaKiYE6FU6ZyVhxcWYGqQOcSDpB05lNOfDkAQLK2XMFtOSwWEz/fpcuMHZsESt58UVT\n0aRJlz2VmpFKp3mdGBo2lEeuLXmL0gnhDuRCbgEWLzbJq04dzHTcHj0clvAB5m2Zx23NbvOYhA+X\nhnHOmmX2EC6SgQPhiy8gI+Oyp2QYpxDFr9Qk/chIeCSrMengrp0MSwZzNs0pkUso26tGDbPJzJAh\nZmN1m7VrB1WrwpL8N1RpEtyEiT0mcveXd5OSnmJfsEKIQpWKpP/XX2azkF69gAsXzM4pt9zisPpX\n7FtBSIUQ2tZo67A6S5L+/c3PrkjDOJWC8eNN/1BaWr5FsoZxvrj6RfsCFUIUyuOTfkYGvPkmDB8O\n3t7AqlWm9Vm5skPqT81IZfof0z2ylZ/T9Olm6YoiDeO84QaoXx/mz8/36axhnEt3LpVhnEI4mUcn\n/bg4cyHyxInMsfng0K6df8/8S9f5XfHz8eOulnc5pM6Sys/PXBcp8jDO8ePhjTcgOTnfp2UYpxDF\nw2OT/qpV0KaNuXi7Zg0EBmLGHn73nUPWzv9i1xd0+KADg1oMYtmgZZT3cdxF4ZIqaxjnkCFFGMbZ\nvj20bWuuChdAhnEK4XweN2QzPR1efRUWLIBPPjE9C9l++QVGjTL9FEWUnJ7MMyufYeU/K1ly2xKu\nrXmt3TG7E7uGcW7fbnbW2rsX/P3zLSLDOIWwTbEP2VRK9VZKxSql9iqlRhdQ5p3M57cqpcLsPWdB\nDh2Cbt1gyxazY1+uhA9mSQA7unZi42Pp8EEHTl08xeaHN5e6hA92DuNs1Qq6d4e33y6wiAzjFMLJ\ntNZFvgHewD6gHuADxADN8pTpAyzPvN8B+KOAurQ9vvlG66pVtZ4yReuMjHwKWCxa162r9fbtRar/\n45iPdfCUYB35V6S2WCx2xeoJoqK0rl9f64QEG1+4Z4/WVapoferUFYvN3jhbt57VWienJRc9SCFK\ngczcaXXetqt7RynVCRirte6d+fiFzOw9KUeZSOBnrfXSzMexQDet9Yk8demixJKSYvqZv/nGXGjs\n2LGAgjExcPvtpmvBhmUSklKTeGz5Y/x59E8+u/0zWlVrZXOMnmrECDPT+ZNPbHzhsGEQHAwTJxZY\nRGvNbZ/dRv3A+ky7aZp9gQrhwYq7e6cmcDjH4yOZxworU8vO8wJm8bTOnU23zubNV0j4YEbtDBxo\nU8LfdmIb7ea0w0t5sXHYRkn4eUybZuZAfPqpjS989VWzk01cXIFFZBinEM5h7xKT1jbN82bafF8X\nERGRfT88PJzw8PACK1y8GJ580lxMfPRRK3L511/D++9bFazWmtmbZvPKz68wvdd07ml9j1WvK20q\nVDC/h169oFMnMxTfKrVrwz33wIQJ8M47BRbLGsZ5b9S9xAyPIaRCiGMCF8KNRUdHE51nnwpb2Nu9\n0xGIyNG9MwawaK0n5ygTCURrrZdkPrare+fCBZPsf/kFli41wwgLtX+/yUrHjmXO0CpYQnICw74d\nxt5Te1l6+1KaBDex4gSl29Sp5j31l19sWKn6xAlo3txcda9T54pFn1/1PLHxsXwz6BuPWMFUCEcq\n7u6djUAjpVQ9pZQvcCewLE+ZZcC9mcF1BBLyJnxr7dxphntfvGg2+bAq4YPp8O/Xr9CE/+fRP2kz\nuw3VKlTjj6F/SMK30jPPmMlb48fb8KJq1cxFgddfL7TouO7jOJJ4hNmbZhc9SCGEYctV3/xuwM3A\n35hRPGMyjw0Hhuco817m81uBNgXUU+DVaYtF6w8+0Do4WOsPPzSPrbZ7t9YNGmj9ww8FFsmwZOip\na6fqkCkh+stdX9pQuchy9KjW1appvXatDS86fdqM5Pn770KL7j65WwdPCda7/ttV9CCF8EAU5+gd\nRyqoeycx0TQIt2833TnNm9tQ6ccfw7PPmr7joUPz7fiPvxDP/VH3E38hniW3L6FeYL2ifxOlXFSU\nafXHxJi9U6wyYYL55S5eXGjROZvm8P5f78um6kLk4FHr6W/ebGbu+/vDn3/akPCTkuC++2DKFPj5\nZzNEMJ+E/+vBXwmbHUaLkBb89sBvkvDtNGCAmXBr02qcTzxhfkdbtxZadFibYbIapxD2suVjgTNv\n5OjesVi0fvttrUNCtF6yxMbPOjExWjdpovWDD2qdlJRvkfSMdP169Ou6+tTqevme5TaeQFxJUpL5\n8S9aZMOLZszQum9fq4rGn4/XNafV1Cv3rSxagEJ4GNy9e+f0abOP7eHDpjunQQMrK9DarA0wdqyZ\n5n/33fkWO37uOEO+HoJFW1h06yJq+Ndw3DchADMgp1cv8+nMqmGcycnQuDF89lkhky2Mn/b/xH1R\n97F1xFaC/YLtD1gIN+bW3Tvr1pkROfXqwdq1NiT8hAT43//ggw9MJQUk/JX7VtJ2Tluur3M9P93z\nkyR8J8lajfOee6xcjbNcOXjlFXjpJavq73lVT+5uebesxilEEZSopD9wILz3HsyYAWWtvU63YYPJ\nMjVqwPr10KjRZUXSMtIY89MYHlr2EJ/e9iljw8fi7XXl4ZvCPs88Y7YgnjDByhfcf7+ZWr16tVXF\nx/cYz+Gzh2UYpxA2KlHdOw1nNKWMj5XlLZr715zmwdWneW1QdX5qnf9SvQCJKYm0rtaajwd8LLM6\ni9GxY2ZPg6+/NnPjCvXpp2aG7vr1Vi2XERsfS9f5Xfn1/l9pFtLM/oBFiaC1mYSZlGTWdkpONjtt\npqWZT45Z94t6LDVNczHtAhfSk0i2nCfVkkKGTiODNDJ0Guk6jQydjiXzcdZxC+nZ9zNIw6LSsGhz\nzJL1mDQylClrIQ2t0tBYsm8obb5iQSsLGm3uY4Gcj5Ulu1z2a7KPabS6VMeF9363qXunRCX9Xf9Z\nt5Sud/xpajw+Bq+ERI7OmUp67bzL/eQp7+VNw8oN8VIl6oNNqRAVZZbJmDQJBg8uZH6cxQKtW5uP\nB337WlX/nE1zmPT7JN688U1ubXarzNgtZmlppnc1KelSks7v/pWey1vu4kXzSb9iRfDzT8XH/yze\n5ZLwKpeEKnseVTYJyiahfM+DTxIWnyS0TxK6zHksZZLIKJOExes86d5JpHslka7Ok+6VRCpJpKkk\n0riID+Uoqyriqyrg41UWb3woo3zwVj54qzLZ98t4ZR03x8p4mZu3KkMZLx98so9lPs583ifHsTJe\n3ii88FIKL+WFUl7mK+axt5dX9vNZz3lnlzNlvHK+xiv38w/26Oa+Sd+qWH75xWzdNHiw2X7Px8qP\nBsJlfv3VdNefOmUm4N56q1mXP1/ffGMWZNuy5QqFclu+dzkvr3kZpRTjbhhH74a9JfnbQWs4d86s\nh3f8uLkVdP/sWTMnw9/fJOkKFczXvPdzPq5QQePll0iKz3GSy8SRpI5zTseRkH6c02nHiU+OIy7p\nOMeTjnMu5RwB5QKo6FuRir4VqeBTIft+3scVfK17zs/Hz6MagLZeyHWfpJ+RAePGQWSk2WC7d+/i\nC07YTWtYuRJeftk06N94A/r0yacXR2szgufpp2HQIKvrt2gLX+3+ild/fpXK5Sszvvt4utXr5thv\nws1lZEB8fOGJPGvx09BQc6teveD7wcGXPr1lWDI4eeEkx8+ZhB2XFJf7ftJxjp8z9729vAmtGEqo\nfyjVK1Y39ytm3ve/dL+KXxWPStDO4JlJ/9gx07JXChYuNBdthVvS2nT5vPIKBASY9/HLdjhbtcrM\n8Nq1y4YV3IwMSwafbv+UiF8iaBDUgHHdx9G+ZnvHfQMlXHIy7NljfnRZt3//Ncn85EkICrqUuPNL\n5llfC9jNkotpF/n71N/sOrmLXSd3sfPkTg4kHCAuKY74C/FULl/5UhL3D6V6hdxJPCvJV/StWLw/\nGA/meUl/xQp44AF45BHTR1DIomnCPWRkwJIlZlpFvXom+WcP0dfabKs4ZIiZtFEEaRlpfLjlQ8b9\nNo42oW1444Y3uLra1Q6L39UuXoTY2NzJfdcuOHgQrrrKzF7PujVoYBJ5tWrW94aeTz1PbHxsdmLP\nSvJHzx2lYeWGNA9pTvPg5jQPaU79oPqEVgylaoWq+HhLd2tx85ykn5ZmkvzixaZ1300+qnuitDT4\n6CPT3dO6tUn+rVtj5lvcdZdptlo9fvdyyenJzPprFpPXTuaG+jfwWvhrNK7S2GHxO1tSUv7J/ehR\naNjwUmJv0cJ8bdgQfH2tr/9cyjl2x+9m53+ZiT3eJPcTSSdoXKWxSe45bg2CGkhiL2E8I+kfOGD+\n4StXNhkhRIZZerrkZLOZ1sSJcP318Npr0PTZW+Cmm+Dxx+2uPyk1iXc2vMOMP2bQr3E/Xu32KnUD\n6zogcsdITITduy9P7idOmMnKORN7Vuvdlp6vhOSE7NZ6ztupi6doGtw0V8u9eUhzrgq6SuayuAn3\nT/pffWWW1Rw92lzMs3IEh/AM58/Du++arRgf6RTDq3/cTJl/95mhHw6QkJzA1HVTmbVxFne1vIuX\nur5EqH+oQ+q2htamC2bzZjNAafNm2LYNTp+Gpk0vT+7169vWo2nRFvaf2c+W41vYEreFzcc3s/2/\n7SSmJNIsuFmuVnuLkBbUDawrF0rdnHsn/cceg+XLTZdOhw6uDkm4UEICTJ8ObSbfAW3a0P7LFxx6\n/f6/8/8x6fdJfBTzEUPbDGX0daOp4lfFcSfAXLfYs+dSct+yxdzKlzeTyNu0MV9btzbXNWxt36Rb\n0omNj2Xz8c1sOb6FzXGbiYmLIaBsAG1C2xBWPYw2oW24utrV1A6oLcndQ7l30r/9dpg7FwIDXR2O\nKCFOr4vFt2dXWpXdy20PBfLCC2aYoKMcTTzKuF/H8fmuzxnZfiRPd3yagHIBNteTkmJ2dsuZ4Ldt\nMxdPs5J71tdq1WyPMzk9me0ntpsEH2da8Tv+20GtSrWyE3xY9TDCQsNkETp3Z7FcumVkFHpf1arl\nxknfYrFq+r0oZR54gHMBtXgh7Q2WLDGjOUeNMkM+HWX/mf289str/LD3B0Z1GsXI9iOp4Jt/l1JS\nkln+P6vlvnkz/P23GTWTldjDwuCaa4rWfklMSSQmLia79b7l+Bb2nt5LkypNCAsNo031NoSFhtG6\nWmv8yxa8/IjIh8ViZpQlJMCZM+brhQuQmmreuQv6WtTnUlPN+g82JHHA9Ol5eZlbIffVsWNunPRL\nSCyihDlwwOyms3s3By5U5fXX4bvvzKJujz/umO5+rc1Ioq1Hd/PG76+y4fhaHm4+hgG1HuZMfNlc\nCf7QIdPvnrP13qqV2Se44Po1aZY0ktOTSU5PJiU9Jfv+sXPHslvvm49v5ti5Y1xd7ers7pmw6mG0\nrNpSdgvLkpx8KWFb8zXn/XPnzCSEwMBLtwoVzJCnsmUvfc15357nfH3NFXcbkritDV/37t4pIbGI\nEmjkSPMPNH06YFrWY8eaVTkeeMCMP09OvnRLScn92JrjZcqY/9Vy5cCr5haS2r9MWuAOqv93H6HV\noUq1FIJCkvHzTyZVX568sxN6Rj7H0lMo41WGcmXKZd/KlilLuTLlCPELye6aaRPahsZVGlPGy7ZJ\naR7BYjFjUffuhX37Lt3i4nIncovFzDILCjJJ25avlSp53FwfSfrCMx0/bprX27ZBrVrZh7duhc8/\nN0k/K2HnveV3PO+xsmXzzwXrDq/juz3fUda7bK6EnTNp5zqWT7mssnIhFdONceRI7sSedX//fjNM\nu1EjM+Eg61ajRu7kXb68q7+LEkWSvvBco0eblt5sWUO/RMvIMH1gORN61v0DB8yV+KyEnjPBN2jg\nsKG5pYkkfeG5Tp2CJk3MxjlWb6smnCY11eyJGROTO7EfPAhVq16e1Bs1Mle7r3TxQ9hMkr7wbK+/\nbhLLJ5+4OpLSx2Ix/WmrV5vb2rUmmV97rUnoWQn+qqukC6YYFWvSV0pVBpYCdYEDwB1a64Q8ZWoD\nC4CqgAbmaK3fyacuSfqicImJJrmsXg0tW7o6Gs+mtXmDzUry0dFQpQr06GFu4eHmsXCp4k76U4B4\nrfUUpdRoIEhr/UKeMtWB6lrrGKVURWATMEBrvTtPOUn6wjpTp5oF2b76ytWReJ6jR02CX7PGfNX6\nUpLv3j3XRXRRMhR30o8FummtT2Qm92itddNCXhMFvKu1Xp3nuCR9YZ2LF003QlSU6VoQRXf6tGnB\nZ7XmT540Gxx0724SfePGMmGyhCvupH9Gax2UeV8Bp7MeF1C+HvAL0EJrnZTnOUn6wnqzZpmkv3Kl\nqyNxL+fPw++/X2rN79kDnTtfas1fc40scuhmbE36hc4AUUqtAqrn89RLOR9orbVSqsCsndm18wXw\nZN6EnyUiIiL7fnh4OOHh4YWFJ0qrhx6CN980s7Nkr4WCpaWZ0U5Z3TWbNpkpxD16wIwZZmFDWxbg\nFy4XHR1NdHR0kV/viO6dcK11nFIqFPg5v+4dpZQP8B3wg9b6rQLqkpa+sM2CBWYR/t9+ky6InLQ2\nQykXLoSlS6FmTejZ0yT6Ll3M7uTCY7jiQu4prfVkpdQLQGA+F3IV8HFmuaevUJckfWGbjAyz6M20\naXDzza6OxvX27oVFi0yy9/Y2+0oPHixzGjycK4ZsfgbUIceQTaVUDWCu1vr/lFJdgF+BbZghmwBj\ntNYr8tQlSV/Y7quvzGY7kybBHXd43LoqhfrvP9OaX7jQTIoaNMgk+nbt5NNPKSGTs0Tps2KF2WQ3\nPh5efBHuvtv6HcDd0fnz5iL2okVm6GrfvibR9+xp2x6KwiNI0helk9bw888m+R88CGPGwH33ec5F\nyvR0+Oknk+i//daMuBk8GPr3lz76Uk6SvhC//WaSf2ysWaTtoYfMUpruRmvYuPHSBdm6dWHIELjz\nTrO2jRBI0hfikg0bTPLfsgWefRaGD3ePxb7++ce06BctMherhwwxrfpGjVwdmSiBJOkLkdfmzTBu\nnOn/fvppePRRs3tSSXLyJHz2mUn0+/aZ1vyQIdC+vVyQFVckSV+IgmzfDuPHm0lKTzxh9losyia2\njpCeDjt2wPr1sHy56ZLq08ck+htv9OwL0cKhJOkLUZjYWJgwwSTbRx+Fp54yOzY506lT8McfJsmv\nW2f66mvWhE6dzDo3/fuXvE8fwi1I0hfCWv/8AxMnwtdfw7BhZqd1R1wgzciAXbtMgs9K8sePm66a\nTp3MyJsOHZz/RiNKBUn6Qtjq4EGYPBmWLIH774fnnoPQUOtfn5BwqRW/fr1ZAqFqVZPgs24tW5a+\niWOiWEjSF6Kojh41i7gtWGAmeI0eDbVr5y5jscDff5vWe1aSP3QI2rY1LfhOnaBjRwgJcc33IEod\nSfpC2OvECbOezwcfwO23m/72zZtNot+wwVz8zWrBd+5s1v+RC6/CRSTpC+Eo8fHw1ltmL9hrr72U\n6Kvnt9K4EK4hSV8IIUoRW5O+bJEjhBCliCR9IYQoRSTpCyFEKSJJXwghShFJ+kIIUYpI0hdCiFJE\nkr4QQpQikvSFEKIUkaQvhBCliCR9IYQoRYqc9JVSlZVSq5RSe5RSPyqlCtyCSCnlrZTaopT6tqjn\nE0IIYT97WvovAKu01o2B1ZmPC/IksAvw2MV1oqOjXR1Ckblz7CDxu5rE717sSfr9gI8z738MDMiv\nkFKqFtAH+ADw2B2e3fkPx51jB4nf1SR+92JP0q+mtT6Ref8EUK2AcjOA5wCLHecSQgjhAGWu9KRS\nahWQ3+LhL+V8oLXWSqnLum6UUrcA/2mttyilwu0JVAghhP2KvJ6+UioWCNdaxymlQoGftdZN85SZ\nANwDpAPlgErAl1rre/Opz2P7+4UQwpmKZRMVpdQU4JTWerJS6gUgUGtd4MVcpVQ34Fmtdd8inVAI\nIYTd7OnTnwTcqJTaA3TPfIxSqoZS6vsCXiOteSGEcKESs12iEEII53P5jFylVG+lVKxSaq9SarSr\n47GFUqq2UupnpdROpdQOpdQTro6pKNx58pxSKlAp9YVSardSapdSqqOrY7KFUmpM5t/PdqXUp0qp\nsq6O6UqUUh8qpU4opbbnOGb1RE1XKiD2NzP/drYqpb5SSgW4MsYryS/+HM+NUkpZlFKVC6vHpUlf\nKeUNvAf0BpoDdymlmrkyJhulAU9rrVsAHYHH3Cz+LO48ee5tYLnWuhlwNbDbxfFYTSlVDxgGtNFa\ntwK8gUGujMkK8zH/rznZMlHTlfKL/Ueghda6NbAHGFPsUVkvv/hRStUGbgQOWlOJq1v67YF9WusD\nWus0YAnQ38UxWU1rHae1jsm8n4RJODVcG5Vt3HnyXGarrKvW+kMArXW61vqsi8OyRSKm4eCnlCoD\n+AFHXRvSlWmtfwPO5Dls1URNV8svdq31Kq111hyiDUCtYg/MSgX87AGmA89bW4+rk35N4HCOx0cy\nj7mdzFZbGOYPx5248+S5+sBJpdR8pdRmpdRcpZSfq4Oyltb6NDANOAQcAxK01j+5NqoisXaiZkn3\nILDc1UHYQinVHziitd5m7WtcnfTdsTvhMkqpisAXwJOZLX63kHPyHG7Wys9UBmgDvK+1bgOcp+R2\nLVxGKdUAeAqoh/mEWFEpNdilQdlJm5Ehbvd/rZR6CUjVWn/q6lisldnAeREYm/NwYa9zddI/CtTO\n8bg2prXvNpRSPsCXwEKtdZSr47FRZ6CfUupfYDHQXSm1wMUx2eIIppXzV+bjLzBvAu6iHbBOa31K\na50OfIX5nbibE0qp6gCZEzX/c3E8NlFK3Y/p4nS3N9wGmAbD1sz/4VrAJqVU1Su9yNVJfyPQSClV\nTynlC9wJLHNxTFZTSilgHrBLa/2Wq+Oxldb6Ra11ba11fcwFxDX5zZYuqbTWccBhpVTjzEM9gZ0u\nDOzEH+oAAADxSURBVMlWsUBHpVT5zL+lnpgL6u5mGXBf5v37ALdp/CilemO6N/trrZNdHY8ttNbb\ntdbVtNb1M/+Hj2AGBVzxTdelST+zdTMSWIn5Y1+qtXab0RfAdcAQ4IbMIY9bMv+I3JXbfSwHHgcW\nKaW2YkbvTHBxPFbTWm8FFmAaP1l9snNcF1HhlFKLgXVAE6XUYaXUAxQwUbOkySf2B4F3gYrAqsz/\n3/ddGuQV5Ii/cY6ffU5W/f/K5CwhhChFXN29I4QQohhJ0hdCiFJEkr4QQpQikvSFEKIUkaQvhBCl\niCR9IYQoRSTpCyFEKSJJXwghSpH/B8tdVw84EZCBAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulated data is this signal combined with some random noise:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "noise = np.random.normal(0,1, size=times.shape)\n", "Y = signal + noise\n", "plt.plot(times, signal, label='signal')\n", "plt.plot(times, Y, '+', label='signal + noise')\n", "plt.legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going apply several linear models to these simulated data.\n", "\n", "All our models include a regressor of a vector of ones, $\\vec{1}$, modeling the mean.\n", "\n", "We will call our `hrf1` vector $\\vec{h_1}$. Call `hrf2` : $\\vec{h_2}$.\n", "\n", "Our models are:\n", "\n", "* A model with $\\vec{x}$ vectors $\\vec{h_1}, \\vec{1}$ - single HRF model);\n", "* A model with $\\vec{h_1}, \\vec{h_2}, \\vec{1}$ - both HRFs model;\n", "* A model with $\\vec{h_1}, \\vec{w}, \\vec{1}$, where $\\vec{w}$ is $\\vec{h_2}$ (`hrf2`) *orthogonalized with respect to* $\\vec{h_1}$ (`hrf1`). We explain what we mean by this further down the page.\n", "\n" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "First, the model with $\\vec{h_1}, \\vec{1}$:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Design matrix for single HRF model\n", "X_s = np.vstack((hrf1, np.ones_like(hrf1))).T\n", "plt.imshow(X_s, interpolation='nearest', cmap='gray')\n", "plt.title('Model with hrf1 regressor')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nWtYcUMva/wP7D4ck8Ctl1QAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulating the effect of noise on parameter estimates" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Create array of simulated data vectors in columns\n", "n_times = len(times) # number of elements in single data vector \n", "n_data_vectors = 100000 \n", "# Make many noise vectors (new noise for each column)\n", "noise_vectors = np.random.normal(0,1,size=(n_times, n_data_vectors)) ##\n", "# add signal to make data vectors\n", "# Use numpy broadcasting to add vector elementwise to 2D array - call this vector Ys\n", "Ys = noise_vectors + signal.reshape(n_times, 1) ##\n", "Ys.shape ##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "(15, 100000)" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first fit the model with only the first HRF regressor to every (signal + noise) sample vector.\n", "\n", "We will fit our model for each data vector, to make a estimated parameter vector for each data vector. We can stack these estimated parameter vectors into a 2 by `n_data_vectors` array.\n", "\n", "Call this array $\\beta^s$ (where the $s$ superscript is for the *single* HRF model)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Fit X_one to signals + noise\n", "n_regressors = X_s.shape[1]\n", "# beta (parameter estimate) matrix, one column per data vector\n", "B_s = np.zeros((n_regressors, n_data_vectors))\n", "# Estimate the parameters of the model for each data vector \n", "X_pinv = npl.pinv(X_s)\n", "\n", "# do a loop to find the B_s[]\n", "for i in range(n_data_vectors):##\n", " B_s[:, i] = X_pinv.dot(Ys[:, i])##" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, because of the way that matrix multiplications works, we can do exactly the same calculation as we did in the loop above, in one matrix multiplication:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# do it with matrix multiplication, call it B_again\n", "B_again = X_pinv.dot(Ys) ##\n", "\n", "# how do you make sure that B_s and B_again are close to each other?\n", "assert np.allclose(B_s, B_again) ##" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use this trick to estimate the parameter matrices for the rest of our models." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us look at the variance of the first parameter estimate (the parameter for the `hrf1` regressor).\n", "\n", "Plot the variance we observe:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hist(B_s[0], bins=100) ##\n", "print('Observed B[0] variance for single hrf model:', np.var(B_s[0])) ##" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[0] variance for single hrf model: 2.20163631472\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEACAYAAAC08h1NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFtRJREFUeJzt3X+wXPV53/H3xz9U45qGUjoyYDqoHTFGDi42tuWp07DU\nMSNnMoD/4cc0hDbUY0fxj2b6S3Km0XUyE+Np7Zq0AzNtwIjEpqM6LiNSLCNT7dSdNpbtCCwjq0DH\nopYaKZnWMfa4mcDw9I89Fy2Xq93VvXv3xz3v18wdzn7PObvPot1nn33O95xNVSFJao9XTDsASdJk\nmfglqWVM/JLUMiZ+SWoZE78ktYyJX5JaZmDiT/KaJF9L8liSI0k+0YwvJDme5FDz996+fXYmeSrJ\n0STX9o1fleRws+7OtXtKkqRBMmwef5LXVtWPk7wK+K/APwbeDfywqj69ZNstwOeBtwMXA18BNldV\nJTkIfKiqDiZ5GPitqto3/qckSRpkaKunqn7cLG4AXgl8v7mdZTa/Hnigqp6rqmPA08DWJBcC51bV\nwWa7+4EbVhO4JGllhib+JK9I8hhwCjhQVU80qz6c5PEk9yQ5rxm7CDjet/txepX/0vETzbgkacJG\nqfhfqKorgTcAP52kA9wNbAKuBP4I+NRaBilJGp9XjbphVf0gyX8C3lZV3cXxJL8NPNTcPAFc0rfb\nG+hV+iea5f7xE0sfI4kXDpKkFaiq5drvyxo2q+eCxTZOknOA9wCHkry+b7P3AYeb5b3AzUk2JNkE\nbAYOVtVJ4NkkW5MEuBV48AzBz/zfrl27ph6DcRrnvMZonOP/O1vDKv4Lgd1JXkHvQ+J3qurRJPcn\nuRIo4LvAB5qkfSTJHuAI8DywvU5HtR24DzgHeLic0SNJUzEw8VfVYeCty4z/woB9fhP4zWXGvwlc\nsYIYJUlj5Jm7K9DpdKYdwkiMc7zmIc55iBGMc9qGnsA1SUlqluKRpHmQhBrXwV1J0vpj4pekljHx\nS1LLjHwCl7Re9E4l6fGYktrIxK+WKvqvM9j/YQB+IGh9s9UjvaiaP2l9M/FLy0jysm8B0nph4peW\nZeWv9csevzSAB4K1HlnxSwPZ99f6Y8WvVrBfL51mxa8WsXqXwIpfLbeSbwL2/TXvrPjVciv9FmDC\n1/yy4pdG5HECrRdW/NLIPEag9cGKX+uO192RBrPi1zp1ujq3RSO9lIlfLWDFL/Uz8UtSy5j4Jall\nBib+JK9J8rUkjyU5kuQTzfj5SfYneTLJI0nO69tnZ5KnkhxNcm3f+FVJDjfr7ly7pyRJGmRg4q+q\nPwOuqaorgTcD1yT5KWAHsL+qLgMebW6TZAtwE7AF2AbcldNH1u4Gbq+qzcDmJNvW4glJ07B4/X4P\nJGseDG31VNWPm8UNwCuB7wPXAbub8d3ADc3y9cADVfVcVR0Dnga2JrkQOLeqDjbb3d+3jzS3Xprs\nPYis+TA08Sd5RZLHgFPAgap6AthYVaeaTU4BG5vli4DjfbsfBy5eZvxEMy7NOU/q0vwZegJXVb0A\nXJnkJ4AvJ7lmyfpKMrZX/sLCwovLnU6HTqczrruWpHWh2+3S7XZXvH/O5qzGJP8c+H/APwA6VXWy\naeMcqKo3JtkBUFV3NNvvA3YBzzTbXN6M3wJcXVUfXHL/5VmWWq1e62XxdbS4POrYatfHM4U1cUmo\nqpEPMA2b1XPB4oydJOcA7wEOAXuB25rNbgMebJb3Ajcn2ZBkE7AZOFhVJ4Fnk2xtDvbe2rePJGmC\nhrV6LgR2J3kFvQ+J36mqR5McAvYkuR04BtwIUFVHkuwBjgDPA9v7SvjtwH3AOcDDVbVv3E9GkjTc\nWbV61pqtHo2DrR61zVhbPZKk9cfEL0ktY+KXpJYx8UtSy5j4Jall/OlFzbX+i6LNymyaWYxJ6mfi\n1zrQm0Y5O1fG7J/iKc0eWz1aR7xgmjQKE78ktYytHmkN2e/XLLLil9aU7SfNHhO/JLWMiV+SWsbE\nL0ktY+KXpJYx8UtSy5j4JallTPzShCSzdFkJtZkncGnuzG/yXPy5Rmm6rPg1pzwxSlopE78ktYyJ\nX5JaxsQvSS0zMPEnuSTJgSRPJPl2ko804wtJjic51Py9t2+fnUmeSnI0ybV941clOdysu3PtnpIk\naZAMulRsktcDr6+qx5K8DvgmcANwI/DDqvr0ku23AJ8H3g5cDHwF2FxVleQg8KGqOpjkYeC3qmrf\nkv3LS9dqmN6snv5fuaq+/3KG5XHts/r79DWucUtCVY08ZWxgxV9VJ6vqsWb5R8B36CV0WH5e2vXA\nA1X1XFUdA54Gtia5EDi3qg42291P7wNEkjRhI/f4k1wKvAX4g2bow0keT3JPkvOasYuA4327Haf3\nQbF0/ASnP0AkSRM00glcTZvnC8BHq+pHSe4Gfr1Z/RvAp4DbxxHQwsLCi8udTodOpzOOu5WkdaPb\n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\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can compare the observed variance of the first parameter estimate with that expected from the formula:\n", "\n", "$$\n", "\\mathrm{var}(c^T \\hat\\beta) = \\hat{\\sigma}^2 c^T (X^T X)^+ c\n", "$$\n", "\n", "To select only the first regressor, we use a contrast vector of\n", "\n", "$$\n", "c = \\left[\n", "\\begin{array}{\\cvec}\n", "1 \\\\\n", "0 \\\\\n", "\\end{array}\n", "\\right]\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our $\\hat{\\sigma}^2$ will be close to 1, because we added noise with variance 1:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Estimate sigma^2 for every data vector\n", "predicted = X_s.dot(B_s)\n", "residuals = Ys - predicted\n", "# Residuals have N-P degrees of freedom\n", "N = n_times\n", "P = npl.matrix_rank(X_s) # number of independent columns in design\n", "\n", "# use Jeanette Mumford's slides to estimate the variance sigma:\n", "sigma_hat_squared = (residuals ** 2).sum(axis=0) / (N - P)##\n", "print('Mean sigma^2 estimate:', np.mean(sigma_hat_squared))##\n", "\n", "# What is the actual value of sigma ? since you know it, replace it in the formula" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mean sigma^2 estimate: 1.01981408396\n" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because ${\\sigma}^2 = 1$, $\\mathrm{var}(c^T \\hat\\beta) = c^T (X^T X)^+ c$. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "C_s = np.array([[1], [0]]) # column vector\n", "# compute the variance of the vector of beta estimate:\n", "\n", "C_s.T.dot(npl.pinv(X_s.T.dot(X_s)).dot(C_s))##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "array([[ 2.2051]])" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the mean of the parameter estimates for $\\vec{h_1} (`hrf1`), is somewhere above one, even though we only added 1 times the first HRF as the signal:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print('Observed B[0] mean for single hrf model:', np.mean(B_s[0]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[0] mean for single hrf model: 1.7014355231\n" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is because the single first regresssor has to fit *both* $\\vec{h_1}$ in the signal, and as much as possible of $\\vec{h_2}$ in the signal, because there is nothing else in the model to fit $\\vec{h_2}$." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Now let us construct the model with both HRFs as regressors:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Design matrix for both HRFs model\n", "X_b = np.vstack((hrf1, hrf2, np.ones_like(hrf1))).T\n", "plt.imshow(X_b, interpolation='nearest', cmap='gray')\n", "plt.title('Model with hrf1, hrf2 regressors')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAM4AAAEKCAYAAABaEWrSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFABJREFUeJzt3X+8VHWdx/HXG7hg+AvIFhFRkvLXLttam2uxFmtplC36\n8LHlmqWIbY8t7efmr8yWNfthbmbb79oyTNPKzKUetoEGaJRupiAKigooCKJeTLFLgN7P/nG+A8dx\n5s7c7x3vXOD9fDzm8Thnvud7vt87M+/5fufcmXMUEZhZ7wxqdwfMtkcOjlkGB8csg4NjlsHBMcvg\n4JhlaEtwJI2X1C2pYfuSpkm6pY/tHSnp3lb0J23/fUmf7mUfJkm6X9IGSVN7U7fGvmZI+kEv6xwk\naaGkpyWd2Zf2rYngSFopaZOkl1bdf2d6se334nWvNSLilog4uLKe/qaj+rLLdOuNC4H/iojdI2KW\npHdK+q2kP0mam9F+b50N3BQRe0TEVyWdJWlxCtJySR/P2OdOq5l32ACWAydV7pA0EXgJeU/gQBCA\n+qMhSUPS4n7AklJRJ3Ap8Pmc3Wa0v39V+wDvAUYAU4AzJZ3Yy322hKTBrdxfRvu9/nuanapdCZxS\nWj8VuILSEyhpT0lXSHosvaOfL0mpbJCk/5T0uKQHgWOrOr6npO9KWiNptaRPNzmNmynpY2l5bBoB\nP5DWJ0jqTMuTJa1Kyz+geBH/PE2byu+075b0UOrnJxo0P0rSL9I79q2SDij1q1vSByQtA5ZJegA4\nILX5tKSOiLgpIq4F1jb6O2sIYGj6+5+WdLek15TaXynpbEmLgGck3QRMBr6atn9FRFwSEQsjojsi\nlgH/A0yq1VhpKjtd0kPAjen+6ZKWSFov6X/Lsw9Jx0i6T9IfJX1N0nxJp6eyaZIWSLpU0hPAv0sa\nml4jD0l6VNI3JO2Stt8rPdZPSuqUdHOpnXPSa+ZpSfdWZhKShkm6TNIj6fYlSUNT2eRU52xJa4Hv\nSnppdRuV12/tZyCixxuwAngTcC9wMDAYWEXx4usG9kvbXQH8DNiV4t3tPmB6KvtXYCkwFhgJzAWe\nAwal8p8B36AYxV4G3Aa8L5VNA26p07fTgFlp+V3AA8A1aX068LO0PBlYVfU3HVVaH5/+lm8Bw4C/\nBv4MHFyn3e8DTwB/mx6PK4GrS+XdwK8o3s2H1WqztO17gbmNnoeqOjOAjRQjhYDPAr8rla8E7kiP\nd6X9uZXno8b+BNxZecxrlFcen++n52gX4DjgfuAgijfg84EFafu9gKeA41PZh4DNpdfDNGALcEYq\n3wX4EnB9esx2A2YBn03bfy69Pgan26R0/0HAw8DeaX0/4IC0fCHw29SXvYAFwIWl18OWtN+O1H7N\nNuo+B70IzvnpCZqSXhSD04O5X1reVH6hAe+rvCCAX5efFODoVHcQMJriRbpLqfwk4NdNBGcCsD49\n8d9Iba5KZTOBj/QyOPuU7rsNOLFOu5cD3y6tvxVYWhWcyTUex1YGZ3Zp/VCgq6qtaVV15gKn19nf\nf1AEp6NBcMaX7vslpSCm5/JP6fVwCilEpfKHeX5wHqoK7jOkF32673XA8lL/rgcmVO3zFcC69Prs\nqCp7AJhSWj8GWFF6PWwChlY9Bi9oo96t2alaAD8ATqbGNI0i0R3AQ6X7HqZ4xwMYQzFKlcsq9k91\n16Zh8kngmxQjT8+diniQ4sn6G+BI4BfAGkkHAm8A5jf591U8Wlruohg961lXWt5I8S5ZtooXV7n9\nLmCXqultrfZf8JlUxRG2dwPHRsSWBm2W97k/8OXSc9aZ7h9L8XyvrqpbvV7e18uA4cAfSvv7JcXr\nCuASiiDMlvSgpHMAIuIB4CMUbyTrJF0taUyqsw8vfD3uU1p/PCI2l9ZrtlFP04ejI+JhioMEbwWu\nqyp+gmLoG1+6bz+2PVhr03q5rGIVRfpfGhEj023PiJjYZNfmA++geMdZk9anUUwJF9b7c5rcd180\n20ZOX5qp03AbSdMpjra9KT12vdnnwxSziJGl264R8TuK53vfUjsqr9fY1xMUbz6HlvY1IiL2AIiI\nZyLi4xExAZgKfKzyWSYiro6IIymCHMDFaZ9reOHrsfw3Pu/x6amNWnr7f5zTKaYbG6safQ74MfAZ\nSbtJ2h/4KMXcn1T2ofQBfiRwbqnuWmA2cKmk3dOBhAmS3tBkn+YDZwKVD4zz0votkcbgGtZRTPMa\nqffhsM9H5NLfuQvFaDsofZjtKJWvlHRKveq5zZb2fzLwGeCYiFiZsa9vAp+QdGja356S3pHKbgAm\nSjpOxRGrM4C96+0oIrqB7wCXSXpZ2t9YScek5WMlvSIF8GmKz8fPSTpQ0lGShlG8+f45lQFcDXwy\nHVjYC/gUxayppnpt1Nu+V8GJiOURcUf5rtLyBymmTcuBW4CrKD4LQPGg/ApYBNwO/LSq7inAUIrD\npeuBn7DtgW70P5ObKaZJleAsoPgAe3PVduV9fI7iQX1S6ahcnTbqtVurT1FnuZ5TKKZYX6eYZm6k\nODhBOvozCrg1s/16ytt8OrXxexVHFzdI+nqTdYmI6yne3a+R9BSwGHhLKnuCYhbwBYrR5BCK531T\nD/0/h2KqdGva3xzgwFT2yrS+geID/9ciYj7FgZzPAY9TjHJ7AeelOhelNu9Kt9vTfTX/nh7aqEn1\n35StXSRNAj4QESe3uy+tkD57rQLe1dOLcXvi4NiLIk2z/o9iJD0LeD/FUbNNPVbcTvhLnvZieR3F\n1Otxin94H7+jhAY84phl8YhjlqGlX9bbWUnaLoftiOiXL7ruiBycFhk1alTdsq6uLoYPH97Sskr5\nxo0ba5bNmDGDGTNm1K3b0/cXrTFP1cwyODhNkDQlfWX9/kbfYbKdg4PTgIofWX2V4lvhhwInSTqk\nN/vo6OhoeVmj8smTJzfsl+VzcBo7HHggIlambw9fQ/FblKY5ODseB6exsTz/K/Cr2fZzCdtJ+aha\nY00dau7q6tq63NHR0XC06G/z5s1j3rx57e7GDsPfHGhA0hHAjIiYktbPA7oj4uLSNtHT4egXU2dn\nZ+ONapDk/+P0gadqjd0OvFLFCSuGAidS/B7edmKeqjUQEc+mnxdXzrPw3YhY2uZuWZt5qtYCnqrt\nfDxVM8vg4Jhl8GecFhkzZkzjjWpYuzbnRJ7Wbh5xzDI4OGYZHByzDA6OWQYHxyyDg2OWwcExy+Dg\nmGVwcMwyODhmGRwcswwOjlkGB8csg4NjlsE/K2iRE044IavedddVX4fYtgceccwyODhmGRycBiSN\nkzRX0j2S7pb0oXb3ydrPn3Ea2wJ8NCIWStoN+IOkOT5F1M7NI04DEfFoRCxMy88AS4F92tsrazcH\npxckjQcOA25rb0+s3RycJqVp2rXAh9PIYzsxf8ZpgqQO4KfAlRFxfa1t5s+fv3V5//33Z/z48f3T\nuSb5agWt5VPgNqDiKrMzgc6I+GidbeKCCy7I2n9f/wF69913Z9XzKXD7xlO1xiYB7wb+QdKd6Tal\n3Z2y9vJUrYGI+A1+g7EqfkGYZXBwzDI4OGYZ/BmnRbq7u7Pq5f4cwdrLI45ZBgfHLIODY5bBwTHL\n4OCYZXBwzDI4OGYZHByzDA6OWQYHxyyDg2OWwcExy+DgmGVwcMwy+GcFLbJgwYKsepMmTWpxT6w/\neMQxy+DgmGVwcJokaXA6NdTP290Xaz8Hp3kfBpYAPoOjOTjNkLQv8DbgvwGf/dIcnCZ9CTgLyDsj\nh+1wHJwGJL0deCwi7sSjjSX+P05jrwemSnobsAuwh6QrIuKU8kYrVqzYujxixAhGjhzZv71swFcr\naC1fraAXJL0R+HhE/GPV/TF58uSsffb1H6AXXXRRVj1fraBvPFXrPb/TmKdqvRER84H5DTe0HZ5H\nHLMMDo5ZBgfHLIM/47TIokWL2t0F60ceccwyODhmGRwcswwOjlkGB8csg4NjlsHBMcvg4JhlcHDM\nMjg4ZhkcHLMMDo5ZBgfHLIODY5bBJ+toAUnZD2Jfz4azfv36rHo+WUffeMQxy+DgmGVwcJogaYSk\nayUtlbRE0hHt7pO1l3863ZwvAzdExD9JGgLs2u4OWXs5OA1I2hM4MiJOBYiIZ4Gn2tsrazdP1Rp7\nOfC4pMsl3SHpO5KGt7tT1l4ecRobArwaODMifi/pMuBc4FPt7Vbv+KTrreX/4zQgaW/gdxHx8rT+\n98C5EfH20jb+P85OxlO1BiLiUWCVpAPTXW8G7mljl2wA8FStOR8ErpI0FHgQOK3N/bE2c3CaEBGL\ngNe2ux82cHiqZpbBwTHL4OCYZfDh6BaQFFLekd2+Pv659X04um884phlcHDMMjg4ZhkcHLMMDo5Z\nBgfHLIODY5bBwTHL4OCYZXBwzDI4OGYZHByzDA6OWQb/ArRFhg4dmlVv8+bNLe6J9QePOGYZHByz\nDA6OWQYHpwmSzpN0j6TFkn4oaVi7+2Tt5eA0IGk88C/AqyNiIjAY+Od29snaz0fVGnsa2AIMl/Qc\nMBx4pL1dsnbziNNARKwHvgg8DKwB/hgRN7a3V9ZuHnEakDQB+AgwnuK6OD+RdHJEXFXe7tlnn926\nPGjQIAYNGljvSb5aQWv59FANSDoRODoi3pvW3wMcERFnlLaJYcPyjhf09R+g3d3dWfV8eqi+GVhv\niwPTvcARkl6i4uRpbwaWtLlP1mYOTgPphOtXALcDd6W7v92+HtlA4KlaC3iqtvPxiGOWwcExy+DD\n0S3S0dHR7i5YP/KIY5bBwTHL4OCYZXBwzDI4OGYZHByzDA6OWQYHxyyDg2OWwcExy+DgmGVwcMwy\nODhmGRwcswz+WUGLDBnih3Jn4hHHLIODY5bBwUkkfU/SOkmLS/eNkjRH0jJJsyWNaGcfbeBwcLa5\nHJhSdd+5wJyIOBC4Ka2bOTgVEXEL8GTV3VOBmWl5JnB8v3bKBiwHp2ejI2JdWl4HjG5nZ2zgcHCa\nFMWZG332RgP8f5xG1knaOyIelTQGeKzehhs3bty6PGTIkAF3uihfraC1fArcknT1tZ+nK68h6QtA\nZ0RcLOlcYEREvOAAgaQYMSLvgFv58iA5NmzYkFXPp8DtG0/VEklXA78FDpK0StJpwOeBoyUtA45K\n62YecVrBI87OxyOOWQYHxyyDg2OWwYejW6S4ymHv+ecI2yePOGYZHByzDA6OWQYHxyyDg2OWwcEx\ny+DgmGVwcMwyODhmGRwcswwOjlkGB8csg4NjlsHBMcvg77S3SO7PCmz75BHHLIODY5bBwUnqXK3g\nEklLJS2SdJ2kPdvZRxs4HJxtal2tYDbwlxHxKmAZcF6/98oGJAcnqXW1goiYExHdafU2YN9+75gN\nSA5O86YDN7S7EzYwODhNkHQ+sDkiftjuvtjA4P/jNCBpGvA24E09bdfV1bV1uaOjw1cr2MH53NEl\nNa5WMAX4IvDGiHiih3oxatSorDb7+vivX78+q57PHd03nqolNa5WMB34CrAbMEfSnZK+3tZO2oDh\nEacFPOLsfDzimGVwcMwyODhmGXw4us38c4Ttk0ccswwOjlkGB8csg4NjlsHBMcvg4JhlcHDMMjg4\nZhkcHLMMDo5ZBgfHLIODY5bBwTHL4OCYZXBwzDI4OGYZHByzDA5OUutqBaWyf5PULSnvVDa2w3Fw\ntql1tQIkjQOOBh7q9x7ZgOXgJLWuVpBcCpzdz92xAc7B6YGk44DVEXFXu/tiA4vPclOHpOHAJyim\naVvvrre9T7q+c/EpcEvKJ12XNBG4EagkYl/gEeDwiHisql72KXD7qrOzM6ueT4HbNx5x6oiIxcDo\nyrqkFcBrIiLvZM22Q/FnnKR0tYID09UKTqvaxEOzbeXgJBFxUkTsExHDImJcRFxeVX5A7mizZcuW\nlpc1KvfnmReXg9MPHJwdj4NjlsHBMcvgw9EtIGm7fBB9ODqfg2OWwVM1swwOjlkGByeDpFGS5kha\nJmm2pBGSpki6V9L9ks5J262UdFe61Pt9ktZL2ixpjaTD0jaV3wEtl/RU2vZOSZ8slXdJ2iRpUaVe\nKhuXtn1O0kZJqyv1SuVzJXWm+o+U66dtJtdq1xqICN96eQO+AJydls8BLgYeAMYDHcBC4BBgBTAK\nGAysAeam8mXAwlT/SOAwYDkwq0ZbZwG/ARYDfwfcWirbG3gvMAvYDbgPOKSq/EzghlT+UKXd0jaT\na7XrW883jzh5pgIz0/JM4ETggYhYGRFbgGuA41K5gMOBZ4FvpvLvAftIGh3P/x1QraNcE9L+iIjb\ngBGSRqf1RykCq4h4BlgK7FOpmMr/CpiZyu8ERlXql/joWi85OHlGR8S6tLwO2AtYVSpfDYyl+H7b\njcCVwK6lbVYDmyi+cV32+jQdu0HSoem+sRSjVXnf5XqR6i0B3gI8VbXPscCq9M3vw4AH69Svbtd6\n4ODUkT7DLK5xm1reLor5Tr1j+pMi4jDgImB34FVV5eV6G4FxEfEq4CvA9eXu9FDvDuBgip8/XAL8\nsEY/hgPXAh8GnqtRv167VoeDU0dEHB0RE2vcZgHrJO0NIGkM0AmMK1UfR/HL0bVpfSlFMF5fKh9G\n8fueiu6I6Ept/xLoSCcHeYTS9Ittvwuq+DPFiHZlRHyqVK9iLfDFVH59df2I2FCnXeuBg5NnFnBq\nWj4V+BHwSknjJQ2l+MwzW9LuaZslwEuAian8NGBNaboHMESSACQdTvG5ZX1q64R0/xHAHyv10vZX\nAUsi4rKqepXyCcAeqfx59dM2o+u0az3wNwcypHfkHwP7ASuBdwKvo5jqjKGYmv0ImJ+qPAX8Hjie\n4rNOJ3As8FrgdIpR4C8oplBrgS3ATyLi3PQ7oakU060twGfTNgD3ADdTfF4KoBu4gG2/Wq2UdwJ7\npPKz0n6IiG9JOgN4P8XBiy7gYxFxaysepx2Zg2OWwVM1swwOjlkGB8csg4NjlsHBMcvg4JhlcHDM\nMjg4Zhn+H2wnTA864ONJAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will call the resulting 3 by `n_data_vectors` parameter array : $\\beta^b$ (where the $b$ superscript is for *both* HRF regressors).\n", "\n", "We will use the matrix multiplication trick above to fit all the data vectors at the same time:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Fit parameters of X_both for data Y = signal + noise. Call results B_b\n", "B_b = npl.pinv(X_b).dot(Ys) ##" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What estimates do we get for the first regressor, when we have both regressors in the model?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hist(B_b[0], bins=100)\n", "print('Observed B[0] mean for two hrf model', np.mean(B_b[0]))\n", "print('Observed B[0] variance for two hrf model', np.var(B_b[0]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[0] mean for two hrf model 1.00290275673\n", "Observed B[0] variance for two hrf model 4.35280108944\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two things have happened now we added the second (correlated) $\\vec{h_2}$ regressor. First, the mean of the parameter for the $\\vec{h_1}$ regressor has dropped to 1, because $\\beta^b_1 \\vec{h_1}$ is no longer having to model the signal due to $\\vec{h_2}$. Second, the variability of the estimate has increased. This is what the bottom half of the t-statistic predicts:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Compute the predicted variance for hrf1 parameter in both HRF model using C_b=[1 0 0] contrast \n", "C_b = np.array([[1], [0], [0]]) # column vector ## \n", "C_b.T.dot(npl.pinv(X_b.T.dot(X_b)).dot(C_b))##" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "array([[ 4.3517]])" ] } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The estimate of the parameter for $\\vec{h_2}$ has a mean of around 1, like the parameter estimates for $\\vec{h_1}$:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hist(B_b[1], bins=100)\n", "print('Observed B[1] mean for two hrf model', np.mean(B_b[1]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[1] mean for two hrf model 0.994608702227\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This mean of 1 is what we expect because we have $\\vec{h_1} + \\vec{h_2}$ in the signal. Not surprisingly, the $\\vec{h_2}$ parameter estimate has a similar variability to that for the $\\vec{h_1}$ parameter estimate:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print('Observed B[1] variance for two hrf model', np.var(B_b[1]))" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The observed variance is very similar to the predicted variance:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "C_b_1 = np.array([0, 1, 0])[:, None] # column vector\n", "C_b_1.T.dot(npl.pinv(X_b.T.dot(X_b)).dot(C_b_1))" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameter estimates for $\\vec{h_1}$ and $\\vec{h_2}$ are anti-correlated:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Relationship of estimated parameter of hrf1 and hrf2\n", "plt.plot(B_b[0], B_b[1], '.')\n", "np.corrcoef(B_b[0], B_b[1])" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Orthogonalizing hrf2 with respect to hrf1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\vec{h_2}$ is correlated with $\\vec{h_1}$.\n", "\n", "We can therefore think of $\\vec{h_2}$ as the sum of some scaling of $\\vec{h_1}$ plus an extra part that cannot be explained by $\\vec{h_1}$.\n", "\n", "$$\n", "\\vec{h_2} = p \\,\\vec{h_1} + \\vec{w}\n", "$$\n", "\n", "where $p$ is some scalar, and\n", "\n", "$$\n", "\\vec{w} = \\vec{h_2} - p \\, \\vec{h_1}\n", "$$\n", "\n", "To restate, we can think of $\\vec{h_2}$ as the sum of some scalar amount of $\\vec{h_1}$ plus $\\vec{w}$.\n", "\n", "We want to chose $p$ such that $\\vec{w} = \\vec{h_2} - p \\, \\vec{h_1}$ is orthogonal to $\\vec{h_1}$. In this case $\\vec{w}$ is the part of $\\vec{h_2}$ that cannot be explained by $\\vec{h_1}$.\n", "\n", "If $\\vec{w}$ is orthogonal to $\\vec{h_1}$ then we call $\\vec{w}$ : $\\vec{h_2}$ *orthogonalized with respect to* $\\vec{h_1}$.\n", "\n", "Following the same logic as for [projection](http://practical-neuroimaging.github.io/day7.html#key-video-on-projecting-vectors), given $\\vec{w} - p \\, \\vec{h_1}$ is orthogonal to $\\vec{h_1}$:\n", "\n", "$$\n", "(\\vec{w} - p \\, \\vec{h_1}) \\cdot \\vec{h_1} = 0 \\implies \\\\\n", "\\vec{w} \\cdot \\vec{h_1} - p \\, \\vec{h_1} \\cdot \\vec{h_1} = 0 \\implies \\\\\n", "\\frac{\\vec{w} \\cdot \\vec{h_1}}{\\vec{h_1} \\cdot \\vec{h_1}} = p\n", "$$\n", "\n", "Put another way, $p (\\vec{h_1})$ such that $\\vec{w} = \\vec{h_2} - p (\\vec{h_1})$ is orthogonal to $\\vec{h_1}$ - is also the projection of $\\vec{h_2}$ onto $\\vec{h_1}$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Project hrf2 onto hrf1 : implement it !\n", "p = hrf2.dot(hrf1) / hrf1.dot(hrf1) ##\n", "projection = p * hrf1 ##\n", "# Get \\vec{w} = hrf2 - projection\n", "w = hrf2 - projection ##\n", "# w and hrf1 are now orthogonal : check it !\n", "assert np.allclose(w.dot(hrf1), 0) ##" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "# Plot the vector parts\n", "plt.plot(times, hrf1, label=r'$\\vec{h_1}$')\n", "plt.plot(times, hrf2, label=r'$\\vec{h_2}$')\n", "plt.plot(times, projection, label=r'$p (\\vec{h_1})$')\n", "plt.plot(times, w, label=r'$\\vec{w}$')\n", "plt.legend()\n", "# hrf1 part of hrf2, plus unique part, equals original hrf2\n", "assert np.allclose(hrf2, projection + w)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "How much of the first regressor did we find in the second regressor? does it ring a bell ?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "p" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "0.70231917818451139" ] } ], "prompt_number": 36 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us rewrite our original model containing `hrf1, hrf2`:\n", "\n", "$$\n", "\\vec{y} = \\beta^b_1 \\vec{h_1} + \\beta^b_2 \\vec{h_2} + \\beta^b_3 1\n", "$$\n", "\n", "where $\\vec{y}$ is our data vector.\n", "\n", "Now we know we can also write this as:\n", "\n", "$$\n", "\\vec{y} = \\beta^b_1 \\vec{h_1} + \n", " \\beta^b_2 (p (\\vec{h_1}) + \\vec{w}) + \\beta^b_3 1 \\\\\n", "= \\beta^b_1 \\vec{h_1} + \n", " \\beta^b_2 p (\\vec{h_1}) + \\beta^b_2 \\vec{w} + \\beta^b_3 1 \\\\\n", "= (\\beta^b_1 + p \\beta^b_2) \\vec{h_1} + \\beta^b_2 \\vec{w} + \\beta^b_3 1\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, what will happen if we drop $\\vec{h_2}$ from our model and leave only $\\vec{w}$?\n", "\n", "We have called the parameters from the model with $\\vec{h_1}, \\vec{h_2}$ : $\\beta^b$. Call the parameters from the model with $\\vec{h_1}, \\vec{w}$ : $\\beta^w$. \n", "\n", "We can see that we are going to get the exact same fit to the data with these two models if $\\beta^w_2 = \\beta^b_2$ and $\\beta^w_1 = p \\beta^b_2 + \\beta^b_1$." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Let us try this new (orthogonolized) model:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "X_w = np.vstack((hrf1, w, np.ones_like(hrf1))).T\n", "plt.imshow(X_w, interpolation='nearest', cmap='gray')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nF7tHAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "# Fit the model\n", "B_w = npl.pinv(X_w).dot(Ys)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us first look at the distribution of $\\beta^w_1$ `== B_w[0]`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Distribution of parameter for hrf1 in orth model\n", "plt.hist(B_w[0], bins=100)\n", "print('Observed B[0] mean for two hrf orth model',\n", " np.mean(B_w[0]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[0] mean for two hrf orth model 1.7014355231\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEACAYAAAC08h1NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFtRJREFUeJzt3X+wXPV53/H3xz9U45qGUjoyYDqoHTFGDi42tuWp07DU\nMSNnMoD/4cc0hDbUY0fxj2b6S3Km0XUyE+Np7Zq0AzNtwIjEpqM6LiNSLCNT7dSdNpbtCCwjq0DH\nopYaKZnWMfa4mcDw9I89Fy2Xq93VvXv3xz3v18wdzn7PObvPot1nn33O95xNVSFJao9XTDsASdJk\nmfglqWVM/JLUMiZ+SWoZE78ktYyJX5JaZmDiT/KaJF9L8liSI0k+0YwvJDme5FDz996+fXYmeSrJ\n0STX9o1fleRws+7OtXtKkqRBMmwef5LXVtWPk7wK+K/APwbeDfywqj69ZNstwOeBtwMXA18BNldV\nJTkIfKiqDiZ5GPitqto3/qckSRpkaKunqn7cLG4AXgl8v7mdZTa/Hnigqp6rqmPA08DWJBcC51bV\nwWa7+4EbVhO4JGllhib+JK9I8hhwCjhQVU80qz6c5PEk9yQ5rxm7CDjet/txepX/0vETzbgkacJG\nqfhfqKorgTcAP52kA9wNbAKuBP4I+NRaBilJGp9XjbphVf0gyX8C3lZV3cXxJL8NPNTcPAFc0rfb\nG+hV+iea5f7xE0sfI4kXDpKkFaiq5drvyxo2q+eCxTZOknOA9wCHkry+b7P3AYeb5b3AzUk2JNkE\nbAYOVtVJ4NkkW5MEuBV48AzBz/zfrl27ph6DcRrnvMZonOP/O1vDKv4Lgd1JXkHvQ+J3qurRJPcn\nuRIo4LvAB5qkfSTJHuAI8DywvU5HtR24DzgHeLic0SNJUzEw8VfVYeCty4z/woB9fhP4zWXGvwlc\nsYIYJUlj5Jm7K9DpdKYdwkiMc7zmIc55iBGMc9qGnsA1SUlqluKRpHmQhBrXwV1J0vpj4pekljHx\nS1LLjHwCl7Re9E4l6fGYktrIxK+WKvqvM9j/YQB+IGh9s9UjvaiaP2l9M/FLy0jysm8B0nph4peW\nZeWv9csevzSAB4K1HlnxSwPZ99f6Y8WvVrBfL51mxa8WsXqXwIpfLbeSbwL2/TXvrPjVciv9FmDC\n1/yy4pdG5HECrRdW/NLIPEag9cGKX+uO192RBrPi1zp1ujq3RSO9lIlfLWDFL/Uz8UtSy5j4Jall\nBib+JK9J8rUkjyU5kuQTzfj5SfYneTLJI0nO69tnZ5KnkhxNcm3f+FVJDjfr7ly7pyRJGmRg4q+q\nPwOuqaorgTcD1yT5KWAHsL+qLgMebW6TZAtwE7AF2AbcldNH1u4Gbq+qzcDmJNvW4glJ07B4/X4P\nJGseDG31VNWPm8UNwCuB7wPXAbub8d3ADc3y9cADVfVcVR0Dnga2JrkQOLeqDjbb3d+3jzS3Xprs\nPYis+TA08Sd5RZLHgFPAgap6AthYVaeaTU4BG5vli4DjfbsfBy5eZvxEMy7NOU/q0vwZegJXVb0A\nXJnkJ4AvJ7lmyfpKMrZX/sLCwovLnU6HTqczrruWpHWh2+3S7XZXvH/O5qzGJP8c+H/APwA6VXWy\naeMcqKo3JtkBUFV3NNvvA3YBzzTbXN6M3wJcXVUfXHL/5VmWWq1e62XxdbS4POrYatfHM4U1cUmo\nqpEPMA2b1XPB4oydJOcA7wEOAXuB25rNbgMebJb3Ajcn2ZBkE7AZOFhVJ4Fnk2xtDvbe2rePJGmC\nhrV6LgR2J3kFvQ+J36mqR5McAvYkuR04BtwIUFVHkuwBjgDPA9v7SvjtwH3AOcDDVbVv3E9GkjTc\nWbV61pqtHo2DrR61zVhbPZKk9cfEL0ktY+KXpJYx8UtSy5j4Jall/OlFzbX+i6LNymyaWYxJ6mfi\n1zrQm0Y5O1fG7J/iKc0eWz1aR7xgmjQKE78ktYytHmkN2e/XLLLil9aU7SfNHhO/JLWMiV+SWsbE\nL0ktY+KXpJYx8UtSy5j4JallTPzShCSzdFkJtZkncGnuzG/yXPy5Rmm6rPg1pzwxSlopE78ktYyJ\nX5JaxsQvSS0zMPEnuSTJgSRPJPl2ko804wtJjic51Py9t2+fnUmeSnI0ybV941clOdysu3PtnpIk\naZAMulRsktcDr6+qx5K8DvgmcANwI/DDqvr0ku23AJ8H3g5cDHwF2FxVleQg8KGqOpjkYeC3qmrf\nkv3LS9dqmN6snv5fuaq+/3KG5XHts/r79DWucUtCVY08ZWxgxV9VJ6vqsWb5R8B36CV0WH5e2vXA\nA1X1XFUdA54Gtia5EDi3qg42291P7wNEkjRhI/f4k1wKvAX4g2bow0keT3JPkvOasYuA4327Haf3\nQbF0/ASnP0AkSRM00glcTZvnC8BHq+pHSe4Gfr1Z/RvAp4DbxxHQwsLCi8udTodOpzOOu5WkdaPb\n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\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 39 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that $\\beta^w_1$ now has the same values as for the single HRF model : $\\beta^s_1$:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "assert np.allclose(B_s[0, :], B_w[0, :])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It therefore has the same variance, and the predicted variance matches:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print('Observed B[0] variance for two hrf orth model', np.var(B_w[0]))\n", "pred_var = C_b.T.dot(npl.pinv(X_w.T.dot(X_w)).dot(C_b))\n", "print('Predicted B[0] variance for two hrf orth model', pred_var)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Observed B[0] variance for two hrf orth model 2.20163631472\n", "Predicted B[0] variance for two hrf orth model [[ 2.2051]]\n" ] } ], "prompt_number": 41 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The fact that the single hrf and orthogonalized model parameters match may make sense when we remember that adding the $\\vec{w}$ regressor to the model cannot change the parameter for the $\\vec{h_1}$ regressor as $\\vec{w}$ is orthogonal to $\\vec{h_1}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We predicted above that $\\beta^w_2$ would stay the same as $\\beta^b_2$ from the not-orthogonalized model:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "assert np.allclose(B_b[1, :], B_w[1, :])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We predicted that $\\beta^w_1$ would become $\\beta^b_1 + p \\beta^b_2$ from the not-orthogonalized model:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "predicted_beta1 = B_b[0, :] + p * B_b[1, :]\n", "assert np.allclose(predicted_beta1, B_w[0, :])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our predictions were correct. So let us revise what happened:\n", "\n", "* We estimated our original model with correlated $\\vec{h_1}, \\vec{h_2}$ to get corresponding estimated parameters $\\beta^b_1, \\beta^b_2$;\n", "* we orthogonalized $\\vec{h_2}$ with respect to $\\vec{h_1}$ to give $p$ and $\\vec{w}$;\n", "* we replaced $\\vec{h_2}$ with $\\vec{w}$ in the model, and re-estimated, giving new parameters $\\beta^w_1$ for $\\vec{h_1}$, $\\beta^w_2$ for $\\vec{w}$;\n", "* $\\beta^w_2 = \\beta^b_2$ - the parameter for the new orthogonalized regressor is unchanged from the non-orthogonalized case;\n", "* $\\beta^w_1 = \\beta^b_1 + p \\beta^b_2$ - the parameter for the *unchanged* regressor has increased by $\\beta^b_2$ times the amount of $\\vec{h_2}$ present in $\\vec{h_1}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we show some example parameters from the three model fits:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Example parameters from the single hrf model\n", "B_s[:,:5]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "array([[ 3.0336, 1.7263, 2.0428, 0.9846, 0.0135],\n", " [ 0.124 , 0.1072, 0.0456, 0.4209, 0.2396]])" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "# Example parameters from the non-orth two-hrf model\n", "B_b[:,:5]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 45, "text": [ "array([[ 3.3138, 3.3518, 0.7825, 1.4009, 0.8144],\n", " [-0.3989, -2.3145, 1.7944, -0.5928, -1.1404],\n", " [ 0.124 , 0.1072, 0.0456, 0.4209, 0.2396]])" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "# Example parameters from the orth model\n", "B_w[:,:5]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "array([[ 3.0336, 1.7263, 2.0428, 0.9846, 0.0135],\n", " [-0.3989, -2.3145, 1.7944, -0.5928, -1.1404],\n", " [ 0.124 , 0.1072, 0.0456, 0.4209, 0.2396]])" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "# The parameter for the hrf1 regressor in the non-orth model\n", "# is correlated with the parameter for the hrf1 regressor\n", "# in the orth model.\n", "plt.plot(B_b[0], B_w[0], '.')\n", "plt.title('Orth and non-orth hrf1 parameters correlate')\n", "np.corrcoef(B_b[0], B_w[0])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "array([[ 1. , 0.7103],\n", " [ 0.7103, 1. ]])" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nvhiesAfq0LoAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "# Relationship of estimated parameters for hrf1 and orthogonalized hrf2\n", "# (they should be independent)\n", "plt.plot(B_w[0], B_w[1], '+')\n", "plt.title('hrf1 and orth hrf2 parameters are independent')\n", "np.corrcoef(B_w[0], B_w[1])" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Student statistics " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember that the students-t statistic is:\n", "\n", "$$\n", "t = \\frac{c^T \\hat\\beta}{\\sqrt{\\mathrm{var}(c^T \\hat\\beta)}}\n", "$$\n", "\n", "where $c^T$ is a row vector of contrast weights, $\\hat{\\beta}$ is our vector of estimated parameters, and $\\mathrm{var}(c^T \\hat\\beta)$ is the variance of $c^T \\hat\\beta$.\n", "\n", "On the assumption of zero mean normally distributed independent noise:\n", "\n", "$$\n", "\\mathrm{var}(c^T \\hat\\beta) = \\hat{\\sigma}^2 c^T (X^T X)^+ c\n", "$$\n", "\n", "where $\\hat{\\sigma}^2$ is our estimate of variance in the residuals, and $(X^T X)^+$ is the [pseudo-inverse](https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse) of $X^T X$.\n", "\n", "Therefore:\n", "\n", "$$\n", "t = \\frac{c^T \\hat\\beta}{\\sqrt{\\hat{\\sigma}^2 c^T (X^T X)^+ c}}\n", "$$\n", "\n", "We will see that this expection of variance correctly predicts that parameter estimates for correlated regressors will have higher variance for a given level of noise (where the level of noise can be captured by $\\hat{\\sigma}^2$).\n", "\n", "Put another way, the parameter estimates of correlated regressors are more susceptible to the effect of noise.\n", "\n", "We can look at the variability of the parameter estimates, by estimating our models on many different simulated data vectors.\n", "\n", "Each of the data vectors are made of the *signal* (the sum of `hrf1` and `hrf2`) and some *noise*. We take a new sample of noise for each data vector:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# " ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }