{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Principles of statistics in Statistical Parametric Mapping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook is a basic introduction to the statistics of statistical parametric mapping (SPM). The page is designed for\n", "readers who have had very little formal statistical background, and\n", "I have tried to keep formulae to a minimum. \n", "\n", "For a more technical treatment of the statistical background, see the [chapter on the general linear model](http://www.fil.ion.ucl.ac.uk/spm/doc/books/hbf2/pdfs/Ch7.pdf)\n", "in the book [Human Brain Function (2nd edition)](http://www.fil.ion.ucl.ac.uk/spm/doc/books/hbf2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we load the interactive graphics and other libraries:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import matplotlib\n", "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "I like gray images, with nearest neighbor resampling:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "matplotlib.rcParams['image.cmap'] = 'gray'\n", "matplotlib.rcParams['image.interpolation'] = 'nearest'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The statistics interface to functional imaging packages can be hard to understand for those of us trained to think of statistics in terms of means and variances.\n", "\n", "The reason that the statistical interface to functional imaging packages is so\n", "much harder to understand is that SPM, FSL and others choose to take the user much closer to\n", "the math; they sacrifice ease of understanding for great flexiblity of the\n", "designs that can be analysed with the same interface. \n", "\n", "To understand these interfaces, \n", "you will need some understanding of the underlying math. I hope to\n", "show that this need not be an insurmountable task, even for the relative\n", "statistical novice.\n", "\n", "To start, it is important to point out that the functional imaging analysis creates\n", "statistics by doing a seperate statistical analysis for each voxel. Standard analyses analyze each voxel independently.\n", "Specifically, the standard analysis:\n", "\n", "1. does a regression analysis __separately at each voxel__;\n", "2. makes t statistics from the results of this analysis, for each voxel;\n", "3. works out a p value for each t statistic;\n", "4. shows you an image of the t statistics;\n", "5. suggests a correction to the significance of the t statistics which takes account of the multiple comparisons in the\n", " image.\n", "\n", "This document tries to explain how steps 1 to 4 work. I have written a\n", "separate tutorial on Random Field Theory that describes the basics of step 5.\n", "\n", "Before continuing, it is worth re-stressing that the regression analysis is entirely independent for each voxel.\n", "\n", "The statistics it uses to do this are fairly straightforward, and can be found in most statistics textbooks.\n" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Naming of parts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This section goes through the standard statistical terms for an analysis, and\n", "how they relate to a functional imaging analysis.\n", "\n", "The __response variable__ in statistics is some measured data for each\n", "observation. A response variable is often referred to as __dependent__\n", "variable. In the case of functional imaging, the response variable is made up\n", "of all the values from an individual voxel for each of the scans in the\n", "analysis.\n", "\n", "The __predictor variable__ contains some value used to predict the data in the\n", "response variable. A predictor variable may also be called an __independent__\n", "variable. Each variable contains a possible __effect__. In our case a\n", "predictor variable might be some covariate such as task difficulty which is\n", "known for each scan, and which might influence the response variable - in our\n", "case, voxel values.\n", "\n", "Thus, in functional imaging:\n", "\n", "* *observation* : a voxel value, in the voxel we are analysing, for one scan;\n", "* *response variable* : data for all the scans for one voxel (i.e. all the observations);\n", "* *predictor variable* : covariate = effect.\n" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Getting the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to run this tutorial, you'll need to \n", "[download](http://imaging.mrc-cbu.cam.ac.uk/downloads/Tutscans/egscans.tar.gz) \n", "and unpack a set of data files.\n", "\n", "The following two commands will download and unpack them on linux:\n", "\n", " curl -O http://imaging.mrc-cbu.cam.ac.uk/downloads/Tutscans/egscans.tar.gz\n", " tar xzf egscans.tar.gz\n", "\n", "The `fetch_scans()` function below will do all the downloading\n", "in a cross-platform manner, using python-only tools. You should run it even if you downloaded the files\n", "manually, as it will compute the necessary paths for the rest of the script (it won't re-download files\n", "already present)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "import tarfile\n", "import urllib\n", "\n", "def fetch_scans():\n", " # Names of the files in the data bundle\n", " scans_dir = 'egscans'\n", " files = [os.path.join(scans_dir, 'snn03055dy%i.img' % i) for i in range(1,13)]\n", " \n", " # The remote url and filename for local storage\n", " data_url = 'http://imaging.mrc-cbu.cam.ac.uk/downloads/Tutscans/egscans.tar.gz'\n", " tarball = 'egscans.tar.gz'\n", "\n", " # First, check that we don't already have the files, whose names are:\n", " if all(map(os.path.isfile, files)):\n", " print 'All files already present, nothing to download.'\n", " return files\n", " \n", " # If we don't have them, make the storage directory, fetch (if needed)\n", " # and unpack skipping the .mat files that are in the tarball.\n", " if not os.path.isdir(scans_dir):\n", " os.mkdir(scans_dir)\n", "\n", " if not os.path.isfile(tarball):\n", " print \"Fetching remote tarball, this may take some time depending on your network...\"\n", " urllib.urlretrieve(data_url, tarball)\n", "\n", " print \"Unpacking scans, omitting .mat files\"\n", " tf = tarfile.open(tarball, 'r:gz')\n", " image_files = [ f for f in tf.getmembers() if not f.name.endswith('.mat')]\n", " tf.extractall(scans_dir, image_files)\n", " print \"All files unpacked into\", scans_dir, ', done!'\n", " return files\n", "\n", "files = fetch_scans()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "All files already present, nothing to download.\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Starting the analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now make actual images out of these files" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import nibabel as nib\n", "images = map(nib.load, files)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": true, "input": [ "# grand mean for data\n", "GM = 50" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we load the affine transformation from the first image (it's the same for all) and extract the conversion\n", "parameters from voxels to MNI space (in mm)." ] }, { "cell_type": "code", "collapsed": true, "input": [ "# transformation from voxel no to mm\n", "M = images[0].get_affine()\n", "# mm to voxel no\n", "iM = np.linalg.inv(M)\n", "# coordinates of voxel of interest in mm (MNI space)\n", "posmm = [-20.0, -42, 34]\n", "# coordinates in voxel space (in homogenous coordinates)\n", "posvox = np.dot(iM, posmm + [1])\n", "# We grab the spatial part of the output. Since we want to use it as an \n", "# index, we need to make it a tuple\n", "posvox = tuple(posvox[:3].astype(int))\n", "posvox" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "(29, 35, 42)" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to define a small utility function commonly used in SPM, we'll call it `global_mean`." ] }, { "cell_type": "code", "collapsed": true, "input": [ "def global_mean(img):\n", " \"\"\"Compute a \"sorted global mean\" of an image.\n", "\n", " This returns the mean of the image voxels that are in the range above \n", " 1/8 of the mean.\"\"\"\n", " \n", " m = img.mean()/8.0\n", " return img[img>m].mean()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "With this utility, we can now get the data for the voxel of interest across all the images, and compute the global mean of each scans:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "nimgs = len(images)\n", "vdata = np.zeros(nimgs)\n", "gdata = np.zeros(nimgs)\n", "for i, V in enumerate(images):\n", " d = V.get_data()\n", " vdata[i] = d[posvox]\n", " gdata[i] = global_mean(d)\n", "gdata" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "array([ 0.00459615, 0.004154 , 0.00462038, 0.00439584, 0.00417357,\n", " 0.00442748, 0.00416478, 0.00471157, 0.00419319, 0.00455416,\n", " 0.00420025, 0.00405441])" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can display slices from the scans. Here is slice 30 of the last scan:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "last_image = images[-1]\n", "last_data = last_image.get_data()\n", "imshow(last_data[:, :, 30])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n2muoqqrCmjVr2PCS2fx8wOlDwp2dnXjkkUfQ2dmJxYsXT5JBs/kZv/jiCzzzzDPo7u7Gf/7zHwwO\nDuKll16acM1sfL6yLFTLly9HT09P/v97enpQU1NTjltNO6Ojo1i/fj02bdqE5uZmAKf/QvX19QEA\nent7UVVVNZNTjM3777+P9vZ2XHzxxbj33nuxd+9ebNq0ac48H3Dauq+pqcH1118PALjnnnvQ2dmJ\n6urqOfGMf/3rX3HjjTfiggsuwIIFC3D33Xfjz3/+86x/vrIsVGvXrsXnn3+O7u5ujIyM4JVXXkFT\nU1M5bjWt5HI5PPTQQ6ivr8djjz2W729qakImkwEAZDKZ/AI223jyySfR09ODgwcPYseOHbjlllvw\n4osvzpnnA4Dq6mqsWLECXV1dAICOjg6sXr0a69atmxPPWFdXhw8++ABDQ0PI5XLo6OhAfX397H++\ncm1+vf7667na2trcJZdcknvyySfLdZtp5d13382lUqnc1Vdfnbvmmmty11xzTe6NN97IHT16NNfQ\n0JBbtWpVrrGxMXfs2LGZnuqUefvtt3Pr1q3L5XK5Ofd8+/fvz61duzZ31VVX5e66667cwMDAnHrG\nrVu35urr63NXXHFF7v7778+NjIzM+ucr21k/x3GcUuGR6Y7jJB5fqBzHSTy+UDmOk3h8oXIcJ/H4\nQuU4TuLxhcpxnMTjC5XjOInn/wC24mmp1gl60AAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Plot globals" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(gdata, vdata, 'x')\n", "plt.xlabel('TMVV for scan')\n", "plt.ylabel('Voxel value for -20 -42 34')\n", "plt.title('The relationship of overall signal to values for an individual voxel')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nOXOGiIh++uknys7OJq1WS/n5+eTn50cff/yxEINEIqHz58/rja9x7NeuXSOpVEobNmwgrVZLmzdv\npq5du9K1a9ea1C0oKCB7e3u6efMmERHV1taSm5sbZWdnExFRWloaXbhwgYiI9u/fT/b29jr7mEwm\nMxhjw33s2LFj5OLiQjk5OXT37l365z//SXK5nDQaDZ05c4Y8PDyorKxMiMnQusbFxQnblMj4/lS/\nzWNiYujWrVt0+/btJvO7du0a/ec//6Hq6mq6efMmPfXUUzRx4kTh/REjRpBCoaC8vDyqrq4mlUpF\nixcv1htb4+0hl8spLCyMysrKqLy8nPz8/Oizzz4jIqKdO3eSq6srnTp1iqqqqig6Olpn+zXcdu+8\n8w4988wzwnx37NhB/v7+OuvYcB+s/x4fOHCAHB0dhe3ROL76GOvboXvdB2/dukWOjo6Ul5cnvBYa\nGkpbt24lIqJp06bRxIkTqbKykvLz86lv377C/rpr1y7q2bMnXb58mWbOnElPPfUUEZHJ7/v06dPp\nrbfe0vs5EBGJNmGNHj1amD516hR16tSJiIiysrLI09NTp/yqVatoxowZeuc/ffp0iomJEaZN1W+c\nsBq6fv06SSQS+v3334V5N964DdfH29ubdu7cKbz3/fffk1wuJ6K6naxTp07CDklE5OLiIjQonp6e\nlJiYSDdu3NCZv6l6DWOqT1i3bt0Syk6ePJlWrFjRZN0KCwupXbt2VFlZKby2ZMkSmj59OhHVJW5j\nCevRRx+lv//978L0b7/9RnZ2dqTVaun3338nBwcHKiwsJCKiv/zlLxQbG0tERFu2bKHhw4frzGvW\nrFm0fPlyIqpLWA0/P31effVVmj9/PhE1L2E98sgjtGzZMrpy5YrO6w3nUVBQQLa2tlRdXS28P3Xq\nVGEfqS9bUlIivD948GDasmWL3mV+9NFH9MQTTwjTphLWP/7xD2E6OTmZwsLCdMoMHTqUvvrqK731\nH374YUpOTiaiugbE29tbbzkiookTJ9Jf//pXImpewnrhhRea/Gjr168f7d+/n86dO0cuLi60Z88e\n0mg0BpdN1PR7Z2x/qt/marXa6Dwbys3Npa5duwrTKpWKVq5cKUx/+umnNGbMGL119SWsjRs3CtNv\nvPEGvfDCC0RENGPGDFqyZInw3tmzZ5skrPrvZ15eHjk6Ogr71pQpU4Tvpr59sOH3eMqUKWYnrMaa\n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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": true, "input": [ "# proportionally scale data\n", "pvdata = vdata / gdata\n", "# scale to global mean of 50\n", "Y = pvdata * GM\n", "# our covariate\n", "ourcov = np.array([5,4,4,2,3,1,6,3,1,6,5,2])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot data \n", "plot(ourcov, Y, 'x')\n", "xlabel('Task difficulty')\n", "ylabel('PS voxel value')\n", "xlim(0, 7)\n", "title('The relationship of task difficulty to voxel value');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": true, "input": [ "# guess intercept, slope, estimated points\n", "guessic = 55\n", "guesslope = 0.5\n", "guessPts = guessic + guesslope*ourcov" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For plotting it will be convenient to have the boundaries of our plot region available" ] }, { "cell_type": "code", "collapsed": true, "input": [ "minx = 0\n", "maxx = ourcov.max()+1 # min max x for plots\n", "axs = np.array([minx, maxx, Y.min()*0.98, Y.max()*1.02])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot data with guess intercept and slope\n", "plot(ourcov, Y, 'x')\n", "plot(axs[:2], guessic+guesslope*axs[:2], ':') # guessed line\n", "# plot guessed residuals\n", "for i, c in enumerate(ourcov):\n", " plot([c, c], [Y[i], guessPts[i]], color='r')\n", "plt.axis(axs)\n", "xlabel('Task difficulty')\n", "ylabel('PS voxel value')\n", "xlim(0, 7)\n", "title('A first guess at a linear relationship, and its residuals');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEXCAYAAABMCOQqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVGX7P/DPmWHYZGAAWUZBBtCUVTDFLRRTMTNNXMgd\ncy+1njI1MxNcMjX79ss088k0UtK0px4TLTMcd8Xd3MIFFBUJWZR9ZuD+/cHDEZBlBgbODHO9Xy9f\nzpk5yzVnZi7uueY+980xxhgIIYQ0ayKhAyCEENL4KNkTQogJoGRPCCEmgJI9IYSYAEr2hBBiAijZ\nE0KICWi2yT49PR29evWCra0t3nvvPaxYsQJTp04VOqxmb8uWLQgNDeWXpVIpUlJShAuonlJSUiAS\niVBaWlqv7Zvi/aZQKPDnn39W+9iRI0fQoUOHRj1+fSiVSri7u9f4uKG9X+7evQupVIqaeqhHR0dj\n/PjxejmWSCTC7du39bKv6pg12p4bSVhYGC5duoSHDx/C3Ny8xvU2btwIZ2dnPHnyRC/HHD9+PCZP\nntzgfRmaLVu2YNOmTThy5Eij7D83N7dR9mtIlEolxo8fj9TUVP6+BQsWNPpxOY4Dx3HVPhYaGorr\n1683egz6VvH9MnHiRLi7u2Pp0qWCxdOmTZta38M1nX9DZFQt+5SUFCQmJsLZ2Rm7d++udd07d+7A\nx8dHq/1qNJpaHzemF5TU/Xpquw5pPur7Da05MapkHxsbi379+mH8+PH47rvvalxv4sSJiI2NxapV\nq2Bra4s///yz0tet8q/o3377LTw8PNCvXz8UFxdj3LhxaNmyJezt7RESEoJ//vkHCxcuxJEjRzBr\n1ixIpVK89dZbNcbm4eGBli1bYtmyZVAoFEhISODjWbRoEb9u1a+yDx48wPDhw+Hs7AwvLy+sXbuW\nfywxMRGdO3eGnZ0dXF1dMWfOHABAUVFRtfFW55NPPkHbtm1ha2sLPz8//PLLLwCAa9eu4Y033sCJ\nEycglUrh4OBQ7fabN2+Gr68vbG1t4e3tjY0bN9Z47quq+NV04sSJmDlzJl555RXY2tqiW7dulb62\nXr9+Hf3794ejoyM6dOiAnTt38o/Fx8cjODgYdnZ2aNOmDWJiYvjHqns9q1IqlXBzc8OqVasgl8sx\nefJkMMb4c9OyZUu89tpryM7O1ukc5OfnY+DAgXjw4AGkUilsbW2Rlpb2zNf73bt3w8/PD/b29ujT\np0+lVrdCocCaNWvQsWNHyGQyjBo1CsXFxQCAR48e4ZVXXoG9vT0cHR3Rq1evSnGdP3++2u2qvscU\nCgU++eQT+Pn5wcHBAZMmTeLXrYs25778/e/k5ISPP/6Yf7ywsBATJ06Eg4MD/Pz8cPr06VqPJRKJ\ncOvWLWzcuBFxcXFYtWoVpFIpXn31VQDAypUr4ebmBltbW3To0IH/jFU1ceJEvPHGG3j55ZdhY2MD\npVJZr89Z1XJecnIyevfuDVtbW4SHh+PRo0f8PqorUVXMA4mJiejevTvs7e3RqlUrzJ49G2q1utr4\n9+7dCz8/P9ja2sLNzQ1r1qyp9bxphRkRb29vtnXrVpaUlMQkEglLT0+vcd2JEyeyRYsW8cvR0dFs\n3LhxjDHGkpOTGcdxLCoqihUUFLDCwkK2YcMGNnjwYFZYWMhKS0vZuXPn2JMnTxhjjIWFhbFNmzbV\neKwrV64wGxsbduzYMaZSqdh7773HJBIJ+/PPP6uN5eDBg8zNzY0xxlhJSQnr1KkTW7p0KVOr1ez2\n7dvMy8uL/f7774wxxrp168a2bt3KGGMsPz+fnTp1ijHGao23qp07d7K0tDTGGGM7duxgLVq0YA8f\nPmSMMbZlyxb2wgsv1PjcGGMsPj6e3b59mzHG2KFDh5i1tTU7d+5ctetu3ry50v44jmO3bt1ijDEW\nFRXFHB0d2enTp5lGo2Fjx45lo0aNYowxlpeXx9zc3NiWLVtYSUkJO3/+PGvZsiW7evUqY4wxpVLJ\nLl++zBhj7NKlS8zFxYX98ssvjLFnX8+ioqJn4jp48CAzMzNj77//PlOpVKywsJB9/vnnrHv37uz+\n/ftMpVKx6dOns9GjR1faZ0lJSZ3nQKlU8q9nuYrvt7///pu1aNGCHThwgGk0GrZq1SrWtm1bplar\nGWOMKRQK1rVrV5aWlsaysrKYj48P27BhA2OMsffff5/NmDGDaTQaptFo2NGjR/ljeHh41LhdxfdY\n+boBAQHs3r17LCsri/Xs2ZN9+OGH1b/gVWhz7qdNm8aKiorYxYsXmYWFBbt+/TpjjLH58+ezXr16\nsezsbJaamsr8/PyYu7t7jceq+H6p+rm5fv06c3d359/Ld+7c4detKioqitnZ2bHjx48zxhgrKCjQ\n6XN28uTJSs+v/H3QrVs3NmfOHKZSqdjhw4eZVCpl48ePr/acM1b22pbngbNnz7JTp06xkpISlpKS\nwnx8fNjnn39e7XN3dXXlX+ucnJwaP2+6MJqW/dGjR3H//n0MGTIE7dq1g6+vL+Li4mrdhlX4UYVV\n8wNLdHQ0rKysYGlpCXNzc2RmZuLGjRvgOA7BwcGQSqW1bl9u165dGDJkCHr06AGJRIIlS5Y8U/qp\nafvTp0/j0aNH+PDDD2FmZgZPT09MmTIF27dvBwCYm5vjxo0bePToEaytrRESEsLfX1u8FY0YMQKu\nrq4AgMjISLRr1w6nTp2q83mVe/nll+Hp6QkA6NWrF8LDw+tV4+c4DsOGDUPnzp0hFosxduxYXLhw\nAQCwZ88eeHp6IioqCiKRCEFBQRg2bBjfuu/duzf8/PwAAAEBARg1ahQOHTpUaf/lr6eFhUW1xxeJ\nRIiJiYFEIoGlpSW+/vprLFu2DK1atYJEIsHixYuxa9euar/y13YOqjuHFe/bsWMHXnnlFfTt2xdi\nsRjvvfceCgsLcfz4cX6dt956C66urrC3t8fgwYP582Jubo60tDSkpKRALBajZ8+elc5nTdtVd+5n\nzZqF1q1bw97eHgsXLsQPP/xQ7bpVaXPuFy9eDAsLCwQGBqJjx464ePEiAGDnzp1YuHAhZDIZ3Nzc\n8Pbbb2v1nitXcV2xWIzi4mJcuXIFarUabdq0gZeXV43Pd+jQoejevTsA4NKlSzp9zrp27frMPu/e\nvYszZ85g6dKlkEgkCA0NxeDBg7V+Lp06dUJISAhEIhE8PDwwbdq0Z85jOXNzc1y5cgVPnjyBnZ0d\ngoODtT5OTYwm2X/33XcIDw/nE9rIkSNrLeVoo+JXrvHjx2PAgAEYNWoUWrdujfnz51eq69ZWt09L\nS4Obmxu/bGVlBUdHR61iuHPnDh48eAB7e3v+34oVK/iSzKZNm5CUlAQfHx+EhIQgPj5eq3grio2N\nRXBwML//y5cvIzMzU6v4AGDfvn3o1q0bHB0dYW9vj7179+q0fUUuLi78bSsrK+Tl5fHn4dSpU5XO\nQ1xcHNLT0wEAp06dQp8+feDs7AyZTIavv/76mRhq6+UBAE5OTpV+1E9JSUFERAR/PF9fX5iZmfHH\n1Nc5ePDgAdq0acMvcxwHd3d33L9/n7+v/I9x1fMyd+5ctG3bFuHh4fD29sbKlSsr7bum7apT8fy0\nadMGDx480Cp+bc59xTisra35OB48ePDMceurbdu2+PzzzxEdHQ0XFxeMHj0aaWlpNa5f8TNZ389Z\nReXbW1lZ8fd5eHho/ccrKSkJr7zyCuRyOezs7LBw4cIa30M//fQT9u7dC4VCgbCwMJw8eVKrY9TG\nKJJ9YWEhfvzxRyQkJEAul0Mul2PNmjW4ePEiLl26pNU+qkvWFe8zMzPDRx99hCtXruD48ePYs2cP\nYmNja9y2Irlcjnv37lWKt+KL2KJFCxQUFPDLDx8+5G+7u7vD09MT2dnZ/L8nT55gz549AMre4HFx\nccjIyMD8+fMxYsQIFBYW1hpvRXfu3MG0adOwbt06ZGVlITs7G/7+/vwbtK7nVlxcjOHDh2PevHn4\n559/kJ2djZdfflmn1pk22rRpg969e1c6D7m5uVi3bh0AYMyYMRg6dCju3buHnJwczJgx45kWeF3P\nperjbdq0wW+//VbpmAUFBZDL5ZXWq+sc1HXc1q1b486dO/wyYwypqalo3bp1nXHa2Njg008/xa1b\nt7B792589tlnOHjwYK3Hq8ndu3cr3W7VqpVW22lz7msil8ufOa62qjuvo0ePxpEjR3Dnzh1wHIf5\n8+drtX2bNm3q9Tmr+lzK3yPlyuMAnv2cl5SUICMjg19+44034Ovri5s3b+Lx48dYvnx5jeexc+fO\n+OWXX5CRkYGhQ4ciMjKytlOlFaNI9r/88gvMzMxw7do1XLx4ERcvXsS1a9cQGhpabYIDnv1qXVdy\nUiqV+Ouvv1BSUgKpVAqJRAKxWAygrDV669atGrcdMWIEfv31V5w4cQIqlQrR0dGVjhcUFIS9e/ci\nOzsbDx8+xOeff84/FhISAqlUilWrVqGwsBAlJSW4fPkyzpw5AwDYunUr/4axs7MDx3EQiUQ4ePBg\njfFWlJ+fD47j0LJlS5SWlmLz5s24fPky/7iLiwvu3btX4w9FKpUKKpUKLVu2hEgkwr59+7B///5a\nz2VNansNBg0ahKSkJGzduhVqtRpqtRqnT5/mf8jMy8uDvb09zM3NkZiYiLi4uAb3kpoxYwY++OAD\nPgFlZGRU28urrnPg4uKCzMzMGrv5jhw5EvHx8UhISIBarcaaNWtgaWmJHj16VLt+xfO0Z88e3Lx5\nE4wx2NraQiwWQyTS/WPLGMP69etx//59ZGVlYfny5Rg1ahT/uEgkwuHDh6vdtiHnPjIyEitWrEBO\nTg7u3btX6UfRuri4uFT6AT8pKQkJCQkoLi6GhYUFLC0tq33Plz/fiur7OavIw8MDnTt3xuLFi6FW\nq3H06FH+jwUAPPfccygqKsLevXuhVquxbNmySj+C5+XlQSqVwtraGtevX8dXX31VbexqtRrbtm3D\n48ePIRaLIZVKa3yeujCKZB8bG4tJkybBzc0Nzs7OcHZ2houLC2bNmoW4uLhq/zpW7YNc3XJFDx8+\nxMiRI2FnZwdfX1++bz0AvP3229i1axccHBzwr3/965lj+fr6Yu3atRg1ahRatWoFqVQKZ2dnvnY8\nfvx4dOzYEQqFAi+99BJGjRrFH18sFmPPnj24cOECvLy84OTkhGnTpvGJ4/fff4e/vz+kUineeecd\nbN++HRYWFkhPT68x3qqxzZkzB927d4erqysuX76MF154gX+8b9++8PPzg6urK5ydnZ/ZXiqV4osv\nvkBkZCQcHBzwww8/8D0jqlPbea6uX3j5slQqxf79+7F9+3a0bt0acrkcCxYsgEqlAgCsX78eH330\nEWxtbbF06VK89tpr1e6nNlXXefvttzFkyBCEh4fD1tYW3bt3R2JiYrWx1XYOOnTogNGjR8PLywsO\nDg5IS0ur9Fzbt2+PrVu3Yvbs2XByckJ8fDx+/fVXmJlVf5lLxW1v3ryJ/v37QyqVokePHpg5cyZ6\n9+5d53ZVny/HcRgzZgxfDmrXrh0+/PBDAEBqaiqkUikCAgKq3W9Dzv3ixYvh4eEBT09PvPTSS5gw\nYUKt61d8bPLkybh69Srs7e0xbNgwFBcXY8GCBXBycoJcLsejR4+wYsUKrc6FSCSq1+esakxxcXE4\ndeoUHBwcsGTJEkRFRfGP2dnZYf369ZgyZQrc3NxgY2NTqYT16aefIi4uDra2tpg2bVqlPFD1OFu3\nboWnpyfs7OywceNGbNu2rcZzpi2O6fv7OOFbQjdv3oSHh4fQ4RACT09PbNq0CS+++OIzj23btg1X\nr17F8uXLBYiMNBWju4LWUP3666/o27cvGGN47733EBgYSImeGIWxY8cKHQJpAkZRxjEGu3fvRuvW\nrdG6dWvcunWL79JFCCGGgMo4hBBiAgyqjENj0BBCiO60abMbXBmHMWaU/xYvXix4DBS/8HFQ/Mb3\nz5hjZ0z7wozBJXtCCCH6R8meEEJMACV7PQkLCxM6hAah+IVF8QvHmGPXhUH1xuE4TqcaFCGEmDpt\n8ya17AkhxARQsieEEBNAyZ4QQkwAJXtCCDEBlOwJIcQEULInhBATQMmeEEJMACV7QggxAZTsCSHE\nBFCyJ4QQE0DJnhBCTAAle0IIMQGU7AkhxARQsieEEBNAyZ4QQkwAJXtCCDEBlOwJIcQEULInhBAT\nQMmeEEJMACV7QggxAZTsCSHEBFCyJ4QQE0DJnhBCTIBZY+xUoVDA1tYWYrEYEokEiYmJuHjxImbM\nmIH8/HwoFAps27YNUqm0MQ5PCCGkCo4xxvS9U09PT5w9exYODg78fV26dMFnn32G0NBQbN68GcnJ\nyViyZEnlYDgOjRAOIYQ0W9rmzUZp2QN45uA3btxAaGgoAKBfv3546aWXnkn2ABAdHc3fDgsLQ1hY\nWGOFSAghRkepVEKpVOq8XaO07L28vGBnZwexWIzp06dj6tSp6NmzJ+bNm4dXX30Vn332GaKjo/Hk\nyZPKwVDLnhBCdKJt3myUZJ+Wlga5XI6MjAz0798fa9euhbOzM9566y1kZmZiyJAh+OKLL/Do0aN6\nBU0IIaSMoMm+opiYGNjY2GDOnDn8fUlJSRg/fjxOnTpVORhK9oQQohNt86beu14WFBQgNzcXAJCf\nn4/9+/cjICAAGRkZAIDS0lIsW7YMb7zxhr4PTQghpAZ6T/bp6ekIDQ1FUFAQunbtildeeQXh4eGI\ni4tD+/bt4ePjAzc3N0ycOFHfhyaEEFKDRi/j6ILKOIQQohvByjiEEEIMDyV7QggxAZTsCSHEBFCy\nJ4QQE0DJnhBicuLjgZycyvfl5JTd31xRsieEmJyePYGFC58m/JycsuWePYWNqzFR10tCiEkqT/Bz\n5wKrVwPLlwMymdBR6c5ghkvQBSV7QkhTSkkBFJ4cUpIZFAqho6kf6mdPCCG1yMkpa9EDZf9XreE3\nN5TsCSEmp7yEs3x52fLy5ZVr+M0RlXEIISYnPr7sx1iZDADHAYwhJwc4dgwYNEjo6HRDNXtCCNHG\n/5K9saKaPSGEEB4le0IIMQGU7AkhxIgUqgvx69+/6rwdJXtCCDFwjLFKdfmfrv2EktISnfZByZ4Q\nQgzc8B+H41zaOQCAlcQKW4ZugVgk1mkf1BuHEGLaDLA3zuV/LkNTqkGQaxAA4E7OHbjbuUPEPds+\np944hBBiRCom7KTMJNzMuskve8g8qk30uqCWPSHEtBlAy/7yP5cxZ/8c/D7ud523pZY9IYQYqFJW\niu8ufIdSVgoA8Gnpgy2vbmnUY1KyJ4SQJlLeAhdxIlz65xKyC7MBAGKRGHKpvFGPTWUcQohpa6Iy\nzju/v4MurbpgTMAYve6XxsYhhJAaNMVAaLeybuFW9i2Ee4cDADLyM+Bg5aBzl8m6UM2eEEJq0FjT\nEla80Olx8WOk5KTwy04tnPSe6HVBLXtCiEkqT/Dr1nOY+SZr8LSEOUU56PpNV1x58wrMRGb6C7QO\nVMYhhJA6NHRawu8vfo+B7QaipXVLAEBmQSYcrR31GmNdqIxDCCG1qO+0hJpSDX87qzALj4se88tN\nneh1QS17QojJqTgtocyeQ042e7pcSynn85Of43HRYywOW9x0wdZB0DKOQqGAra0txGIxJBIJEhMT\nkZiYiFmzZkGtVsPMzAzr169Hly5d6hU0IYQ0hLa9cdJy0/DH7T8woeMEAECeKg9WZlaC/tBalbZ5\ns1F+ReA4DkqlEg4ODvx98+bNw9KlSzFgwADs27cP8+bNw8GDBxvj8IQQUqvqulfKZGX3q0pUMBeb\nAwAkYgnSctP4dWzMbZoqRL1rtJp91b80crkcjx+X1bZycnLQunXrxjo0IYTUSykrReBXgfgn/x8A\nQEvrlpj/wnyBo9KPRinjeHl5wc7ODmKxGNOnT8fUqVNx584dvPDCC+A4DqWlpThx4gTc3d0rB8Nx\nWLz4aS0sLCwMYWFh+g6PEEKe4jhcengRgS6BAMpKNYbcglcqlVAqlfxyTEyMcDX7tLQ0yOVyZGRk\noH///li7di1iYmIwc+ZMREREYOfOndi4cSP++OOPysFQzZ4Q0gQK1YWwklgBAP5z7T9QyBToJO8k\ncFT1YzD97GNiYmBjY4OYmBg8efIEQFmJRyaT8WUdPhhK9oSQRrb7793YdXUXYiNihQ5FLwTrZ19Q\nUIDc3FwAQH5+Pvbv3w9/f3+0bdsWhw4dAgAkJCTgueee0/ehCSFNKD7+2b7pOTll9xuS3OJcfHL0\nE355YNuB+PbVbwWMSBh6742Tnp6OiIgIAIBGo8HYsWMxYMAAODo6YubMmSguLoaVlRU2btyo70MT\nQppQ+fgy5X3TK/ZdF1qBugAWYguIRWJYS6zBgYO6RA2JWAKJWCJ0eIKgi6oIIfVWnuDnzi27CrWh\n48voy4CtA7C0z1KEtA4ROpRGZzA1e11QsifE+DR0fBl9SEhOQLGmGAPbDQRQua98c6e3mn1paSm+\n//57LFmyBABw9+5dJCYmNjxCQojRq+/4MvpQcUwaa4k1rCXW/LKpJHpd1NmynzFjBkQiERISEnD9\n+nVkZWUhPDwcZ86c0X8w1LInxGjUd3wZfbiacRXTfp2Go5OONu6BjIDeWvanTp3C+vXrYWVV1ifV\nwcEBarW64RESQozasWOVE7tMVrZ87Jj+j8UYw/sH3kehuhBA2QTdyolK/R+oGauzN465uTlKSp7O\nvpKRkQGRiEZGJsTU1Ta+jD4UaYpQUlqCFuYtwHEc2ju2h6pEBSuJFTiOgxnXdBOENAd1Zu3Zs2cj\nIiIC//zzDz744AP07NkTCxYsaIrYCCEmbM7+OYi/8bTT/uvBr8PO0k7AiIybVr1xrl27hj///BMA\n0LdvX/j4+DROMFSzJ8Q4/W+Y4IY4l3YOifcTMaPzDABl87ka0lDChkpvNfu7d++iRYsWGDx4MAYP\nHowWLVrg7t27egmSEFNmLFegNqaHeQ/5245Wjmhj14ZfpkSvX3W27P39/cFxHACgqKgIycnJaN++\nPa5cuaL/YKhlT0xIpd4ssmeXjUo9WvZPip+g6zddcWnGJZO9qlUfGu2iqnPnzmHdunXYtGlTvYOr\nMRhK9sTEGOoVqDrTMtkvPbQUYwLGwNvBG0BZL5vyxiSpn0a9gtbf3x+XL1+uV2C1BkPJnpggQ7gC\ntcFqSPZFmiLkFufCqYUTAGDvjb3oJO8EVxvXpo6w2dLbtIRr1qzhb5eWluLcuXM0yxQhelJ+Beo6\nGHnLvgZfn/kaxSXFmNdzHgDg5XYvCxyR6aqzZR8dHc1/zTIzM4NCocDw4cNhaWmp/2CoZU9MiJBX\noOrd/1r2KTkp2Hh2Iz7u+zEAKtM0BRoIjRADFx9fNkywTAY+WebklF2Bqq8Lk5pCcnYyPB28AMZQ\nqC7E3ht7Mdx3uNBhmYwGJ/vBgwfXuvPdu3fXP7pa9kvJnpgkPfRTFwJjDD2/7YnjU04YZfzNQYOT\nfcUJbavTGBOBU7InJsuIkv2GMxvgbe+N/t79AfyvVCMSGU38zQ2VcQgxJgac7Is1xbifex9e9l4A\ngNP3T8O5hTM8ZB5PVzLg+Js7vSX7pKQkfPDBB7hy5QqKior4nd++fVs/kVYMhpI9MVUGnCx/v/k7\n9tzYg7UD19a8kgHH39zpbbiE119/HTNmzIBEIoFSqURUVBTGjh2rlyAJIYYnT5WHMT+NQUlp2Wi3\nA9oOqD3RE6NQZ7IvLCxEv379wBiDh4cHoqOjEW9Kg3cQYgJuZt1EgboAAGBjboNxgePAQC315qTO\nZG9paYmSkhK0bdsWX375Jf7zn/8gPz+/KWIjhDSR5UeW48o/T8e7erndyzAT0XjxzUmdNfvTp0+j\nQ4cOyMnJwaJFi/DkyRPMmzcP3bp1038wVLMnpqqJa94/Xf0JGQUZ/HDCDUY1e8HobbgEsVgMqVQK\nqVSKLVu26CM2QkgTU5WocC3jGjq6dgQABMuD+Zo8MQ11lnHeffdddOjQAYsWLWqUwc8IIY3vQe4D\nLDm8hF/2svdCO8d2AkZEmlqdyV6pVOLgwYNo2bIlpk+fjoCAACxdurQpYiOkWWvMyUsYYxj+43Bk\n5GcAABQyBX6K/KnhOyZGS6eLqv766y+sXLkSO3bsgFqt1n8wVLMnJkTfA6Hdzr4NKzMryKVyAMCJ\n1BPoJO8ECzMLPUdeDarZC0Zv/eyvXr2K6Oho+Pv7Y9asWejRowfu37+vlyAJMWUyWVliX7iwbLmh\nI17uuLwDpx+c5pe7u3dvmkRPjEKdLfvu3bvjtddeQ2RkJFq1atW4wVDLnpig+k5ecvTuUfzn2n/w\n2YDPGis07VHLXjA0Ng4hRqC8lLNuPYeZb7JaW/aaUg2Opx5HL49eAIDswmw8zHsIHyefJoy4BpTs\nBSNoslcoFLC1tYVYLIZEIkFiYiJee+01JCUlAQBycnIgk8lw/vz5egVNSHOga82+SFOEyJ2R2Dly\np+GVZyjZC0bQZO/p6YmzZ8/CwcGh2sffe+89yGQyfPjhh5WDoWRPTIg2k5fM2DMDE4Mmopub/i9i\n1CtK9oLR20VV9VXTwRlj+PHHH3Hw4MHGOjQhRqG62aiecHeh6JILwA8A8FbXt+Ap82zawEizVGOy\nb8hMVRzHoV+/fhCLxZg+fTqmTp3KP3bkyBG4uLjA29u72m2jo6P522FhYY0ySQohhirxfiKyC7Ph\n51yW7H2dfAWOiBgapVJZ5+RS1anXTFUcx6F37941Pp6Wlga5XI6MjAz0798fa9euRWhoKADgjTfe\nwHPPPYd33nmn2v1SGYeYktvZt/HWvrewZ8weoUPRWXOZQ9fY6bVmX1BQgNTUVLRv317nQGJiYmBj\nY4M5c+ZAo9HAzc0N586dq7YbJyV70twxxhB/Ix4D2w6EWCRGKSvF9UfXjbIFr++Lwkj96O2iqt27\ndyM4OBgDBgwAAJw/fx5Dhgypcf2CggLk5uYCAPLz87F//34EBAQAAA4cOAAfH59G769PiKHiOA57\nkvYgPT8dACDiREaZ6AH9XxRGGledLftOnTohISEBffr04btK+vv71zgoWnJyMiIiIgAAGo0GY8eO\nxYIFCwDld5WPAAAYXElEQVSUzXrVvXt3TJs2rfpgqGVPmqFlh5fBzdYNE4MmCh1Ko6jvRWFEP/TW\nG0cikUBW5U+1SFTzFwJPT09cuHCh2sc2b95cZ0CEGLuHeQ+RlJnEX/w0MWgiHKyq74Zs7HJygNWr\ngbnJDKtXU8vekNVZxvHz88O2bdug0Whw48YNzJ49Gz169GiK2AgxGhVbVmm5aTh69yi/7GbrBmuJ\ntRBhNaqKNXuF4mlJp+pInsQw1FnGyc/Px/Lly7F//34AwIABA7Bo0SJYWlrqPxgq4xAjVKAuQI9N\nPXByyklYmun/c2GoKvXG+R/qjdP09NYb5+rVq/D1rfwDklKpbJT+75TsibH47eZveF7+PJxaOAEA\nUnJSoJAphA2KmCS99caJjIzEypUrwRhDQUEBZs+ejffff18vQRJiTCp+oC4+vIi0vDR+mRI9MXR1\nJvtTp04hNTUV3bt3R0hICORyOY4fP94UsRFiML678B0+SPiAX57/wnwEugQKGBEhuqkz2ZuZmcHK\nygqFhYUoKiqCl5dXrb1xCGkOsguz8dPVp9P4DWk/BB+GfljLFoQYtjqzdkhICCwtLXHmzBkcOXIE\ncXFxGDlyZFPERkiTKmWl/G0GhuP3nn6DtbeyRwvzFkKERYhe1PkD7enTp9GlS5dK98XGxmLChAn6\nD4Z+oCUCYYwh5JsQ7Bq5Cx4yD6HDIURreuuNo1Kp8NVXX+Hw4cMAykainD59OszNzfUTacVgKNmT\nJnT4zmE4WDnA39kfAJCelw4XGxeBoyJEN3pL9pMnT4ZGo0FUVBQYY/j+++9hZmaGb775Rm/B8sFQ\nsieNrKS0BGKRGACw/fJ2yG3k6K2oeQRXQgyd3pJ9YGAgLl26VOd9+kDJnjQmZYoSXyZ+iV2Ru4QO\nhRC90Vs/ezMzM9y8eZNfvnXrFszMGm2CK0L0pkhThK9Of8V/ELq7dceWoVuEDYoQgdSZtVevXo0X\nX3wRnp5lU6OlpKTQgGbEYJWUlgAAxCIxzMXmuPvkLopLimFpZgkLMwtYwMAm6iakiWg1eUlRURH+\n/vtvAED79u0bZVwcgMo4pAH+N1PSiB9H4M0ub+JFzxeFjoiQJqHXmv2oUaPw2muv1ThvrL5Qsie6\nOvvgLLIKs9C/bTjAGB4XPYadpZ3QYRHSZPQ6U5VYLEZkZCQ6d+6MTz/9FHfv3tVLkITUR7Gm+Ont\nkmLkq/P5ZUr0hFRPqzJOuRs3bmDp0qXYtm0bSkpK9B8MtexJHVJyUjB0+1Ccn34eHMc9feB/ZRxC\nTI3eWvZA2Y+yK1euxKhRo3D9+nWsWrWqwQESog3GGD49/inyVWWtd4VMgWOTjlVO9ISQOtXZG6dr\n165QqVSIjIzEzp074eXl1RRxERNWykqhKlHB0swSHMfBQmyBfHU+PzYNjVFDiO7qLONcv34dHTp0\naJpgqIxDAMz7Yx7aOrTFtOern5i+WlTGISZKb71xmhIle9OUlJmE46nHMTFoIoCyi6EsxBa6lWoo\n2RMTpdeaPSH6lqfK429bmllCxIkqLVNNnhD9opY9aXJFmiL4rPPBlTevwFpirZ+dUsuemKgGt+wT\nExORlvZ0js3vvvsOQ4YMwVtvvYWsrCz9RElMxtdnvsaNzBsAylruf8/6W3+JnhBSpxqT/fTp02Fh\nUTaOyOHDh/H+++8jKioKtra2mDZNhx/OiEkqZaV4XPSYX25p3bJSqcZcrP/5EAghNauxjNOxY0dc\nvHgRADBz5kw4OTkhOjr6mcf0GgyVcZqNjWc34nb2bXzS75OmOSCVcYiJanAZp6SkBGq1GgBw4MAB\n9OnTh39Mo9HoIUTSnKTnpWP54eX88qTgSVjRd4WAERFCKqrxoqrRo0ejd+/eaNmyJaytrREaGgqg\nbMgEmUzWZAESw5VZkAkHKwdwHAeZpQyO1o5gjIHjOJiJaM4DQgxJrb1xTpw4gYcPHyI8PBwtWpRd\ntZiUlIS8vDx06tRJ/8FQGceodP2mK+KGxcHboXFHQ9UKlXGIiWrwRVWFhYXYsGEDbt68icDAQEye\nPLnRZ6iiZG/YfrzyIxytHNHXqy+AyvO5Co6SPTFRDa7ZR0VF4ezZswgMDMTevXsxZ84crQ+uUCgQ\nGBiI4OBghISE8PevXbsWPj4+8Pf3x/z587XeHxEGYwzpeen8cmtpazi3cOaXDSbRE0LqVGNT/dq1\na/jrr78AAJMnT0aXLl203inHcVAqlXBwcODvO3jwIHbv3o1Lly5BIpEgIyOjAWGTpnDoziFsOLMB\n20dsBwD0bNNT4IgIIfVVY7KvWLKpT/mm6teKr776CgsWLIBEIgEAODk5VbtdefdOAAgLC0NYWJjO\nxyb1wHEoVhfhnd/fwRcDv4CZyAy9PXqjt0dvoSMjhFSgVCqhVCp13q7Gmr1YLIa19dMrHAsLC2Fl\nZVW2EcfhyZMnNe7Uy8sLdnZ2EIvFmD59OqZOnYrg4GC8+uqr+O2332BpaYlPP/0UnTt3rhwM1eyb\n3KOCR7CWWMPavAXAGH746wcM8xkGCzPDn5g7Ph7o2ROQycDX7HNygGPHgEGDhI6OkKahbd6sscne\nkJmojh07BrlcjoyMDPTv3x8dOnSARqNBdnY2Tp48idOnTyMyMhK3b9+u9zGIfvzrt39hcvBklF9F\nMTpgtKDx6KJnT2DhQmD5ckAGICfn6TIhpLJGGfVSLpcDKCvVREREIDExEW5ubhg2bBgAoEuXLhCJ\nRMjMzGyMw5NaHLh9AJvObeKXv4/4Hn08+9SyheGSycoS+8KFZct84qfLQAh5ht6TfUFBAXJzcwEA\n+fn52L9/PwICAjB06FAkJCQAKOurr1Kp4OjoqO/DkyoYY7id/fQblIedBwJcAvhlYx5KOD6+7P+5\ncyv/X34/IeQpvXecT09PR0REBICyYRXGjh2L8PBwqNVqTJo0CQEBATA3N0dsbKy+D02qcT/3PqJ+\nicLhiYfBcRzaObYTOiS96dkTeO+9stvfAFi2rOz2p58KFhIhBkvvyd7T0xMXLlx45n6JRILvv/9e\n34cj1Xgj/g1E946Gi40L3GzdcOT1I0KHRAgRGE1e0gxkFWZBU6rhL3jaf2s/url1g62FrfY7McIr\nUMt74+TkAApPDinJDDIZ9cYhpoWmJTQh60+vx+83f+eXw73DdUv0Rqo8oa9eDaQkM6xeXfl+QshT\n1LI3QhceXsDOqzux/MWG9TE09n7qFbtaymTPLhNiCqhl3wTi48sSTEU5OfrvDcIYw6X0S/yyQqbA\nwLYDG7zf8n7q5c+hPFn2NJJREY4dq5zYy7tiHjsmbFyEGCJq2TdAU7UsVSUq9Ivth71j98LG3EZ/\nO8bTmNet5zDzTUatYkKMTIOHOBaCsSV74GmynDu3rHasr2T50cGP8FLbl9DDvUfDd1aHlJSnP3Aq\nFI1+OEKIHlEZp4nIZGWJXuHJYe7c+if67MJs3My6yS8PaT8E7R3b6ynKmuXkgP9hc/XqZ8tShJDm\ngZJ9A+krWR64fQA/Xf2JX+7cqjMcrRv3CuOqY8mUDz1ACZ+Q5ofKOA1QqUZvzyEnm2lds3+Q+wDv\n/P4Otg/fLtiQBcbeG4cQQjX7JqFrsjx17xSeb/U8zERmKGWlOHr3KELbhBrG+DRGeFEVIYSSfdPT\nIlmO/3k8ontHG8YE3VVRsifEKFGyb2rVJMv1p9ejhaQFooKiBApKB5TsCTFKlOybGsfhSdFjJGUm\noXOrshm4bmXdgtRCWmmSboNFyZ4Qo0RdLwWQnJ2MbX9t45e9HbyNI9ETQpo9atk3gKpEhfDvw7Fn\nzB7YWEiNu2VMLXtCjBK17BvJmQdnkJGfAQAwF5vj85c+h7XEuo6tCCFEWJTsdRSfFF/pStcg1yCI\nODqNhBDDRmWcOvxy/Recun8KK/quqH1FYy+DGHv8hJgo6o1TTwXqAhy9exTh3uEAgEcFj6Ap1cDV\nxrX2DY09WRp7/ISYKKrZ15OqRIWtl7byJ6+ldcu6Ez0hhBg4SvYABsUNwvVH1wEAMksZYiNiDWMI\nA0II0ROTLONcSr8EiUgCHycfAMDNrJvwsvdq2A+txl4GMfb4CTFRVMapouLJuPjwIm5k3eCX2zq0\npR41hJBmzSQy3JkHZzBi5wh+eXzH8RjSfoiAERmGpppDlxAivGaZ7DWlGsT9Fce35gOcA/DlwC8F\njsrwGPuE44QQ7TWrZF+e3MWcGEfvHkWuKhcAYGFmAblUrvfjGXvLWCZ7OjsV0DiTpRNCDEOz+YF2\n+p7pGNRuUJOWZxoyU5UhoQnHCTFezf4H2qTMJBxKOcQvx4TFYFC7pp1Lrzm0jMvn0E1JZjThOCHN\nmFEl+1JWyt/+J/8f3Mq+xS+72rhCLBI3eUwyGTB3btntuXONL9GX/4FSKGjCcUKas0ZJ9gqFAoGB\ngQgODkZISAgAIDo6Gm5ubggODkZwcDB+++03nfaZnpeOoA1BfMJ/oc0LmBQ8Se+x68qYW8bHjlX+\nJlL+TeXYMWHjIoToX6PU7D09PXH27Fk4ODjw98XExEAqleLdd9+tOZgqtafYi7GI6BABqYUUQFlr\n3pAmA6lUs5c9u0wIIY1N8Jp9dQfXJqCS0hL+9oPcB8gqzOKXDSnRA9QyJoQYD7PG2CnHcejXrx/E\nYjGmT5+OqVOnAgDWrl2L2NhYdO7cGWvWrIGsmubvwKkD0cO9BwAgLCwMHjKPxghRLwZV83uwTFb9\n/YQQog9KpRJKpVLn7RqljJOWlga5XI6MjAz0798fa9euRfv27eHk5AQAWLRoEdLS0rBp06bKwXAc\nNCUaQX5oJYQQYyRoGUcuL7uAycnJCREREUhMTISzszM4jgPHcZgyZQoSExOr3ZYSPSGE6J/ek31B\nQQFyc8uuXM3Pz8f+/fsREBCAhw8f8uv8/PPPCAgI0PehCSGE1EDvNfv09HREREQAADQaDcaOHYvw\n8HBMmDABFy5cAMdx8PT0xNdff63vQxNCCKlBsxkugRBCTJHgXS8JIYQYDkr2hBBiAijZE0KICaBk\nTwghJoCSPSGEmABK9oQQYgIo2RNCiAmgZE8IISaAkj0hhJgASvaEEGICKNkTQogJoGRPCCEmgJI9\nIYSYAEr2hBBiAijZE0KICaBkTwghJoCSPSGEmABK9oQQYgIo2RNCiAmgZE8IISaAkj0hhJgASvaE\nEGICKNkTQogJoGRPCCEmgJI9IYSYAEr2hBBiAijZE0KICaBkTwghJoCSvZ4olUqhQ2gQil9YFL9w\njDl2XVCy1xNjf8NQ/MKi+IVjzLHrgpI9IYSYAEr2hBBiAjjGGBM6iHIcxwkdAiGEGB1t0rhZE8Sh\nNQP6u0MIIc0KlXEIIcQEULInhBATQMmeEEJMgMEk+99++w0dOnRAu3btsHLlSqHD0cmkSZPg4uKC\ngIAAoUPRWWpqKvr06QM/Pz/4+/vjiy++EDoknRQVFaFr164ICgqCr68vFixYIHRI9VJSUoLg4GAM\nHjxY6FB0plAoEBgYiODgYISEhAgdjk5ycnIwYsQI+Pj4wNfXFydPnhQ6JK39/fffCA4O5v/Z2dnV\n/vllBkCj0TBvb2+WnJzMVCoV69ixI7t69arQYWnt8OHD7Ny5c8zf31/oUHSWlpbGzp8/zxhjLDc3\nlz333HNGde4ZYyw/P58xxpharWZdu3ZlR44cETgi3a1Zs4aNGTOGDR48WOhQdKZQKFhmZqbQYdTL\nhAkT2KZNmxhjZe+fnJwcgSOqn5KSEubq6sru3r1b4zoG0bJPTExE27ZtoVAoIJFIMGrUKPz3v/8V\nOiythYaGwt7eXugw6sXV1RVBQUEAABsbG/j4+ODBgwcCR6Uba2trAIBKpUJJSQkcHBwEjkg39+7d\nw969ezFlyhSj7ZFmjHE/fvwYR44cwaRJkwAAZmZmsLOzEziq+jlw4AC8vb3h7u5e4zoGkezv379f\nKUg3Nzfcv39fwIhMU0pKCs6fP4+uXbsKHYpOSktLERQUBBcXF/Tp0we+vr5Ch6STd955B6tXr4ZI\nZBAfR51xHId+/fqhc+fO+Pe//y10OFpLTk6Gk5MTXn/9dXTq1AlTp05FQUGB0GHVy/bt2zFmzJha\n1zGIdxddTCW8vLw8jBgxAv/v//0/2NjYCB2OTkQiES5cuIB79+7h8OHDRjXWyZ49e+Ds7Izg4GCj\nbB0DwLFjx3D+/Hns27cP69atw5EjR4QOSSsajQbnzp3Dm2++iXPnzqFFixb45JNPhA5LZyqVCr/+\n+itGjhxZ63oGkexbt26N1NRUfjk1NRVubm4CRmRa1Go1hg8fjnHjxmHo0KFCh1NvdnZ2GDRoEM6c\nOSN0KFo7fvw4du/eDU9PT4wePRoJCQmYMGGC0GHpRC6XAwCcnJwQERGBxMREgSPSjpubG9zc3NCl\nSxcAwIgRI3Du3DmBo9Ldvn378Pzzz8PJyanW9Qwi2Xfu3Bk3btxASkoKVCoVduzYgSFDhggdlklg\njGHy5Mnw9fXFv/71L6HD0dmjR4+Qk5MDACgsLMQff/yB4OBggaPS3scff4zU1FQkJydj+/btePHF\nFxEbGyt0WForKChAbm4uACA/Px/79+83ml5prq6ucHd3R1JSEoCyurefn5/AUenuhx9+wOjRo+tc\nzyCGSzAzM8OXX36JAQMGoKSkBJMnT4aPj4/QYWlt9OjROHToEDIzM+Hu7o4lS5bg9ddfFzosrRw7\ndgxbt27lu84BwIoVK/DSSy8JHJl20tLSEBUVhdLSUpSWlmL8+PHo27ev0GHVm7GVNNPT0xEREQGg\nrCwyduxYhIeHCxyV9tauXYuxY8dCpVLB29sbmzdvFjokneTn5+PAgQNa/VZiUAOhEUIIaRwGUcYh\nhBDSuCjZE0KICaBkTwghJoCSPSGEmABK9sSgZWZm8gM9yeVyuLm5ITg4GJ06dYJGo6lz+y1btmD2\n7Nk6HVOhUCArKwsA0LNnT/7+uXPnwt/fH/Pnz8ejR4/QtWtXPP/88zh69CgGDRqEJ0+e6PbkUHbV\ncnlXxYsXL2Lfvn0674MQbRhE10tCauLo6Ijz588DAGJiYiCVSvHuu+9qvX19ujJW3ObYsWP87X//\n+9/Izs4Gx3HYvn07AgMD+S5v8fHxOh+nqvPnz+Ps2bMYOHBgg/dFSFXUsidGhTGGb775BiEhIQgK\nCsKIESNQWFgIANi5cycCAgIQFBSEsLAwfv1y8fHx6NGjB99qL5eZmYnw8HD4+/tj6tSplbYpHzpi\nyJAhyMvLQ6dOnbBq1SrMnz8f//3vf9GpUycUFRVV+jYQGxuLjh07IigoCFFRUQCAiRMn4qeffnpm\nv+XUajU++ugj7NixA506dcKPP/6I5557Do8ePQJQNv5Pu3btkJmZqY/TSEwQteyJ0Rk2bBimTJkC\nAFi0aBE2bdqEWbNmYenSpdi/fz/kcjlfUilvpf/888/4v//7P+zbt++ZkQ1jYmLQq1cvfPjhh9i7\ndy82bdrEP1a+/e7duyGVSvlvGS4uLjh79iw/fnj5eleuXMHy5ctx4sQJODg48Ff3Vv2GUXVZIpFg\n6dKllfZ5/fp1bNu2DW+//TYOHDiAoKAgODo6NvDsEVNFLXtidP766y+EhoYiMDAQ27Ztw9WrVwGU\n1dejoqLwzTff8PV8xhgSEhKwatUq7N27t9ohbI8cOYJx48YBAF5++WWthqtmjD0zcFn5sSIjI/lh\nlmUymdbPq+o+J02axA+d8O233xrNVdnEMFGyJ0bn9ddfx/r163Hp0iUsXryYL+N89dVXWLZsGVJT\nU/H8888jKysLHMfB29sbeXl5+Pvvv2vcp64Xktf0WwDHcdXuy8zMDKWlpQDKSjIqlarOY7i5ucHF\nxQUJCQk4ffo01fJJg1CyJ0YnLy8Prq6uUKvV2Lp1K3//rVu3EBISgpiYGDg5OfEjqXp4eGDXrl2Y\nMGEC/y2gol69eiEuLg5A2QiC2dnZdcZQXULnOA4vvvgidu7cydfvy/elUChw9uxZAGUlIbVa/cz2\ntra2/KBi5aZMmYJx48YhMjLS6MbNIYaFkj0xOkuWLEHXrl3xwgsvwMfHh0+C8+bNQ2BgIAICAtCz\nZ0907NgRQFkSbt++PbZt24aRI0ciOTm50v4WL16Mw4cPw9/fHz///DM8PDz4xyom2Kq3q3vM19cX\nCxcuRO/evREUFIQ5c+YAAKZOnYpDhw4hKCgIJ0+erPQDbfm2ffr0wdWrVxEcHIwff/wRADB48GDk\n5+dTCYc0GA2ERogBO3PmDObMmYNDhw4JHQoxctQbhxAD9cknn2DDhg18iYmQhqCWPSGEmACq2RNC\niAmgZE8IISaAkj0hhJgASvaEEGICKNkTQogJoGRPCCEm4P8DzlA27SXc2j8AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# residuals from guess slope\n", "guessRes = Y - guessPts" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we construct the design matrix $X$." ] }, { "cell_type": "code", "collapsed": true, "input": [ "X = np.column_stack([ourcov, ones(nimgs)])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We would like to display it in a useful way" ] }, { "cell_type": "code", "collapsed": true, "input": [ "def scale_design_mtx(X):\n", " \"\"\"utility to scale the design matrix for display\n", "\n", " This scales the columns to their own range so we can see the variations \n", " across the column for all the columns, regardless of the scaling of the \n", " column.\n", " \"\"\"\n", " mi, ma = X.min(axis=0), X.max(axis=0)\n", " col_neq = (ma - mi) > 1.e-8\n", " Xs = np.ones_like(X)\n", " mi = mi[col_neq]\n", " ma = ma[col_neq]\n", " Xs[:,col_neq] = (X[:,col_neq] - mi)/(ma - mi)\n", " return Xs" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": true, "input": [ "def show_design(X, design_title):\n", " \"\"\" Show the design matrix nicely \"\"\"\n", " figure()\n", " plt.gray()\n", " imshow(scale_design_mtx(X), interpolation='nearest')\n", " title(design_title)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# display using our fancy function\n", "show_design(X, 'Design matrix for the first analysis')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAEICAYAAADftSEPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGNBJREFUeJzt3X1UVHX+B/D3RRgDYYZBZVAYxAVceUoJFUMJ1NCjheJT\nqSmUmnrUs2Ke1mcz203Zyt08tiuYsj6lPRxPmrau+TBtYcoimba2gg+sgGYqoCIEK35+f3SYn8iA\npAPfaX2//hpm7v1+P3Pnvud7597LvZqICIioxTmpLoDoYcXwESnC8BEpwvARKcLwESnC8BEpojR8\n4eHh+Mc//qGyBLvZsmULBg0adF/zZmVlITg4GB4eHti5c6edK/tJQEAA9u/fb5e2auvV6/XYsWMH\nhgwZgo0bN9ql7ZYUHx+PdevWPVAbD7QOyz106tRJXF1dxcPDQzw9PSUmJkbWrFkjt2/fvtes/xPO\nnTsnmqZJTU1Ns/XRv39/WbVqld3aS0lJkUWLFtV5LiAgQPbv32+X9u1Zr6ZpcubMGbu09XPFx8fL\nunXrlPQtInLPkU/TNOzatQvXr1/H+fPnMW/ePKSlpWHSpEn3l/ZfKGnkXISampoHavv8+fMIDQ29\nr3kftO/78XPqbUp9jS3b/2n3Sqetb8zs7GxxcnKSb7/9VkREfvzxR5kzZ474+/uLyWSSadOmSWVl\npYiIXL58WZ566inx9PQULy8viY2NtbbTqVMn2bdvn4iIVFRUSHJyshiNRgkJCZG0tDTx8/OrM+2b\nb74pjz76qBgMBnn22Wflxx9/tFlzZmamxMTEyOzZs8XT01MCAwMlKytL1q9fL2azWby9vWXDhg3W\n6Xft2iXdu3cXvV4vZrNZli5dan3NbDaLpmni7u4uHh4e8tVXX9Vpv23btrJo0SLJzMyUvn37iohI\nVlaWtGvXTgoLC0VE5NixY2I0GuXUqVP1av3Vr34lTk5O1q2L6upqKS4ulsTERPHy8pKgoCBZu3at\ndfpXXnlFRo4cKePHjxe9Xl/vmzs9PV1cXFxEp9OJu7u7DB061Po5Nrb8PvnkE+nWrZt16+b48eM2\nl+3d9VZVVUlcXJy8++679ZZ927ZtZfHixZKfny9PPPGEGAwGadeunYwZM0ZERGJjY0XTNGnTpo24\nu7vLBx98UK+/06dPS79+/aRt27bSrl07ee6556SsrMz6emPrRWlpqTz11FPSvn17MRqN8vTTT0tR\nUZF13tqRr6qqSoxGo5w4ccL62qVLl8TNzU2uXLlyz3W4Nh9HjhyRqKgo0ev1YjKZ5KWXXrK5DGvd\nV/hERPz9/WXNmjUiIpKamirDhg2T0tJSuXHjhiQmJsr8+fNFRGTevHkybdo0uXXrlty6dUu+/PJL\nm23PnTtX4uPjpaysTIqKiiQiIkLMZnOdaaOjo+XixYtSUlIiISEh1v7vlpmZKc7OzvLXv/5Vbt++\nLYsWLRJfX1+ZOXOmVFdXy969e8XDw0Nu3rwpIiIWi8X6RXL8+HExmUzy8ccfi4hIQUFBvc3O2vZX\nr14tNTU1UllZWSd8IiILFy6U/v37S0VFhYSHh8s777zT5GUcGxsrM2bMkKqqKjl27Ji0b99eDhw4\nICI/hc/FxUV27NghImL9krvT888/L4sXL67zXKdOnRpcfrm5ueLt7S3Z2dly+/Zt2bBhgwQEBEhV\nVVWT6r1z883WshkzZoy8/vrrIiJSVVUlWVlZ1nnvtdl5+vRp2bdvn1RXV8vly5fliSeekNTU1Dq1\nNPS+rl69Ktu3b5fKykq5ceOGjB49WpKSkmzWPX36dJk7d671tT/96U/WL66mrsO9e/eWzZs3i4jI\nzZs35fDhww2+L5EmbHY2pGPHjigpKYGIYO3atVi5ciU8PT3h7u6O+fPnY9u2bQAAnU6HixcvoqCg\nAK1atUKfPn1stvfhhx9iwYIFMBgM8PX1xaxZs+ptjvzmN7+Bj48PjEYjEhMTcezYsQbr69y5M1JS\nUqBpGp555hlcuHABS5YsgYuLCxISEqDT6XD69GkAQFxcHMLCwgAAERERGDNmDD7//PPaLYMG3/+M\nGTPg5OSERx55pN7rS5cuxbVr19CrVy+YzWZMnz79Hkv0J4WFhTh06BDS0tKg0+nQrVs3TJ48uc4O\njZiYGAwdOhQAbPZtq25N0xpcfhkZGZg6dSp69uwJTdOQnJyM1q1b4/Dhw02q+W53LxudToeCggIU\nFxdDp9MhJiamyW0FBgZiwIABcHFxQbt27TB79mzrZ1Oroffl5eWF4cOH45FHHoG7uzsWLFhQb95a\nycnJ2Lp1q/XvTZs2YcKECQCavg7rdDrk5+fjypUrcHNzQ3R0dKPv7b7DV1RUBC8vL1y5cgUVFRWI\nioqC0WiE0WjE4MGDceXKFQDAyy+/jKCgIAwcOBCBgYFIS0uz2d6FCxdgNputf/v5+dWbxsfHx/rY\n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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to know the degrees of freedom. In this simple case, we have two *effects* (the intercept and the slope) and 12 observations, leaving us with 10 degrees of freedom. In general, the number of *effects* we have is given by the number of independent columns in the design matrix $X$ above. This is the *column rank* of $X$. This is given by the numpy function ``numpy.linalg.matrix_rank`` for numpy >= 1.5, but in case you have an earlier version of numpy, a crude calculation of the matrix rank is a couple of lines of code:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "def matrix_rank(X):\n", " U, S, V = np.linalg.svd(X)\n", " # Number of singular values above an arbitrary small threshold\n", " return np.sum(S > 1e-5)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can calculate the degrees of freedom in a more general way:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "df = nimgs - matrix_rank(X)\n", "# mean SoS for guess slope\n", "guessRSS = (guessRes**2).sum() / df" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analysis giving the least squares fit is very simple: we matrix multiply the pseudoinverse of $X$ (denoted $X^+$) by the data, to get the estimation of the model parameters, the $\\hat\\beta$ 's : $\\hat\\beta = X^+ Y$ " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# the analysis, giving slope and constant\n", "B = dot(pinv(X), Y)\n", "print B" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0.63928135 54.39383796]\n" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot data with new least squares line\n", "plot(ourcov, Y, 'x')\n", "bound = np.array([minx, maxx])\n", "plot(bound, bound*B[0]+B[1], 'r')\n", "axis(axs)\n", "xlabel('Task difficulty')\n", "ylabel('PS voxel value')\n", "title('The least squares linear relationship');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEXCAYAAABMCOQqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xtcjvf/B/DXrTKHTlKIUDlVijIy0sQcNsM05znksLQD\nm/G1MTPFmNnMvmyMsYwxscN3fk5rG2GGEHMIORQhJEVHHe7P74+P7hWd7rrruu/u1/Px6KH7dF3v\n7vLq6nN9rs9bJYQQICKiaq2G0gUQEVHlY9gTERkBhj0RkRFg2BMRGQGGPRGREWDYExEZAYa9HgoO\nDsaYMWN0sq1x48Zhzpw5OtkWSY6OjtizZw8AYOHChQgMDFS4ovKp6M+GhYUF4uLidFfQY9atWwdf\nX99iH+/Xrx82bNhQafuvbkyVLsAYmZubQ6VSAQDS09NRq1YtmJiYAABWrVqleUwXVCqVTrdXlBo1\nauDSpUtwdnau1P3oi4Lv5/vvv69gJRWjzc+Gn58fxowZg4kTJ2ruS01NrazSymTnzp2K7t/Q8Mhe\nAWlpaUhNTUVqaiqaN2+O7du3a26/8sor0PV1blVx3Zy+X5uXm5urdAk6pVarS3xcCFGm70lZv2+V\nfcBAlY9hr4dUKhWys7MREBAAS0tLuLu74/jx45rHb968icGDB6NBgwZwdnbG8uXLy7zt7du3w9PT\nE/Xq1YOPjw9Onz6teWzRokVo2bIlLC0t0bZtW/zvf//TPHbp0iV0794d1tbWsLOzw8iRIwEAzz77\nLACgffv2sLCwwNatW5/Y5+OvHTFihOax33//HS4uLrC2tsaUKVPQvXt3rF27FsCTw1lxcXGoUaOG\nJuhCQ0Ph5uYGS0tLtGjRAqtXr9Y8NyIiAg4ODli8eDHs7e0xceJECCE0X6OtrS2GDx+O5ORkAEBW\nVhZGjx4NW1tb1KtXD97e3rhz506p72fBGvPrW79+PZo3bw47OzssXLhQ89yS9g8AQ4cOhb29Payt\nrdG9e3dER0drHhs3bhxef/119OvXD+bm5oiIiHiiFj8/P3zwwQfw8fFB3bp1ERsbi/Pnz6N3796o\nX78+XFxcivz+AEBycjL69++PBg0awMbGBgMGDMCNGzcAALNnz8aBAwcwefJkWFhY4K233gIg/6K7\ncuUKAOD+/fsYO3YsGjRoAEdHRyxYsEDzi2TdunXo1q0bZsyYARsbGzg7O2P37t2afa9btw4tWrSA\npaUlnJ2dsWnTpkK1Ffc6Pz8/zc/KunXr4OPjgylTpsDa2hqurq6aoTZ6RJCiHB0dxZ9//lnovrlz\n54patWqJXbt2CbVaLWbNmiWeeeYZIYQQeXl5okOHDmL+/PkiJydHXLlyRTg7O4vffvutyO2PGzdO\nfPDBB0IIIaKiokSDBg1EZGSkUKvV4rvvvhOOjo4iOztbCCHE1q1bRUJCghBCiLCwMFG3bl1x69Yt\nIYQQI0aMEAsXLhRCCPHw4UNx8OBBzT5UKpW4fPlysV9jca9NTEwUFhYW4qeffhK5ubli6dKlwtTU\nVKxdu1YIIURwcLAYPXq0ZjuxsbFCpVKJvLw8IYQQO3bsEFeuXBFCCLFv3z5Rp04dERUVJYQQYu/e\nvcLU1FTMnDlTZGdni8zMTPHFF1+ILl26iBs3bojs7GwRFBQkRo4cKYQQ4uuvvxYDBgwQmZmZQq1W\ni6ioKPHgwYNSv2cFa8yvb9KkSSIrK0v8888/4qmnnhLnz58XQogS9y+EEKGhoSItLU1kZ2eLqVOn\nCk9PT81jAQEBwsrKSvz9999CCCGysrKeqKt79+6iefPmIjo6WuTl5YmUlBTh4OAg1q1bJ/Ly8sSJ\nEyeEra2tiI6OFkIU/tlISkoSP//8s8jMzBSpqali6NChYtCgQZpt+/n5ab4v+Qp+38eMGSMGDRok\n0tLSRFxcnGjdurXm+aGhocLMzEysWbNGqNVqsXLlStG4cWMhhBBpaWnC0tJSxMTECCGEuHXrljh7\n9mypr3u8ptDQUGFqaiq++OILkZubK8LCwoSVlZW4d+9ekd9DY8SwV1hxYd+7d2/N7bNnz4ratWsL\nIYQ4fPiwaNasWaHnL1y4UIwfP77I7Y8bN07MmTNHCCHEa6+9pvk8X5s2bcS+ffuKfK2np6fYtm2b\nEEKIsWPHikmTJonr168/8bzSwr6413733XeiS5cuhe5zcHDQ/AeeO3duiWH/uEGDBon//ve/QggZ\n9jVr1hQPHz7UPO7q6lrovb5586YwMzMTubm54ttvvxVdu3YVp06dKvbryFfwe1awxvz6bty4oXmu\nt7e3CAsLE0II4eLiUuT+i/p6kpOThUql0vzCCQgIEAEBASXW5efnJ+bOnau5vXnzZuHr61voOZMm\nTRIhISFCiMJh/7gTJ06IevXqFdr2mjVrCj0n//uem5sratasKc6dO6d5bNWqVcLPz08IIYO4ZcuW\nmsfS09OFSqUSt2/fFmlpacLa2lr89NNPIiMjo9D2S3pdfk0Fw77gLwIh5Hu/YcOGIr8+Y8RhHD3V\nsGFDzed16tRBVlYW1Go1rl69ips3b6JevXqaj48//rhMQw5Xr17FkiVLCr32+vXrSEhIAACsX78e\nXl5emsfOnDmDu3fvAgAWL14MIQS8vb3h7u6O0NDQMn8txb325s2bcHBwKPTcpk2blnm7u3btwjPP\nPIP69eujXr162LlzJ5KSkjSP29nZoWbNmprbcXFx8Pf313x9bm5uMDU1xZ07dzBmzBj07dsXI0aM\nQJMmTfDee++Ve5y/UaNGms/r1KmDtLQ0APL9L2r/t2/fRl5eHmbOnImWLVvCysoKTk5OAKB5/1Uq\nVZnem4LPuXr1Ko4cOVLo+71p0ybcvn37iddlZGQgKCgIjo6OsLKyQvfu3XH//v1CY/rFjdvfvXsX\nOTk5aN68uea+Zs2aaYaBinpPAHnuqm7duggLC8PXX3+Nxo0bo3///rhw4UKprytKkyZNCt1u3rw5\nbt68WeRzjRHDXg+VdDKsadOmcHJyQnJysubjwYMH2L59e6nbbdasGWbPnl3otWlpaRg+fDiuXr2K\nSZMm4auvvsK9e/eQnJwMd3d3zX/2hg0bYvXq1bhx4wZWrVqFN954QzNeW5qiXnv58mU0btwY8fHx\nmucJIQrdNjc3R0ZGhub2rVu3NJ8/fPgQgwcPxrvvvos7d+4gOTkZ/fr1KzGcmjVrht27dxf6+jMy\nMmBvbw9TU1N8+OGHOHv2LP7++29s374d69evL9PXV1Yl7X/Tpk3Ytm0b/vzzT9y/fx+xsbGa90Qb\nBb/mZs2aoXv37oX2l5qaiq+++uqJ5y9ZsgQxMTGIjIzE/fv3sW/fvkIneUv6mbS1tYWZmVmhaZjX\nrl174hd5cfr06YPw8HDcunULLi4u5Z7KWvCXCyB/2T3+C8CYMez1UEn/wb29vWFhYYHFixcjMzMT\neXl5OHPmDI4dO1bstvK3FxgYiK+//hqRkZEQQiA9PR07duxAWloa0tPToVKpYGtrC7VajdDQUJw5\nc0azna1bt+L69esAAGtra6hUKtSoIX98GjZsiMuXLxdbc1GvNTExQb9+/XD27Fn88ssvyM3NxbJl\nywoFuqenJ/bv34/4+Hjcv38fH3/8seax7OxsZGdnw9bWFjVq1MCuXbsQHh5e4vv62muv4f3338e1\na9cAAImJidi2bRsAeUL39OnTyMvLg4WFBczMzDTTYXWlpP2npaXhqaeego2NDdLT05+Y0lnW0C/4\nvP79+yMmJgbff/89cnJykJOTg6NHj+L8+fOa5+Y/Py0tDbVr14aVlRXu3buHkJCQQtst6XtsYmKC\nYcOGYfbs2UhLS8PVq1exdOlSjB49utR679y5g19//RXp6ekwMzND3bp1y/2+37lzB8uWLUNOTg62\nbt2KCxcuoF+/fuXaVnXEsNdDRc1/zr9tYmKC7du34+TJk3B2doadnR0mTZqEBw8elLqtp59+Gt98\n8w0mT54MGxsbtGrVSnP06ubmhunTp6NLly5o1KgRzpw5g27dumm2c+zYMTzzzDOwsLDASy+9hGXL\nlsHR0RGAnJESEBCAevXq4ccff3yihuJea2tri61bt2LmzJmwtbXFpUuX4OPjowmgXr16Yfjw4WjX\nrh06deqEAQMGaL4WCwsLLFu2DMOGDYONjQ1++OEHvPTSS0W+Z/nefvttDBw4EH369IGlpSW6dOmC\nyMhIAPKvhqFDh8LKygpubm6aeeXafq9KOgIuaf9jx45F8+bN0aRJE7i7u6NLly5PbLcs0x8LPsfc\n3Bzh4eHYvHkzmjRpAnt7e8yaNQvZ2dlPbHPq1KnIzMyEra0tunbtihdeeKHQtt5++238+OOPsLGx\nwdSpU5/Y7/Lly1G3bl04OzvD19cXo0aNwvjx44utPf+2Wq3G0qVL0aRJE9SvXx8HDhzAypUrS31d\nUTp37oyLFy/Czs4Oc+bMwY8//oh69eqV+p4ZC5XQ9u9EokrUo0cPjBkzBhMmTFC6FDIg69atw9q1\na3HgwAGlS9FbPLInvcPjDyLdY9iT3uHVmqStqlgWxNBxGIeIyAjo1UJo/M1MRKS9shyz690wTv50\nMEP7mDt3ruI1sH7l62D9hvdhyLULUfaBGb0LeyIi0j2GPRGREWDY64ifn5/SJVQI61cW61eOIdeu\nDb2ajaNSqbQagyIiMnZlzU0e2RMRGQGGPRGREWDYExEZAYY9EZERYNgTERkBhj0RkRFg2BMRGQGG\nPRGREWDYExEZAYY9EZERYNgTERkBhj0RkRFg2BMRGQGGPRGREWDYExEZAYY9EZERYNgTERkBhj0R\nkRFg2BMRGQGGPRGREWDYExEZAYY9EZERYNgTERkB08rYqKOjIywtLWFiYgIzMzNERkbin3/+wWuv\nvYb09HQ4Ojpi48aNsLCwqIzdExHRY1RCCKHrjTo5OeH48eOwsbHR3NepUyd8/vnn8PX1RWhoKGJj\nYzFv3rzCxahUqIRyiIiqrbLmZqUc2QN4YucXL16Er68vAKBXr154/vnnnwh7AAgODtZ87ufnBz8/\nv8oqkYjI4ERERCAiIkLr11XKkb2zszOsrKxgYmKCoKAgBAYGwsfHB++++y5eeuklfP755wgODsaD\nBw8KF8MjeyIirZQ1Nysl7BMSEmBvb4/ExET07t0by5cvR4MGDfDWW28hKSkJAwcOxLJly3D37t1y\nFU1ERJKiYV9QSEgIzM3NMX36dM19MTExGDNmDI4cOVK4GIY9EZFWypqbOp96mZGRgdTUVABAeno6\nwsPD4eHhgcTERACAWq3GRx99hNdff13XuyYiomLoPOxv374NX19feHp6onPnzujfvz/69OmDTZs2\noU2bNnB1dYWDgwPGjRun610TEVExKn0YRxscxiEi0sKZM1B5eCgzjENERJXswgVg5EigV68yv4Rh\nT0RkKC5fBgICAF9foH174NKlMr+UYU9EpO+uXgUCA4HOnQFnZ+DiRWDmTMDcvMybYNgTEemrmzeB\nN98EOnQAGjQAYmKAuXMBKyutN8WwJyKjs2MHkJJS+L6UFHm/XrhzB5g2DfDwAOrUAc6fBxYsAAqs\nN6Ythj0RGR0fH2D27H8DPyVF3vbxUbYuJCXJ4RlXVyA3FzhzBvj0U8DOrsKbZtgTkdGxtpYHyrNn\nA3Fx8t8FC+T9ikhJAT78EGjTRn5+8iSwbBlgb6+zXXCePREZrbg4wMkJiI0FHB0VKCA1VYb6F18A\nAwYAc+bIgrSg2HIJRESGICVFjpDExsp/Hx/Dr1QZGXKnLVsC0dHAwYPAt99qHfTaYNgTkdHJH6Nf\nsEAe0ecP6VR64GdlAf/9rwz5yEhgzx5g40agdetK3jGHcYjICO3YIU/GFhyjT0mRB9gvvlgJO8zO\nlkfuCxbIaZQhIYCnp042rTdLHGuDYU9E1UpuLrB+PTB/PuDiAsybB3TqpNNdKN6WkIjIaOXlAT/8\nII/gmzYFvv9e8XmdDHsiIl1Rq4GffpJXudrYAKtXAz16KF0VAIY9EVHFCQFs2ybnyj/1FLB0KdCn\nD6BSKV2ZBsOeiKi8hAB275Yhn5MDfPQR0L+/XoV8PoY9EZG2hJDTJufMAe7fl2PzL78M1NDf2ewM\neyIibRw4IEP+5k0gOBgYPhwwMVG6qlIx7ImIyiIyUob8xYty2Gb0aMDUcCJUf//mICLSBydOyHVr\nBg+WH+fPA+PGGVTQAwx7IqKinTkjw/3FF+XMmosXgUmTgJo1la6sXBj2REQFXbgAvPKKbObdtavs\n8zplClCrltKVVQjDnogIAK5ckcMz3brJDlGXLgHTp8tOUdUAw56IjE6htoTXrgGTJkHdyRsxOY4y\n5GfN0qqZtyFg2BOR0fHxARZPvYmHgZMBLy9kmdvivUExaPBVcLmaeRsChj0RGZc7d2A9fzo+2uaB\nA8dq4dpv5zD94ULMXmKjXFvCKmBYc4eIiMorKQn47DO5ONkrr6DGmdNomd0YzR+1JazOQQ/wyJ6I\nqrv79+UqlG3aAPfuyXnzy5cjpU5j5doSKoBhT0TVU1oasHAh0KqVPAkbGQmsWgU0a6ZcW0IFVUqn\nKkdHR1haWsLExARmZmaIjIxEZGQkJk+ejJycHJiammLFihXo9FjHFnaqIqIKy8gAVqyQh+vPPffv\nUX0BVd6WsBIp2pbQyckJx48fh42NjeY+Pz8/zJo1C3379sWuXbuwePFi7N27t1xFExE9IStLjscv\nWiQvhgoOBtzdla6q0inelvDxndvb2+P+/fsAgJSUFDRp0qSydk1ExiQ7GwgNlWvJe3nJw3YvL6Wr\n0juVcmTv7OwMKysrmJiYICgoCIGBgbh69Sq6desGlUoFtVqNQ4cOoWnTpoWLUakwd+5czW0/Pz/4\n+fnpujwiqg5yc4ENG2QT79atZVNvb2+lq6p0ERERiIiI0NwOCQlRbhgnISEB9vb2SExMRO/evbF8\n+XKEhITgzTffhL+/P7Zu3YrVq1fj999/L1wMh3GIqDR5ecDmzbJhSJMmMuS7dVO6KsUoOmZfUEhI\nCMzNzRESEoIHDx4AkEM81tbWmmEdTTEMeyIqjloN/PyzPOFqbS1DvmdPpatSXFlzU+dTLzMyMpCa\nmgoASE9PR3h4ONzd3dGyZUvs27cPALBnzx60bt1a17smoipUaH2ZR1JS5P06ld/Mu0MH4JNPgCVL\ngL/+YtBrSecnaG/fvg1/f38AQG5uLkaNGoW+ffuifv36ePPNN/Hw4UPUrl0bq1ev1vWuiagK+fj8\nO1fd2hqF5q7rhBDAb7/JrlAPH8oj+QED9LKZtyGo9GEcbXAYh8iw5Af8jBlyWnt+8FdYfjPv5GQ5\nNj94sF4381aS3ozZa4NhT2R44uIAp0fryzg6VnBjf/0lQ/76dTlPfsQIg2jmrSSdjdmr1Wps2LAB\n8+bNAwBcu3YNkZGRFa+QiAxeSgp0s75MZCTw/PPAmDHA2LHAuXPAqFEMeh0qNezfeOMNHDp0CJs2\nbQIAmJub44033qj0wohIv+lkfZmTJ4GBA+UwzaBBsiXg+PEG18zbEJQa9keOHMGKFStQu3ZtAICN\njQ1ycnIqvTAi0m8HDxYeo7e2lrcPHizDi8+eBYYMAfr1k71eL14EXnvNYJt5G4JSw75mzZrIy8vT\n3E5MTEQNnighMnovvvjkyVhr61IWEouJkcMzPXsCzzwjWwC+9ZbBN/M2BKWm9pQpU+Dv7487d+7g\n/fffh4+PD2bNmlUVtRFRdREbK4dnfHwANzcZ8v/5T7Vp5m0IyjQb59y5c/jzzz8BAM899xxcXV0r\npxjOxiGqXuLj5QJlP/0EvPkm8M471b8lVBXT2dTLa9euAfh3FUvVowsamjVrVtEanyyGYU9GpDqt\nqf6EhATZOGTTJmDSJHkUX7++0lVVSzpb4rhfv36agM/KykJsbCzatGmDs2fPVrxKIiNW6VegKiEx\nUS5pEBoKjBsnp1A2aKB0VYQyhP2ZM2cK3Y6KisJXX31VaQURGYv82SuVcgVqVbt3TzbzXrUKGDkS\nOH0aaNxY6aqogHJdQevu7v7ELwGdFMNhHDJCOr0Ctardvw8sXQp8+SXw8svABx8AlTDES8XT2TDO\nkiVLNJ+r1WpERUWxyxSRjjx+BarBHNmnpQHLl8ug79dPXgHr7Kx0VVSCUqdepqamIi0tDWlpacjO\nzkb//v3x66+/VkVtRNWaTq5ArWoZGXKJ4ZYtgVOngP37gXXrGPQGgAuhESnEoGbjPHwom3l//DHQ\npYtcidIImnkbggpPvRwwYECJG9+2bVv5qythuwx7Ij2Sk/NvM+/27WW/Vzbz1isVHrOfPn26Tgsi\nIgOSmwt8/70M95YtgS1b5PIGZLA4jENE/8rLA8LC5DCNvb3sDuXrq3RVVAKdzcaJiYnB+++/j7Nn\nzyIrK0uz8StXrlS8SiLSD2o18MsvsgWglRWwYoVcrIwtAKuNUsN+/PjxCAkJwbRp07B7926EhoYW\nWgWTiAyYEMD27TLkTUzkhVHPP8+Qr4ZKHcbp0KEDoqKi4OHhgdOnTxe6T+fFcBiHqGoIAYSHy5DP\nzJRj8y+9xJA3QDobxqlVqxby8vLQsmVLfPnll2jcuDHS09N1UiQRKWDvXtnnNSlJjs0PGcJm3kag\n1CP7o0ePwsXFBSkpKZgzZw4ePHiAd999F89Uwpl5HtkTVaKDB2XIX7smm3mPHMker9WAzpY4joqK\nQocOHXRWWInFMOyJdO/oUTlcc+6cDPuxYwEzM6WrIh0pa26W+rfbtGnT4OLigjlz5lTK4mdEVEn+\n+UeOw/v7y6beMTHAxIkMeiNVathHRERg7969sLW1RVBQEDw8PDB//vyqqI2oWtux48l1cFJS5P0V\nEh0NDB0qZ9X07ClbAL7+Opt5GzmtLqo6ffo0PvnkE4SFhSEnJ0f3xXAYh4xIwYXQHm9eUq6VLy9e\nlCdcf/9ddoZ64w2gbl2d1036RWfDONHR0QgODoa7uzsmT56Mrl274saNGzopksiYFWxeEhdXgaCP\njQUmTAC6dgVcXOSR/IwZDHoqpNQj+y5dumD48OEYNmwYGldy5xke2ZMxKnfzkvh4+dth61bZzHva\nNANZDJ90SWfz7A8dOqSTgojoSeVqXpKQIJca/v572cw7JobNvKlUlbIQmqOjIywtLWFiYgIzMzNE\nRkZi+PDhiImJAQCkpKTA2toaJ06cKFwMj+zJiGg9Zp+YCCxeDHz7rZw+OXMm0LBhlddN+kVn8+zL\nw8nJCcePH4eNjU2Rj//nP/+BtbU1Pvjgg8LFMOzJiJS5ecm9e7I71NdfAyNGAO+/D7A1KD2is2Gc\n8ipu50IIbNmyBXv37q2sXRMZhKK6UVlbF7j/wQPZ43X5cjlXPioKaN68Smuk6qPYsK9IpyqVSoVe\nvXrBxMQEQUFBCAwM1Dx24MABNGzYEC1atCjytcHBwZrP/fz84OfnV0L5RNVQWhrw5ZfA55/LufKH\nD8sGIkSQ1z5FRERo/bpih3FK2phKpUL37t2LfTwhIQH29vZITExE7969sXz5cvg+aoDw+uuvo3Xr\n1njnnXeK3C6HcchoZWYCK1fKcXk/P7l+jYuL0lUVy6B66FZjOh2zz8jIQHx8PNq0aaN1ISEhITA3\nN8f06dORm5sLBwcHREVFFTmNk2FPRunhQ+Cbb+QMm86d5YVRHh5KV1UqnV8URuWis4uqtm3bBi8v\nL/Tt2xcAcOLECQwcOLDY52dkZCA1NRUAkJ6ejvDwcHg8+sH9448/4OrqWunz9YkMQk6ODPlWrYDd\nu4H/+z/g558NIugBHV4URlWi1BO0wcHBOHLkCHr06AEA8PLyKrEl4e3bt+Hv7w8AyM3NxahRo9Cn\nTx8AQFhYGEaOHKmLuokMV24usHGjbBji7Cx7vnbponRV5WJtLS/Wzb8ojEGvv0oNezMzM1g/9h2s\nUUKjAycnJ5w8ebLIx0JDQ7Usj6gaUatlsAcHA40aAaGhwLPPKl1VhZTrojBSRKnDOG3btsXGjRuR\nm5uLixcvYsqUKejatWtV1EZUPQghh2fatQOWLQO++gqIiKgWQZ8/dOPo+O+QzuMreZJ+KPUEbXp6\nOhYsWIDw8HAAQN++fTFnzhzUqlVL98XwBC1VJ0LIKSsffih7u86bB/TrV236vHI2jn7Q2Wyc6Oho\nuLm5FbovIiKiUua/M+ypWhBCLjP84YdAeroM+UGDqk3Ik37R2WycYcOG4ZNPPoEQAhkZGZgyZQpm\nzpypkyKJqp384Zm33wbeeUd2i/L3Z9CT4koN+yNHjiA+Ph5dunSBt7c37O3t8ffff1dFbUSG4++/\ngeeek23/Jk0CzpwBhg8HSpjMQFSVSv1JNDU1Re3atZGZmYmsrCw4OzuXOBuHyKgcOybH4UeOlB/n\nzwNjxgAmJkpXRlRIqant7e2NWrVq4dixYzhw4AA2bdqEoUOHVkVtRPrr1Ck5Dj9oENC/v1xT/tVX\n2cyb9FapJ2iPHj2KTp06Fbpv/fr1GDt2rO6L4Qla0nfnzgFz5wL798v15IOCgNq1la6KjJjOZuNk\nZ2dj5cqV2L9/PwC5EmVQUBBqVkKneoY96a1Ll+SaNb/9BkyfDkyezB6vpBd0FvYTJ05Ebm4uAgIC\nIITAhg0bYGpqijVr1uisWE0xDHvSN3FxwPz5wK+/yhk2b78NWFoqXRWRhs6alxw9ehSnTp3S3H7u\nuefQrl27ilVHpO+uX5eXhG7ZArzxBnDxIlCvntJVEZVbmWbjXLp0SXP78uXLMDWttAZXRMq6dQuY\nOlUubWBhAVy4II/sGfRk4EpN7U8//RQ9e/aEk5MTACAuLo4LmlH1c/eubBqydq2cOhkdLRcrI6om\nytS8JCsrCxcuXAAAtGnTplLWxQE4Zk8KSE6WzbxXrpQXQb3/PuDgoHRVRGWms+US2rVrh88//xzm\n5uZo3759pQU9UZV68EAOz7RqJYdujh8HVqxg0FO1VaZOVSYmJhg2bBg6duyIzz77DNeuXauK2oh0\nLz0d+OQT2cA7JkY2816zRq7RS1SNlWkYJ9/Fixcxf/58bNy4EXl5ebovhsM4VFkyM4Gvv5bj8s8+\nKxuIuLqEZULvAAAV4ElEQVQqXRVRhels6iUgT8qGhYVhy5YtMDExweLFiytcIFGVePhQHrkvXAh4\ne8uLojh1mIxQqWHfuXNnZGdnY9iwYdi6dSucnZ2roi6iisnJAb77To7Lt20rL4rq2FHpqogUU+ow\nzvnz5+Hi4lI1xXAYhyoqL+/fZt6OjjLsDbSZN1FZ6Gy5hKrEsKdyU6vl1a7BwUCDBjLku3dXuiqi\nSqfTMXsivSUE8L//yRaAderIht69e7MzFNFjGPZkmIQAdu6UIS8E8PHHsss1Q56oSMXOs4+MjERC\nQoLm9nfffYeBAwfirbfewr1796qkOKIn5Dfz7tJFric/e7a8IKp/fwY9UQmKDfugoCA89dRTAID9\n+/dj5syZCAgIgKWlJSZNmlRlBRJp7Nsnx+GnTJGLlf3zD/Dyywx5ojIodhhHrVbDxsYGABAWFoag\noCAMHjwYgwcPRvv27ausQCIcOgTMmQPExsphm1GjAK68SqSVYo/s8/LykJOTAwD4448/0KNHD81j\nubm5lV8Z0fHjchx+xAi5SNn580BAAIOeqByK/V8zcuRIdO/eHba2tqhTpw58fX0ByCUTrK2tq6xA\nMkKnTsk+r5GRchXKn38GHg0pElH5lDjP/tChQ7h16xb69OmDuo/6bcbExCAtLQ0dOnTQfTGcZ2/c\nzp2T8+T37QPefRd4/XU28yYqRYXn2WdmZuLw4cO4dOkS7ty5g4kTJ8LU1BStW7fWaaFEuHRJXvG6\nezcwbZpsIGJurnRVRNVKsWP2AQEBOH78ONq1a4edO3di+vTpZd6oo6Mj2rVrBy8vL3h7e2vuX758\nOVxdXeHu7o733nuvYpWT4bt6FXj1VeCZZ+SSw5cuyemUDHoinSv2yP7cuXM4ffo0AGDixIno1KlT\nmTeqUqkQERGhmc0DAHv37sW2bdtw6tQpmJmZITExsQJlk0G7cUM28w4Lk0M1bOZNVOmKDfuCTcXL\n02D88TGklStXYtasWTAzMwMA2NnZFfm64OBgzed+fn7w8/PTet+kp27fBhYtkqtRTpwoZ9cU83NA\nREWLiIhARESE1q8r9gStiYkJ6tSpo7mdmZmJ2o9OlqlUKjx48KDYjTo7O8PKygomJiYICgpCYGAg\nvLy88NJLL2H37t2oVasWPvvsM3R8bMlZnqCtpu7eBT79VK4rP3o0MGuWTpp579gB+PgABSeHpaQA\nBw/KGZtExqDCJ2gr0onq4MGDsLe3R2JiInr37g0XFxfk5uYiOTkZhw8fxtGjRzFs2DBcuXKl3Psg\nA5CSIpt5r1gBDBsmr3jVYY9XHx+5WsKCBTLwU1L+vU1EhZXag7Y87O3tAcihGn9/f0RGRsLBwQEv\nv/wyAKBTp06oUaMGkpKSKmP3pLTUVOCjj+RJ1xs3gGPHgJUrdd7M29paBvvs2UBcXOHgJ6LCdB72\nGRkZSE1NBQCkp6cjPDwcHh4eGDRoEPbs2QNAztXPzs5G/fr1db17UlJ6uuzx2rKlHI8/dAj49lvA\nyalSdrdjh/x3xgy5ixkzCt9PRP/S+XXnt2/fhr+/PwC5rMKoUaPQp08f5OTkYMKECfDw8EDNmjWx\nfv16Xe+alJKVJZt5f/IJ4OsL7N0LuLlV+m59fID//Ed+Hhsr/5gAgM8+q/RdExkcnYe9k5MTTp48\n+cT9ZmZm2LBhg653R0p6+FBeALVwIfD008CuXYCnp9JVEVERuKIUaS8nB1i/Xrb+c3UFfvkF0OI6\nDF05eFAexaekyGGc2Fg5Xs/ZOERPqpQTtFRN5eUBGzbIgN+0SX7s2qVI0AP/Bvqnn8qg//TTwvcT\n0b8Y9kZsxw55VFxQSkoRJzjVanm1q7s7sHq1nC//559A165VVmtRCk61dHT8d2bO418TETHsK6TM\nYamn8uep538N+eHp4/PoCfnNvD095Xz5L74A9u8H9OSq5oMHC0+1zJ+KefCgsnUR6aMSlziuaoZ2\nBW3BI8vHL+oxlLne+TXPmCGHQRYsAKythBye+fBDOXQzbx57vBLpqbLmJsO+gooMSwMJ+nxxcY9O\ncF4RcLz8p2wBmJoKhIQA/v5ADf4BSKSvKrxcApWNtfW/F/XkzwYxJCkp8pfUzc37kdZtDvJqJ8Bk\nXrBsA2hionR5RKQjPGSroPywzJ8NYkgnB1NSgG8mHsYX0b1hP2scmswej6m9o5HS7xUGPVE1w2Gc\nCjDoMfuoKNx+7UPYJZxCjTkfAOPHA2ZmXDWSyMBwzL4KGOQSu6dPy2beR47IpYYDA9nMm8iAMeyp\nsPPnZTPviAh5kuH114EC/QqIyDCVNTc5Zl/dXb4MBAQAzz4LtG8v+7xOn86gJzIyDPvq6upVOUTT\nuTPg7Cz7vM6axWbeREaKYV/d3LgBvPkm0KGD7O8aEyPH6K2slK6MiBTEsK8u7twBpk0DPDyA2rXl\nGP3ChYCNjdKVEZEeYNgbuqQkYOZMuRJlbi5w9qxc99fOTunKiEiPMOwNVUqKXLumdWsgORk4eRJY\ntgx41P+XiKgghr2hSU2VV221agXExwNHjwKrVgFNmypdGRHpMYa9ocjIkOsxtGwJREfLK7dCQ+VM\nGyKiUnAhNH2XlSWP3BctArp1A/bsAdq2VboqIjIwDHt9lZ39bzNvLy828yaiCmHY65vcXNnMe948\nwMUF+OknwNtb6aqIyMAx7PVFXh7www+yYUjTpsDGjQX6AxIRVQxP0CpNrQa2bJEXQ61cKcfn9+yp\nkqA39B66RFR2DHulCAH8+qscj//0U+Dzz4G//gJ69qyyEkptOE5E1QaXOK6Acq1nLwSwe7e8ICon\nR47NDxigWDPv6tBDl8iYcT37KqBVpyoh5PDMnDnyifPmAS+/rBfNvDUNx2MBR0elqyEibXA9+ypg\nbS2DffZsGZjFBv2BA0CPHrJhyJtvym5RQ4boRdAbcg9dIio7HtnrQLFHxkeOyCP5ixflsM2YMYCp\n/kyAMugeukQEQOEje0dHR7Rr1w5eXl7wfjRHPDg4GA4ODvDy8oKXlxd2795dGbuuckUeGZ84Icfh\nhwwBBg8GLlyQDb31KOgBeW6hYLDn/6Vy8KCydRGR7lXKkb2TkxOOHz8OmwJrqYeEhMDCwgLTpk0r\nvhgDO7J//Ej4wd9ncHnMXLTPOIQas2YCkyYBtWopXSYRVWOKj9kXtXNDCvKy0BwZ374AjBwJS//n\n4DKuC3778hLw1lsMeiLSG5UyrqBSqdCrVy+YmJggKCgIgYGBAIDly5dj/fr16NixI5YsWQLrIgaG\ng4ODNZ/7+fnBz8+vMkrUiRddrwBT58k5mO+8A6xejdoWFnhB6cKIqNqKiIhARESE1q+rlGGchIQE\n2NvbIzExEb1798by5cvRpk0b2D3qnjRnzhwkJCRg7dq1hYsxlGGca9eAjz6S69ZMmSKDnj1eiUgB\nig7j2D/qlmRnZwd/f39ERkaiQYMGUKlUUKlUePXVVxEZGVkZu65cN28CkyfLq17r15fNvIODGfRE\npPd0HvYZGRlITU0FAKSnpyM8PBweHh64deuW5jm//PILPDw8dL3rynPnDjB9OuDuDjz1FHDuHPDx\nxzLwiYgMgM7H7G/fvg1/f38AQG5uLkaNGoU+ffpg7NixOHnyJFQqFZycnLBq1Spd71r3kpJk8+7V\nq4FXXgHOnAEaN1a6KiIirfGiqqKkpABLlwJffinnyX/wAdCsmdJVERE9QfGplwapYDPvq1dlM+/V\nqxn0RGTwGPaAbOb92WeymffZs3Kp4XXr2MybiKoN/bp+v6plZckj90WLgC5dgD//lCdhiYiqGeMM\n++xs4Ntv5ZCNp6e8KMrLS+mqiIgqjXGFfW4usGGDXEu+dWvgxx+Bzp2VroqIqNIZR9jn5QGbN8tm\n3o0bA+vXA76+SldFRFRlqnfYq9VySYP8q1xXrpQ9XhVqAUhEpJTqGfZCANu2AXPnAmZmcqbN888z\n5InIaFWvsBcC+O032R0qO1uOzQ8cyJAnIqNXfcI+v5l3crIcmx88WC96vBIR6QPDD/u//pIhf/26\nHLYZORIwMVG6KiIivWK4YR8ZKZt4nz8v/x07Vu96vBIR6QvDG+c4eVKOww8eDAwaJNeUnzCBQU9E\nVALDCfuzZ4EhQ4AXXgCeew64eBF47TWgZk2lKyMi0nv6H/YxMXIt+Z495dWuly8Db7/NZt5ERFrQ\n37CPjQXGjwd8fIC2bYFLl4AZM4A6dZSujIjI4Ohf2MfHA0FBQMeOQNOmcrhm9mzAwkLpyoiIDJb+\nndVs3x6YNEkO37DHKxGRTuhfW8Jbt4CGDZUuhYjIIJS1LaH+hb3+lENEpPfYg5aIiDQY9kRERoBh\nT0RkBBj2RERGgGFPRGQEGPZEREaAYU9EZAQY9kRERoBhryMRERFKl1AhrF9ZrF85hly7Nhj2OmLo\nPzCsX1msXzmGXLs2GPZEREaAYU9EZAT0biE0IiLSTlliXK/Ws9ej3ztERNUKh3GIiIwAw56IyAgw\n7ImIjIDehP3u3bvh4uKCVq1a4ZNPPlG6HK1MmDABDRs2hIeHh9KlaC0+Ph49evRA27Zt4e7ujmXL\nlildklaysrLQuXNneHp6ws3NDbNmzVK6pHLJy8uDl5cXBgwYoHQpWnN0dES7du3g5eUFb29vpcvR\nSkpKCoYMGQJXV1e4ubnh8OHDSpdUZhcuXICXl5fmw8rKquT/v0IP5ObmihYtWojY2FiRnZ0t2rdv\nL6Kjo5Uuq8z2798voqKihLu7u9KlaC0hIUGcOHFCCCFEamqqaN26tUG990IIkZ6eLoQQIicnR3Tu\n3FkcOHBA4Yq0t2TJEvHKK6+IAQMGKF2K1hwdHUVSUpLSZZTL2LFjxdq1a4UQ8ucnJSVF4YrKJy8v\nTzRq1Ehcu3at2OfoxZF9ZGQkWrZsCUdHR5iZmWHEiBH49ddflS6rzHx9fVGvXj2lyyiXRo0awdPT\nEwBgbm4OV1dX3Lx5U+GqtFOnTh0AQHZ2NvLy8mBjY6NwRdq5fv06du7ciVdffdVgZ6QZYt3379/H\ngQMHMGHCBACAqakprKysFK6qfP744w+0aNECTZs2LfY5ehH2N27cKFSkg4MDbty4oWBFxikuLg4n\nTpxA586dlS5FK2q1Gp6enmjYsCF69OgBNzc3pUvSyjvvvINPP/0UNWroxX9HralUKvTq1QsdO3bE\nN998o3Q5ZRYbGws7OzuMHz8eHTp0QGBgIDIyMpQuq1w2b96MV155pcTn6MVPFy+mUl5aWhqGDBmC\n//73vzA3N1e6HK3UqFEDJ0+exPXr17F//36DWutk+/btaNCgAby8vAzy6BgADh48iBMnTmDXrl34\n6quvcODAAaVLKpPc3FxERUXhjTfeQFRUFOrWrYtFixYpXZbWsrOz8X//938YOnRoic/Ti7Bv0qQJ\n4uPjNbfj4+Ph4OCgYEXGJScnB4MHD8bo0aMxaNAgpcspNysrK7z44os4duyY0qWU2d9//41t27bB\nyckJI0eOxJ49ezB27Fily9KKvb09AMDOzg7+/v6IjIxUuKKycXBwgIODAzp16gQAGDJkCKKiohSu\nSnu7du3C008/DTs7uxKfpxdh37FjR1y8eBFxcXHIzs5GWFgYBg4cqHRZRkEIgYkTJ8LNzQ1Tp05V\nuhyt3b17FykpKQCAzMxM/P777/Dy8lK4qrJbuHAh4uPjERsbi82bN6Nnz55Yv3690mWVWUZGBlJT\nUwEA6enpCA8PN5hZaY0aNULTpk0RExMDQI57t23bVuGqtPfDDz9g5MiRpT5PL5ZLMDU1xZdffom+\nffsiLy8PEydOhKurq9JlldnIkSOxb98+JCUloWnTppg3bx7Gjx+vdFllcvDgQXz//feaqXMA8PHH\nH+P5559XuLKySUhIQEBAANRqNdRqNcaMGYPnnntO6bLKzdCGNG/fvg1/f38Aclhk1KhR6NOnj8JV\nld3y5csxatQoZGdno0WLFggNDVW6JK2kp6fjjz/+KNO5Er1aCI2IiCqHXgzjEBFR5WLYExEZAYY9\nEZERYNgTERkBhj3ptaSkJM1CT/b29nBwcICXlxc6dOiA3NzcUl+/bt06TJkyRat9Ojo64t69ewAA\nHx8fzf0zZsyAu7s73nvvPdy9exedO3fG008/jb/++gsvvvgiHjx4oN0XB3nVcv5UxX/++Qe7du3S\nehtEZaEXUy+JilO/fn2cOHECABASEgILCwtMmzatzK8vz1TGgq85ePCg5vNvvvkGycnJUKlU2Lx5\nM9q1a6eZ8rZjxw6t9/O4EydO4Pjx43jhhRcqvC2ix/HIngyKEAJr1qyBt7c3PD09MWTIEGRmZgIA\ntm7dCg8PD3h6esLPz0/z/Hw7duxA165dNUft+ZKSktCnTx+4u7sjMDCw0Gvyl44YOHAg0tLS0KFD\nByxevBjvvfcefv31V3To0AFZWVmF/hpYv3492rdvD09PTwQEBAAAxo0bh59++umJ7ebLycnBhx9+\niLCwMHTo0AFbtmxB69atcffuXQBy/Z9WrVohKSlJF28jGSEe2ZPBefnll/Hqq68CAObMmYO1a9di\n8uTJmD9/PsLDw2Fvb68ZUsk/Sv/ll1+wdOlS7Nq164mVDUNCQvDss8/igw8+wM6dO7F27VrNY/mv\n37ZtGywsLDR/ZTRs2BDHjx/XrB+e/7yzZ89iwYIFOHToEGxsbDRX9z7+F8bjt83MzDB//vxC2zx/\n/jw2btyIt99+G3/88Qc8PT1Rv379Cr57ZKx4ZE8G5/Tp0/D19UW7du2wceNGREdHA5Dj6wEBAViz\nZo1mPF8IgT179mDx4sXYuXNnkUvYHjhwAKNHjwYA9OvXr0zLVQshnli4LH9fw4YN0yyzbG1tXeav\n6/FtTpgwQbN0wrfffmswV2WTfmLYk8EZP348VqxYgVOnTmHu3LmaYZyVK1fio48+Qnx8PJ5++mnc\nu3cPKpUKLVq0QFpaGi5cuFDsNrW9kLy4cwEqlarIbZmamkKtVgOQQzLZ2dml7sPBwQENGzbEnj17\ncPToUY7lU4Uw7MngpKWloVGjRsjJycH333+vuf/y5cvw9vZGSEgI7OzsNCupNm/eHD/++CPGjh2r\n+SugoGeffRabNm0CIFcQTE5OLrWGogJdpVKhZ8+e2Lp1q2b8Pn9bjo6OOH78OAA5JJSTk/PE6y0t\nLTWLiuV79dVXMXr0aAwbNszg1s0h/cKwJ4Mzb948dO7cGd26dYOrq6smBN999120a9cOHh4e8PHx\nQfv27QHIEG7Tpg02btyIoUOHIjY2ttD25s6di/3798Pd3R2//PILmjdvrnmsYMA+/nlRj7m5uWH2\n7Nno3r07PD09MX36dABAYGAg9u3bB09PTxw+fLjQCdr81/bo0QPR0dHw8vLCli1bAAADBgxAeno6\nh3CowrgQGpEeO3bsGKZPn459+/YpXQoZOM7GIdJTixYtwtdff60ZYiKqCB7ZExEZAY7ZExEZAYY9\nEZERYNgTERkBhj0RkRFg2BMRGQGGPRGREfh/TG7xiqNMUXMAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll need some statistical machinery from scipy" ] }, { "cell_type": "code", "collapsed": true, "input": [ "from scipy.stats import t as tdist, norm as normdist" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now we can compute our stats for this contrast:\n", "The $\\textbf{Residual Sum of Square}$ (RSS) is :\n", "\n", "$$ RSS = \\sum_{i=1}^{12} (Y_i - X_i \\beta)^2$$\n", "\n", "$X_i$ is the $i$th row of the matrix $X$. The $\\textbf{Mean Residual Sum of Square}$ is :\n", "\n", "$$ MRSS = RSS / \\textit{df} $$\n", "\n", "where $\\textit{df}$ are the degrees of freedom, computed as the number of observations (here, 12) minus the rank of the design matrix (ie, the number of independent vectors in X). The $MRSS$ is the noise variance estimation: $\\widehat{\\sigma^2}$.\n", "\n", "The $\\textbf{Standard Error}$ (SE) of $c \\beta$ is computed with $\\textrm{SE} = \\sqrt{\\widehat{\\sigma^2} c (X^t X)^+ c^t} $ \n", "(why is that so is to be expanded here ...)\n", "\n", "The t test is then : $t = \\frac{c \\beta}{\\textrm{SE}} $" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Contrast\n", "C = np.array([1, 0])\n", "# t statistic and significance test\n", "RSS = ((Y - dot(X, B))**2).sum()\n", "MRSS = RSS / df\n", "SE = np.sqrt(MRSS*dot(C, (dot(pinv(dot(X.T, X)), C.T))))\n", "t = dot(C, B)/SE\n", "ltp = tdist(df).cdf(t) # lower tail p\n", "p = 1-ltp # upper tail p \n", "\n", "# print results to window\n", "print 'First TD analysis: t= %2.2f, p= %0.6f' % (t, p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "First TD analysis: t= 7.95, p= 0.000006\n" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can package the analysis up into a function:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def t_stat(Y, X, C):\n", " \"\"\" betas, t statistic and significance test given data, design matrix, contrast\n", " \"\"\"\n", " # Calculate the parameters\n", " B = dot(pinv(X), Y)\n", " RSS = ((Y - dot(X, B))**2).sum(axis=0)\n", " # Recalculate df\n", " df = X.shape[0] - matrix_rank(X)\n", " MRSS = RSS / df\n", " SE = np.sqrt(MRSS*dot(C, (dot(pinv(dot(X.T, X)), C.T))))\n", " t = dot(C, B)/SE\n", " ltp = tdist(df).cdf(t) # lower tail p\n", " p = 1 - ltp # upper tail p\n", " return B, t, df, p\n", "\n", "# Results are the same\n", "print 'First TD analysis again: B = %s, t= %2.2f, df= %d, p= %0.6f' % t_stat(Y, X, C)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "First TD analysis again: B = [ 0.63928135 54.39383796], t= 7.95, df= 10, p= 0.000006\n" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": true, "input": [ "# save data for analysis in some package that reads csv type files\n", "np.savetxt(\"voxdata.txt\", Y)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the analysis for the added covariate.\n", "\n", "This and all the other analyses here use exactly the same code as above." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# design matrix, df\n", "X = np.column_stack([ourcov, np.arange(1, nimgs+1), np.ones(nimgs)])\n", "show_design(X, 'Design matrix for added covariate')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAN0AAAEICAYAAADbQPEyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGvhJREFUeJzt3XtUlHX+B/D3yCVBbjOI3K8CCXiBoEzSIItaS4y8bIkm\nmq2x1R4xt00L7+aldduT6WZ0ITulbqfTSaRSvM2ugUomZmUrZpBcykuAgBAgfH5/eJgfw3XU6TtC\n79dfM/N8n+/388zMe57bzDwaEREQkTL9LF0A0e8NQ0ekGENHpBhDR6QYQ0ekGENHpJhFQzd06FD8\n97//tWQJZvP+++/jvvvuu6Z5c3NzERISAkdHR2RlZZm5sp4FBARg7969nU7T6/Xw9fW9pn6vZ15V\n/vznP2PlypVqB5Ue+Pv7i52dnTg6OoqLi4vExsbKpk2bpKWlpadZ+4SioiLRaDTS3Nz8m40xduxY\nWb9+/W/Wf08CAgJk7969nU7bv3+/+Pj4XFO/1zPvjSguLk7efPPN6+6nxzWdRqNBdnY2qqurcebM\nGSxYsABr167F7NmzVXwm3DCkm+8QNDc3X1ffZ86cQXh4+DXNe71j/561tLRcVXuNRmOegXtKZWef\ngvn5+dKvXz/55ptvRETk119/lfnz54ufn5+4u7tLamqq1NfXi4jI+fPn5YEHHhAXFxfR6XQyZswY\nQz/+/v6yZ88eERGpq6uTGTNmiFarlbCwMFm7dq3Rp6S/v7+sW7dOhg8fLs7OzvLwww/Lr7/+2mnN\nmZmZEhsbK/PmzRMXFxcZPHiw5Obmyttvvy2+vr4yaNAg2bx5s6F9dna2REZGipOTk/j6+srSpUsN\n03x9fUWj0YiDg4M4OjrKwYMHjfp3dXWV9PR0yczMlNGjR4uISG5urgwcOFBKSkpEROTYsWOi1Wrl\n5MmTHWoNCgqSfv36GbYmGhsbpaysTBITE0Wn00lwcLC88cYbhvZLliyRSZMmyfTp08XJyUneeuut\nDn12tzwiIu+++674+fmJq6urvPjii0avcV1dnaSkpIhWq5Xw8HB56aWXjF6HsrIymThxori5uUlg\nYKDRGrqnedv75ptv5J577hGdTifu7u6yatUqEbnyfpo7d654eXmJl5eXpKWlSUNDg4iIDBkyRLKz\nsw19NDU1ycCBA6WgoEBERCZPniweHh7i7Owsd955p3z77beGtikpKZKamirjxo2TAQMGyJ49eyQl\nJUXS09NFRKSiokIeeOABcXNzE61WK+PHj5fS0lIREXn++efFyspK+vfvLw4ODvKXv/xFRES+++47\nwzLcfPPN8sEHH3S5vK2uKXQiIn5+frJp0yYREUlLS5MHH3xQKisrpaamRhITE2XhwoUiIrJgwQJJ\nTU2Vy5cvy+XLl+Xzzz/vtO/nnntO4uPjpaqqSkpLS2XYsGHi6+tr1HbkyJHy008/SUVFhYSFhRnG\nby8zM1Osra3lnXfekZaWFklPTxdvb295+umnpbGxUXJycsTR0VEuXbokIiJ6vd7wAXL8+HFxd3eX\njz/+WEREiouLO2xetva/YcMGaW5ulvr6eqPQiYi88MILMnbsWKmrq5OhQ4fKxo0bTX6Ox4wZI089\n9ZQ0NDTIsWPHxM3NTfbt2yciV0JnY2Mj27dvFxExfLi11d3yfPvtt+Lg4CAHDhyQhoYGeeaZZ8Ta\n2trodbjzzjulsrJSSkpKJCIiwvA6NDc3yy233CIrVqyQpqYm+eGHHyQoKEh27drV47ztVVdXi4eH\nh7z88svS0NAgNTU1cvjwYRERWbRokYwaNUrOnz8v58+fl9jYWFm0aJGIiCxfvlymTZtm6Cc7O1vC\nw8ONXpva2lppbGyUtLQ0iYyMNExLSUkRZ2dnycvLE5Er4Z45c6ah719++UU++ugjqa+vl5qaGpky\nZYokJSUZ5o+Pjzf6kKutrRUfHx955513pLm5WQoKCmTgwIFy4sSJTpe51TWH7vbbb5dVq1ZJS0uL\nDBgwQE6fPm2YlpeXJ4GBgSIisnjxYnnwwQfl+++/77bvoKAgycnJMUx78803jT4lAwIC5P333zfc\n/9vf/iapqamd1pyZmSkhISGG+8ePHxeNRiPnzp0zPObq6ipfffVVp/PPnTtX5s2bJyKd79NlZmaK\nn59fhzHbhq6pqUmio6Nl6NChMm7cuE7Habtsrc/DmTNnxMrKSmpraw3TFy5cKDNnzhSRK6GLi4vr\ntr/ulmfZsmUydepUw7RLly6Jra2t0evQGiIRkYyMDMPrcOjQoQ7LvWrVKpk1a1aP87a3ZcsWueWW\nWzqdNnjwYPnss88M93ft2iUBAQEiInLq1ClxdHQ0fNgkJyfLihUrOu2nsrJSNBqNVFdXi8iV0KWk\npBi1mTlzpmFN115BQYFotVrD/fj4eKN9um3bthltuYmIzJkzR5YtW9Zpf62u+ehlaWkpdDodLly4\n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\nRIoxdESKMXREivHopRl9+eWXZuur7d/CU9/CNR2RYgwdkWIMHZFiDB2RYgwdkWIMHZFiDB2RYgwd\nkWIMHZFiDB2RYgwdkWIMHZFiDB2RYgwdkWIMHZFiDB2RYgwdkWL85fgNir8c77u4piNSjKEjUoyh\nI1KMoSNSjKEjUoyhM1FJSQnuuusuREREYOjQoVi/fr2lS6JeiqcMTGRjY4N//vOfiIyMRG1tLaKj\no5GQkMBLZtFV45rORB4eHoiMjAQAODg4ICwsDOXl5RauinojrumuQXFxMQoKCjBy5Eijx3fs2GG4\nHRoaiptvvll1aWah1+uh1+stXUafxYtCXqXa2lrEx8cjPT0dSUlJhsc1Gg1ef/11s42zceNGs/Tz\n1VdfXXcfvCikeXHz8io0NTVh0qRJmD59ulHgiK4GQ2ciEcHs2bMRHh6OtLQ0S5dDvRhDZ6Lc3Fy8\n99572L9/P6KiohAVFYWdO3dauizqhXggxUSjR49GS0uLpcugPoBrOiLFGDoixRg6IsUYOiLFeCDF\njDIyMszWF/+uoe/imo5IMYaOSDGGjkgxho5IMYaOSDGGjkgxho5IMYaOSDGGjkgxho5IMYaOSDGG\njkgxho5IMYaOSDGGjkgxho5IMYaOSDGGjkgx/l2DGUVHR5utr/r6erP1RTcWrumIFGPoiBRj6IgU\nY+iIFGPorkJzczOioqKQmJho6VKoF2PorsIrr7yC8PBwaDQaS5dCvRhDZ6LS0lJ8+umnePzxx3kp\nYLouPE9nonnz5uHvf/87qquru2zz5ZdfGm57enrCy8tLRWlmp9frodfrLV1Gn8XQmSA7OxuDBg1C\nVFRUt29Gc54ct6T4+HjEx8cb7i9btsxyxfRB3Lw0QV5eHrKyshAYGIipU6di3759mDFjhqXLol6K\noTPBqlWrUFJSgqKiImzbtg1jx47Fu+++a+myqJdi6K4Bj17S9eA+3VWKi4tDXFycpcugXoxrOiLF\nGDoixRg6IsUYOiLFeCDFjDIyMszW11//+lez9UU3Fq7piBRj6IgUY+iIFGPoiBRj6IgUY+iIFGPo\niBRj6IgUY+iIFGPoiBRj6IgUY+iIFGPoiBRj6IgUY+iIFGPoiBRj6IgUY+iIFOPfNZiROa/ms27d\nOrP1RTcWrumIFGPoiBRj6IgUY+iIFGPoiBRj6ExUVVWFyZMnIywsDOHh4Th06JClS6JeiqcMTDR3\n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\n", "text": [ "" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "# Contrast\n", "C = np.array([1, 0, 0])\n", "# the analysis\n", "B, t, df, p = t_stat(Y, X, C)\n", "print 'Added covariate analysis: t= %2.2f, p= %0.6f' % (t, p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Added covariate analysis: t= 7.81, p= 0.000013\n" ] } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conditions analysis" ] }, { "cell_type": "code", "collapsed": true, "input": [ "X = np.zeros((nimgs, 2))\n", "X[0:6, 0] = 1\n", "X[6:, 1] = 1\n", "show_design(X, 'Design matrix for two conditions')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "B = np.linalg.pinv(X).dot(Y)\n", "B" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "array([ 56.54455457, 56.71809077])" ] } ], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are the means for each set of observations (why?):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.mean(Y[:6]), np.mean(Y[6:])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "(56.544554566379446, 56.718090771077186)" ] } ], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "# Contrast for activation minus rest\n", "C = np.array([-1, 1])\n", "# the analysis\n", "B, t, df, p = t_stat(Y, X, C)\n", "print 'Analysis for two conditions: t= %2.2f, p= %0.6f' % (t, p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Analysis for two conditions: t= 0.23, p= 0.409795\n" ] } ], "prompt_number": 35 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Some extra analyses to show how it all works" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# do an ANCOVA for globals, instead of proportional scaling\n", "# GM scale\n", "Yanc = vdata * GM / np.mean(gdata)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "X = np.column_stack((ourcov, gdata, np.ones(nimgs)))\n", "show_design(X, 'Design with ANCOVA for global signal')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAO8AAAEICAYAAAC3RqM3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHpdJREFUeJzt3XlUlPX+B/D3AwwKsggSiyxiICmKQmjugBmmXiFMMZdE\n05t5Kg2v1+vyU9PsZpzU0ryZmBGKS6am5nbLdHLXXK5lmjuJqKQiIqIo8Pn90WFOI6CYD4xffL/O\n8Rzmeb7z/X7mmXnP91nGGU1EBESkHCtLF0BEfw3DS6QohpdIUQwvkaIYXiJFMbxEirJoeJs0aYKt\nW7dabPypU6fi1VdfLXf9F198gfbt21dhRY+mmzdvIiYmBrVr18ZLL71U6eMNHDgQEyZMqFBbKysr\nnD59+i+N4+/vj++///6B7rNt2zY0bNjwL433INLT02FlZYXi4uJy29w3vP7+/rC3t4eTkxNcXFzQ\ntm1bzJ07F3pcHj58+DAiIiIeup+/auzYsZg3bx6Aim2sioqKioKrqytu375ttnzgwIGwsrLCjz/+\naFp28uRJWFmZPw3//e9/ERERAScnJ7i7uyMqKgrffPONaf25c+fQr18/uLm5wcHBAS1btsS6desA\nAJmZmTAYDGW+oLt3745Ro0aZ1WMwGHDx4sV7Pp7ly5fj999/R3Z2Nr788suKb4i/SNM0aJr2SI7T\nvn17/Prrr5VU0YO5b3g1TcPatWuRm5uLs2fPYsyYMUhKSsLgwYOror4q97BvSunp6di7dy/c3d2x\nZs2aUutdXV0xfvz4cu+/fPly9OrVCwMHDkRmZiZ+//13vPPOO6bwZmdno127dqhZsyaOHDmCK1eu\nYMSIEejbty9WrFgBb29vdOzYEQsXLjTrNzs7Gxs2bMDAgQMBADdu3MCKFSsQHByMtLS0ez6m3377\nDUFBQaXeZCqisLDwge8DPPzz8FiQ+/D395fvv//ebNnevXvFyspKDh8+LCIit27dkpEjR4qfn594\neHjI0KFD5ebNmyIicunSJfnb3/4mtWvXFldXV2nfvr2pn3r16smmTZtERCQ/P18SEhLExcVFGjVq\nJElJSeLj42PWdtq0adK0aVNxdnaWl156SW7dulVmzX5+frJ//34REUlLSxNN0+TIkSMiIvLZZ59J\nXFyciIi8/fbb8vLLL4uIiK+vr2iaJg4ODuLo6Ci7du2SL774Qtq1ayf//Oc/xcXFRerXry8bNmy4\n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\n9cKwYcMQFxeH48ePm7W5exYsr5+MjAzY29tj5cqViImJwdKlS+Hg4FCqrYggLy8PPXv2RFBQEGrV\nqlVuXxs2bCizJnp4nHkf0nfffYeff/651L/Y2Fh4eHiYgn3hwgW4u7sDALy9vZGRkWHq4/r16/Dx\n8cETTzyB7t27Y+/evfD29kZxcbGp3blz53Dz5k34+PiYjV9yggkAunTpgjt37iA7O9u0/u6x7ty5\nA29v71KPw9HREfb29rhz5w7mzp2LWrVqISIiolQ7b29vnDlzBj169MDLL7+MgoKCUv2V9FVeTaQP\nhrcSxcbGIjU1FQCQmpqKuLg4AEDz5s1x4sQJpKenIycnB0uWLEFsbCxu3LiBb7/9FiEhIYiNjcWO\nHTtw4sQJfP3113BycsK6desQGxtrNkZWVpZpZt27dy9EBK6urmY1LFiwAABw8OBBWFtbl9rNLemn\nuLgYgwcPhqurKxwdHc36KRETE4PRo0cjODgYrVq1Qu3atUv1d7+aSCcWPFlW7V25ckU6duwoDRo0\nkOjoaLl69aqIiGRmZkrz5s0lKChI6tWrJ56entKsWTPx8vKSuLg40/3feOMN8fLykho1aoiPj4+8\n9957IiLy6aefyqeffioiIuHh4WJjYyOapomtra2MGzfObH1JPw4ODmJjYyM2Njbi4+Mj8+fPN2s3\ne/Zs8ff3FwBib28vQUFBEhoaKuvXrzdrt23bNgEgtra2UrNmTXnqqadKtZk9e7Y0btxYmjVrJq1b\nty51Jp30wf+YQKQo7jYTKYrhJVIUw0ukKIaXSFEML5GiGF4iRf0/G2BK8bj2aoYAAAAASUVORK5C\nYII=\n", "text": [ "" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "# Contrast for task covariate only\n", "C = np.array([1, 0, 0])\n", "# the analysis\n", "B, t, df, p = t_stat(Yanc, X, C)\n", "print 'TD analysis with ANCOVA for global: t= %2.2f, p= %0.6f' % (t, p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "TD analysis with ANCOVA for global: t= 7.15, p= 0.000027\n" ] } ], "prompt_number": 38 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another voxel" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# coordinates of voxel of interest in mm (MNI space)\n", "posmm2 = [6, 0, 6]\n", "# Coordinates in voxel space\n", "posvox2 = np.dot(iM, posmm2 + [1])\n", "# We grab the spatial part of the output. Since we want to use it as an \n", "# index, we need to make it a tuple\n", "posvox2 = tuple(posvox2[:3].astype(int))\n", "posvox2" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "(42, 56, 28)" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "# Get the data for this voxel\n", "vdata2 = np.zeros(nimgs)\n", "for i, V in enumerate(images):\n", " d = V.get_data()\n", " vdata2[i] = d[posvox2]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "# Proportional and global mean scale\n", "Y2 = vdata2 / gdata * 50" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "X = np.column_stack((ourcov, np.ones(nimgs)))\n", "C = np.array([1, 0])\n", "# the analysis\n", "B, t, df, p = t_stat(Y2, X, C)\n", "print 'First TD analysis second voxel: t= %2.2f, p= %0.6f' % (t, p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "First TD analysis second voxel: t= 5.84, p= 0.000082\n" ] } ], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Analyzing two voxels at the same time, but independently:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Y_both = np.column_stack((Y, Y2))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "# the analysis\n", "B, t, df, p = t_stat(Y_both, X, C)\n", "print 'First TD analysis first voxel: t= %2.2f, p= %0.6f' % (t[0], p[0])\n", "print 'First TD analysis second voxel: t= %2.2f, p= %0.6f' % (t[1], p[1])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "First TD analysis first voxel: t= 7.95, p= 0.000006\n", "First TD analysis second voxel: t= 5.84, p= 0.000082\n" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "B.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 45, "text": [ "(2, 2)" ] } ], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that the result when analyzing two voxels at the same time are identical to the results when analyzing them separately." ] } ], "metadata": {} } ] }