{ "metadata": { "name": "", "signature": "sha256:24163e36ecf41cc409dc9bbc13ebfd7d2d0ec7a8ca6a033408219d57475fbe0c" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "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": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "# - show figures inside the notebook\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# - import common modules\n", "import numpy as np # the Python array package\n", "import matplotlib.pyplot as plt # the Python plotting package" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# - a new import for us - import numpy.linalg with a shorter name\n", "import numpy.linalg as npl" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the utility functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to put the utility functions on the Python search path.\n", "\n", "Import the `sys` module, and append the full path to the `pna_code` directory to `sys.path`. If you need to jog your memory on how to do this, have a look at the top of `day4/first_statistics_solutions.ipynb` notebook." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# import sys module\n", "# append full path of \"pna_code\" directory to sys.path\n", "import sys\n", "sys.path.append('/Users/mb312/pna_code')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check you can import `spm_funcs` and `stimuli`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Try importing \"spm_funcs\" and \"stimuli\" modules\n", "import spm_funcs\n", "import stimuli" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a quick check, make a time vector from 0 up to (not including) 25, in steps of 0.1.\n", "\n", "Use the `spm_hrf` function in `spm_funcs` to sample the SPM HRF at these times.\n", "\n", "Plot the HRF samples against time to make sure it gives a reasonable shape." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make times vector from 0 to 25 in steps of 0.1\n", "# Sample spm_hrf function at these times\n", "# Plot samples against time\n", "times = np.arange(0, 25, 0.1)\n", "hrf_samples = spm_funcs.spm_hrf(times)\n", "plt.plot(times, hrf_samples)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEACAYAAABGYoqtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmUVPWZ//H3I4smcUHQAEIji2BEjeCK29CJOkFMRJMT\nGeJPjBrFaNQ4xoPLOJKME6MTCUEMYkTFxBFJNIpGEWXogEDcRVRAEVFAbBA3VAhgP78/vrftstLV\ndPftrm8tn9c591TdW9/b9Xgp66nves3dERERqc92sQMQEZHCpSQhIiI5KUmIiEhOShIiIpKTkoSI\niOSkJCEiIjmlThJmNsTMlpjZa2Y2OkeZ8cnrC81sYHKswsxmm9nLZvaSmV2YUX6Mma0ys+eTbUja\nOEVEpOnapjnZzNoAE4BjgdXA02Y23d0XZ5QZCuzl7n3N7DBgIjAI2AJc7O4vmNmOwLNmNtPdlwAO\njHX3sWniExGRdNLWJA4Flrn7CnffAkwFhmWVORGYAuDuTwIdzKyzu7/j7i8kxz8GFgPdMs6zlLGJ\niEhKaZNEN2Blxv4qvvhFn6tM98wCZtYTGAg8mXH4gqR5arKZdUgZp4iINEPaJNHYNT2yawWfn5c0\nNf0ZuCipUUBokuoFDADWADekjFNERJohVZ8EoR+iImO/glBTaKhM9+QYZtYOuBf4o7vfX1vA3dfW\nPjezW4EHs9/YzLTolIhIM7h7o5vz09YkngH6mllPM2sPDAemZ5WZDowEMLNBwAfuXm1mBkwGXnH3\ncZknmFnXjN2TgUX1vbm7a3Pn6quvjh5DoWy6FroWuhYNb02Vqibh7lvN7CfAo0AbYLK7LzazUcnr\nk9z9YTMbambLgE+AM5LTjwT+H/CimT2fHLvc3WcA15nZAEKz1BvAqDRxiohI86RtbsLdHwEeyTo2\nKWv/J/Wc9wQ5ajLuPjJtXCIikp5mXJeAysrK2CEUDF2LOroWdXQtms+a00ZVCMzMizV2EZFYzAzP\nY8e1iIiUMCUJERHJSUlCRERyUpIQEZGclCRERCQnJQkREclJSUJERHJSkhARkZyUJEREJCclCRER\nyUlJQkREclKSEBGRnJQkREQkJyUJERHJSUlCRERyUpIQEZGclCRERCQnJQkREclJSUJERHJSkhAR\nkZyUJEREJCclCRERyUlJQkREcmobOwBpnpdfhjvvhGeegQ8/hB494FvfguHDoUOH2NGJSKlQTaLI\nbNgAo0bBscdCmzYwejTcdBN8//swaxb06xf23WNHKiKlwLxIv03MzIs19uZatQpOOAEOOgjGjq2/\nxvDSS3DWWdClC/zxj7DTTvmPU0QKl5nh7tbY8qlrEmY2xMyWmNlrZjY6R5nxyesLzWxgcqzCzGab\n2ctm9pKZXZhRvqOZPWZmr5rZTDMr+waUd9+Fb34TRoyAyZNzNynttx/MnQtf/Wqobbz3Xn7jFJHS\nkipJmFkbYAIwBOgPjDCzfbLKDAX2cve+wDnAxOSlLcDF7r4vMAg438y+lrx2GfCYu/cDZiX7ZWvz\nZhg2DL73PbjsMrBt/AZo3x5uuQWOPBKGDoVPP81PnCJSetLWJA4Flrn7CnffAkwFhmWVORGYAuDu\nTwIdzKyzu7/j7i8kxz8GFgPdss9JHk9KGWdRu/rqUHP45S8bf44Z3HBD6KP4wQ+gpqb14hOR0pU2\nSXQDVmbsr6Lui76hMt0zC5hZT2Ag8GRyqLO7VyfPq4HOKeMsWvPmwZQpcPvt265BZDODW2+Fdevg\nV79qnfhEpLSlTRKN7TnO/nr7/Dwz2xH4M3BRUqP4YsHQO11ePdSJrVvhxz+GceNCH0NztG8P06bB\njTeGhCMi0hRp50msBioy9isINYWGynRPjmFm7YB7gT+6+/0ZZarNrIu7v2NmXYG19b35mDFjPn9e\nWVlJZWVl8/4rCtTvfheSw/e/n+7vdOsWhsWeeSa88AJ86UstE5+IFL6qqiqqqqqafX6qIbBm1hZY\nChwDvA08BYxw98UZZYYCP3H3oWY2CBjn7oPMzAj9Devd/eKsv3t9cvw6M7sM6ODul2WVKekhsBs2\nwF57weOPw/77t8zfPOUU6N1bTU8i5aypQ2BTz5Mws+OBcUAbYLK7X2tmowDcfVJSpnYE1CfAGe7+\nnJkdBcwBXqSuOelyd59hZh2BaUAPYAVwirt/kPW+JZ0krrkGFi+Gu+5qub9ZXQ1f/zo89BAcckjL\n/V0RKR55TxKxlHKS2LABevWCBQugb9+W/dt33QXXXw/PPgtttSiLSNnJ+2Q6aXmTJ8Mxx7R8goAw\nHLZDhzBaSkRkW1STKDBbtoS+iHvvhYMPbp33eOYZOPFEWLpUy3aIlBvVJIrc/ffDnnu2XoKA8LeP\nOSY0O4mINEQ1iQLzzW+GVV6HD2/d91m5EgYMgIULoXv3bZcXkdKgjusitmQJDB4cvsDbt2/997vy\nyjDi6dZbW/+9RKQwKEkUsUsugXbt8jeP4b33wtpOTz8dRlOJSOlTkihSW7eGZp85c8IXd75cdRW8\n8w78/vf5e08RiUcd10Vq5szwaz6fCQLg4ovhvvvgjTfy+74iUhyUJArEnXfCyJH5f9+OHcMigk1Z\nhlxEyoeamwrAxx+HRfiWL4dOnfL//uvXhxrMs89Cz575f38RyR81NxWhRx6Bww+PkyAgvO9ZZ8Fv\nfhPn/UWkcClJFIB774XvfjduDBddFJq81q+PG4eIFBY1N0W2aRN06QKvvtr8Gwu1lDPOgD594D/+\nI24cItJ61NxUZGbODDOfYycIgJ/9DCZMgI0bY0ciIoVCSSKy++6D730vdhTBvvuGdZ3uvDN2JCJS\nKNTcFNGWLaGpqZDWT5ozJ3RiL10K2+knhEjJUXNTEZk9O9wzolASBMDRR4flw2fMiB2JiBQCJYmI\n/vKX+KOaspnBhRfC+PGxIxGRQqDmpkjcwzIcDz8M/fvHjuaLNm0K97SYMwf23jt2NCLSktTcVCSW\nLoWaGthnn9iR/LMddoAf/SiMdBKR8qYkEcmMGTBkSGjeKUQ//jHcdRd89FHsSEQkJiWJSGbMgOOP\njx1Fbt27w3HHwR13xI5ERGJSn0QEn34KnTvDqlWwyy6xo8ntiSfgzDPDHfM0HFakNKhPogj87W9w\n4IGFnSAAjjwSdtwxzAoXkfKkJBFBbX9EodNwWBFRc1MEe+8NU6fCwIGxI9m2TZugogKefBJ6944d\njYikpeamArd8OXz4IRxwQOxIGmeHHeD00+GWW2JHIiIxKEnk2eOPh1FDxdQRfM45YZTT5s2xIxGR\nfCuir6rSMHs2fOMbsaNomn79wgqxf/lL7EhEJN9SJwkzG2JmS8zsNTMbnaPM+OT1hWY2MOP4bWZW\nbWaLssqPMbNVZvZ8shVBN++2uRdnkgA491y4+ebYUYhIvqVKEmbWBpgADAH6AyPMbJ+sMkOBvdy9\nL3AOMDHj5duTc7M5MNbdByZbSaxJumRJaOPv1St2JE03bFiIf8mS2JGISD6lrUkcCixz9xXuvgWY\nCgzLKnMiMAXA3Z8EOphZl2R/LvB+jr9doAtWNF+x1iIA2rcPE+smTYodiYjkU9ok0Q1YmbG/KjnW\n1DL1uSBpnppsZh3ShVkYijlJAJx9NvzhD7q9qUg5aZvy/MZOVMiuFWzrvInAL5Ln/wXcAJyVXWjM\nmDGfP6+srKSysrKR4eRfTQ1UVcHYsbEjab6ePeGww2DatDAsVkQKX1VVFVVVVc0+P9VkOjMbBIxx\n9yHJ/uVAjbtfl1HmZqDK3acm+0uAwe5enez3BB509/1zvEe9rxfbZLpFi+Dkk2HZstiRpDN9Ovzq\nVzB/fuxIRKQ58j2Z7hmgr5n1NLP2wHBgelaZ6cDIJLhBwAe1CSIXM+uasXsysChX2WJR7E1NtYYO\nhZUrw325RaT0pUoS7r4V+AnwKPAKcI+7LzazUWY2KinzMLDczJYBk4Dzas83s7uB+UA/M1tpZmck\nL11nZi+a2UJgMHBxmjgLQakkibZtQ9+EOrBFyoPWbsqDmhrYfffQ5LTHHrGjSW/1ath/f3jzTdhp\np9jRiEhTaO2mAvTKK9CxY2kkCIBu3aCyEu6+O3YkItLalCTy4Ikn4KijYkfRsmpnYBdJZU5EmklJ\nIg/mzi29JHHssWE126efjh2JiLQmJYk8KMWaxHbbwahRWs9JpNSp47qVvfUWHHwwVFeHO72VknXr\nwgqxy5fDrrvGjkZEGkMd1wVm3rxQiyi1BAFhxNbxx4elOkSkNClJtLJSbGrKpA5skdKmJNHKSrHT\nOtPRR4fHuXPjxiEirUNJohW9/z688QYMHLjtssXKTDckEillShKtaMECOPRQaNcudiSt67TT4JFH\nYO3a2JGISEtTkmhFpd4fUWvXXcMKt3fcETsSEWlpShKtaN48OOKI2FHkx7nnhkX/ampiRyIiLUlJ\nopVs2QLPPguDBsWOJD8OOQR22QUefzx2JCLSkpQkWsmLL8Kee4YvznKgDmyR0qQk0UoWLIDDD48d\nRX6NGBFu0bp6dexIRKSlKEm0knJMEjvtBP/2bzB5cuxIRKSlaO2mVtK7Nzz0EPTvHzuS/Fq4EL79\n7TA/pG3b2NGISDat3VQAqqvDRLqvfS12JPl3wAFQUQEPPxw7EhFpCUoSreDvf4fDDgvLaZcjdWCL\nlI4y/RprXeXYH5Hp+9+Hp54KTU4iUtyUJFpBuSeJL30JRo6E3/8+diQikpY6rlvYli1hmYrVq8tn\njkR9li6FwYPDTZfat48djYjUUsd1ZOU2iS6XvfcOI7vuvz92JCKShpJECyv3pqZM554LN90UOwoR\nSUNJooUpSdQ5+WR4/fUwd0JEipOSRAtTkqjTrh38+Mdw442xIxGR5lLHdQuqrg4T6NavL985EtnW\nrYN+/eC112C33WJHIyLquI6o3CfR1Wf33eGkk+DWW2NHIiLNkfrrzMyGmNkSM3vNzEbnKDM+eX2h\nmQ3MOH6bmVWb2aKs8h3N7DEze9XMZppZh7Rx5oOamup3wQXwu9/B1q2xIxGRpkqVJMysDTABGAL0\nB0aY2T5ZZYYCe7l7X+AcYGLGy7cn52a7DHjM3fsBs5L9gqckUb8DD4QePeCBB2JHIiJNlbYmcSiw\nzN1XuPsWYCowLKvMicAUAHd/EuhgZl2S/bnA+/X83c/PSR5PShlnq6u9E91hh8WOpDBdeCGMHx87\nChFpqrRJohuwMmN/VXKsqWWydXb36uR5NdA5TZD5oEl0DasdDvvCC7EjEZGmSLvif2OHF2X3pDd6\nWJK7u5nVW37MmDGfP6+srKSysrKxf7bFqampYe3awXnnheGwuimRSP5UVVVRVVXV7PNTDYE1s0HA\nGHcfkuxfDtS4+3UZZW4Gqtx9arK/BBhcW1Mws57Ag+6+f8Y5S4BKd3/HzLoCs939C3dnKLQhsKee\nCt/8Jpx1VuxICte6ddC3LyxbpuGwIrHkewjsM0BfM+tpZu2B4cD0rDLTgZFJcIOADzKaknKZDpye\nPD8dKPgVgFST2Lbddw/NTlodVqR4pJ5MZ2bHA+OANsBkd7/WzEYBuPukpEztCKhPgDPc/bnk+N3A\nYKATsBb4T3e/3cw6AtOAHsAK4BR3/yDrfQumJqFJdI333HMwbBgsXx6aoEQkv5pak9CM6xZw//0w\naRI88kjsSIpDZSWcfXZoohOR/NKM6wjU1NQ0l14K//M/UCA5XkQaoCTRAubPhyOOiB1F8Tj+eNi8\nGWbNih2JiGyLmptS2rwZOnaEt9+GnXeOHU3xuO02uOceePTR2JGIlBc1N+XZwoXQu7cSRFOdeios\nWqR7TYgUOiWJlNTU1Dzbbx+W6vj1r2NHIiINUZJISZ3WzXfuufDXv8LKldsuKyJxKEmktGCBahLN\n1aED/PCH8Nvfxo5ERHJRx3UKq1fDgAGwdi1Yo7uBJNNbb8HAgWGpjl13jR2NSOlTx3UeLVgAgwYp\nQaTRowd85zu6D7ZIoVKSSEGd1i3jiitCkvjoo9iRiEg2JYkU1GndMvr1g+OOg4kTt11WRPJLfRLN\ntGkTdOoU+iO+8pVoYZSMl16CY48NNybS9RRpPeqTyJPnngsrv+oLrWXstx8ceaSWERcpNEoSzaSm\nppZ35ZVh4b9Nm2JHIiK1lCSaSfMjWt6BB4bhsLffHjsSEamlPolmcIdu3WDePOjVK0oIJevvf4fh\nw+G116B9+9jRiJQe9UnkwYoV4bFnz5hRlKZBg6B/f7j11tiRiAgoSTTL3Llw9NGaRNdarrkmbJ9+\nGjsSEVGSaIY5c0KSkNZx0EFhpNOECbEjERH1STTD3nvDtGlwwAFR3r4sLF4MgweHvolddokdjUjp\nUJ9EK6uuDhPo9tsvdiSlbZ994IQT4IYbYkciUt6UJJroiSfC0Nc2bWJHUvquvhpuuikkZRGJQ0mi\niebMgX/5l9hRlIeePcNtTn/1q9iRiJQvJYkmqh3ZJPlxxRUwZUrdsGMRyS91XDfBhx+GSXTvvaeJ\nXvn085+HjuypU2NHIlL81HHdiubPh4MPVoLIt0svDbPb58+PHYlI+VGSaAI1NcXx5S/DtdfCT38K\nNTWxoxEpL0oSTfC3v6nTOpYf/CA8/u//xo1DpNykThJmNsTMlpjZa2Y2OkeZ8cnrC81s4LbONbMx\nZrbKzJ5PtiFp40xrwwZYuDDMBJb82247+M1v4PLL4ZNPYkcjUj5SJQkzawNMAIYA/YERZrZPVpmh\nwF7u3hc4B5jYiHMdGOvuA5NtRpo4W8KcOXDIIaHpQ+I48siw/frXsSMRKR9paxKHAsvcfYW7bwGm\nAsOyypwITAFw9yeBDmbWpRHnFtTyebNmwTHHxI5CrrsOxo+HN9+MHYlIeUibJLoBKzP2VyXHGlNm\nj22ce0HSPDXZzDqkjDM1JYnCsOeecNFFcOGFsSMRKQ9tU57f2IkKTa0VTAR+kTz/L+AG4KzsQmPG\njPn8eWVlJZWVlU18m8ZZuzb8cj3kkFb589JEo0eHxRUfeACGZddbReQLqqqqqKqqavb5qSbTmdkg\nYIy7D0n2Lwdq3P26jDI3A1XuPjXZXwIMBnpt69zkeE/gQXffP+t43ibT3XMP3HUXTJ+el7eTRpg9\nG04/HV55BXbcMXY0IsUj35PpngH6mllPM2sPDAeyv0qnAyOT4AYBH7h7dUPnmlnXjPNPBhaljDMV\nNTUVnm98I2wZlUkRaQWpl+Uws+OBcUAbYLK7X2tmowDcfVJSpnYU0yfAGe7+XK5zk+N3AgMIzVlv\nAKOSxJL5vnmrSfTpE5o2tDx4YVm3LvybzJype3uINFZTaxJau2kbVqwI911es0a3Ky1Et94atnnz\ntHy7SGNo7aYW9thjoalJCaIwnXkmbL89/Pa3sSMRKU1KEtvw0EPhDmlSmLbbDm6/PazttHhx7GhE\nSo+amxqwcSN07hyanDp2bNW3kpQmTQrNTgsWQNu0A7tFSpiam1rQ7NkwcKASRDE455zw76S72Im0\nLCWJBjz4IHznO7GjkMYwg8mTw5Idzz8fOxqR0qEkkYN76I/49rdjRyKN1b17WPxv5EjYtCl2NCKl\nQUkihxdegB12gL33jh2JNMVpp8HXvgY/+1nsSERKg5JEDg89FJqaNPS1uJiFDuxHHoE//Sl2NCLF\nT0kihwcfVFNTsdplF5g2Dc4/H5Ytix2NSHHTENh6rF4N++8P1dXQrl2rvIXkwYQJcNttMH9+aDoU\nEQ2BbRF/+lNYgloJoridfz707q3+CZE0lCTqMXUqDB8eOwpJq3ZY7IwZ8Ic/xI5GpDipuSnLihXh\n5kJvv62aRKl4+eWwrPgDD8Dhh8eORiQuNTeldPfd8L3vKUGUkn33hTvuCP+ub70VOxqR4qIkkcE9\nLBb3wx/GjkRa2tChcMkloa/pk09iRyNSPJQkMsyfH+5JcNhhsSOR1vDv/x7W4jrtNKipiR2NSHFQ\nkshw++1wxhmaQFeqzGDiRFi/Hn7601BzFJGGqeM68d574TalS5aE5cGldH3wAVRWhj6Kq66KHY1I\nfjW141or7yduuy0sw6EEUfo6dAjDYo86Cjp1gvPOix2RSOFSkgA++wxuuiks5SDloUuXcGvao4+G\nXXeFESNiRyRSmJQkgHvuCctMH3JI7Egkn3r1CgsBHntsWLbj5JNjRyRSeMo+SdTUwDXXwLhxsSOR\nGPbfHx5+ONzHfPNmzbQXyVb2SWLaNNh5ZzjuuNiRSCwHHQQzZ8K3vhUSxWmnxY5IpHCUdZLYuBEu\nuywMfdWw1/L29a/DrFnhx8LmzXDWWbEjEikMZZ0kxo6Fgw8O6/qI9O8PVVWhj2L9erj0Uv14ECnb\neRIvvxzGyj/9NPTs2WJhSQlYtSr0URx+eLgnRduy/iklpUYL/DXCP/4BI0fCL3+pBCH/rHt3mDsX\n3nwzzJ3ZsCF2RCLxlF2ScIdzzgnDH3/0o9jRSKHaeedwC9s99wxzKd58M3ZEInGkThJmNsTMlpjZ\na2Y2OkeZ8cnrC81s4LbONbOOZvaYmb1qZjPNrEPaOCEkiMsvD01NU6aovVka1rZtWOvp9NPDoo+P\nPBI7IpH8S5UkzKwNMAEYAvQHRpjZPlllhgJ7uXtf4BxgYiPOvQx4zN37AbOS/VQ2boSzzw4jWGbM\ngK98Je1flHJgBhdfDH/+c/j8XHVVmKEvUi7S1iQOBZa5+wp33wJMBYZllTkRmALg7k8CHcysyzbO\n/fyc5PGk5gboHn4BHnRQuI/ArFmw227N/WtSro46Cp59FubNgyFD4J13Ykckkh9px210A1Zm7K8C\nsu/GUF+ZbsAeDZzb2d2rk+fVQKOX3du4EdasgeXLw//Qf/pTSBT//d9w0klqYpLm69w5TLr7xS/g\ngAPgxhvhlFNiRyXSutImicaOQW3MV7PV9/fc3c2s3vf56lfDshqffRYet24Nz7t2hYqK0I58881w\nxBGwXdl10UtraNs2JIkTTgh9FffdFxaH7NQpdmQirSNtklgNVGTsVxBqBA2V6Z6UaVfP8dXJ82oz\n6+Lu75hZV2BtfW9++uljMAu1g6OPrmTw4Ep23FG1BWl9hx0Gzz8PV14ZZmuPHRtqFfrsSUw1NfDx\nx/Dhh2HbsAHmzavi6aer2Ly5eUP+U02mM7O2wFLgGOBt4ClghLsvzigzFPiJuw81s0HAOHcf1NC5\nZnY9sN7drzOzy4AO7n5Z1nu36E2HRJpr3rxwT4pOnUIT1L77xo5Iitk//gHvvhtm/b/7btjeey/c\nLKv2yz/XtmEDfPnLsMsuYdt5Z9hxx7rtkktg4MCmTaZLPePazI4HxgFtgMnufq2ZjQJw90lJmdpR\nTJ8AZ7j7c7nOTY53BKYBPYAVwCnu/kHW+ypJSMHYujU0bf7852Gi5lVXhZsbiWzdCtXVoa/0nXfC\nY3V1XQKo3WqTwj/+EQbX7LZb+OGx227QsWP4PNV++efadt4Z2rRpOJ6mzrgu22U5RFrD2rVwxRXw\nwANh6OyFF4ZfcFJ6PvssfOm/9VZYymXNmrqtNhmsWQPvvx++6Lt2DVuXLmGrTQSZW6dOsNNOrdts\nqSQhUgCWLoUxY2D2bBg9GkaNCs0AUjw+/DAkgNpt5cov7q9ZE37hV1SEpVz22KMuCdQmhK5dYffd\nt/3rPp+UJEQKyIsvwtVXh36LUaPg/PPDl4jEV1MDb78Ny5b98/bGG+H1Hj3CVlFR97x2v3t32H77\n2P8VTackIVKAXn013P1w6tRwm9TzzoMDD9RoqNb22WfhV39mAnj99fC4fHlo5+/TB/ba64tbr17h\n3uel+O+jJCFSwN59F265BSZPDkvDnHkmnHpqaJKQ5tm8GVasqPvyz9zefDPMp8pOAnvtBb17l2d/\nkZKESBGoqYE5c8JdER94AI48Er77XTjxRCWM+mzaFH7519c0tHp1aPqpLxH06gU77BA7+sKiJCFS\nZDZsgIcfDrO3H30UBgyAoUPDHfIGDCif1QI+/DAkgtdfr6sV1D6uXRsmgmUngT59wnLu7dvHjr54\nKEmIFLGNG+Hxx0OymDUL1q0Lt9c96qgwy3vAgOL9ZVxTE3711yaCzISwfHmoLfTpE5qB+vSBvn3r\n+gsqKgprhFAxU5IQKSGrVsH//R8sWABPPQVLloR7cR9wQHjcZ5/wWFERt8bhHmYEr1yZe1u9OnQG\nZyaC2sc+fUIzWyl2FBcaJQmRErZxY1gzatEieOWVsL38cpit2717aHrp0SMMs+3UKYzj79QpbLvs\nEoZsZm7t29ctkrl1a90imRs3wkcfhaawzMePPgqd72vX/vO2ww4hWeXaunfXXJFCoCQhUoY2bqyb\n7PXmm+FLe/36uq127Z/Nm8OyD7Xb5s2hBtK2bdjatAnbl74UlnjYeecwAzjzcbfdwrLpX/1q3bb7\n7sXbDFZulCRERCSnpiaJMhk3ISIizaEkISIiOSlJiIhITkoSIiKSk5KEiIjkpCQhIiI5KUmIiEhO\nShIiIpKTkoSIiOSkJCEiIjkpSYiISE5KEiIikpOShIiI5KQkISIiOSlJiIhITkoSIiKSk5KEiIjk\n1OwkYWYdzewxM3vVzGaaWYcc5YaY2RIze83MRm/rfDPraWYbzez5ZPtdc2MUEZF00tQkLgMec/d+\nwKxk/wvMrA0wARgC9AdGmNk+jTh/mbsPTLbzUsRYFqqqqmKHUDB0LeroWtTRtWi+NEniRGBK8nwK\ncFI9ZQ4lfOGvcPctwFRgWBPOl0bQ/wB1dC3q6FrU0bVovjRJorO7VyfPq4HO9ZTpBqzM2F+VHNvW\n+b2SpqYqMzsqRYwiIpJC24ZeNLPHgC71vHRl5o67u5l5PeWyj1k9x7LPfxuocPf3zexA4H4z29fd\nNzQUq4iItAJ3b9YGLAG6JM+7AkvqKTMImJGxfzkwurHnJ6/NBg6s57hr06ZNm7amb035rm+wJrEN\n04HTgeuSx/vrKfMM0NfMehJqCMOBEQ2db2a7Ae+7+2dm1hvoCyzP/sPubiliFxGRRrDkV3nTTzTr\nCEwDegArgFPc/QMz2wP4vbufkJQ7HhgHtAEmu/u12zj/u8AvgC1ADfCf7v7XZv8XiohIszU7SYiI\nSOkryhkOvbMKAAACe0lEQVTXuSbolSMzW2FmLyajwZ6KHU8+mdltZlZtZosyjjVqkmepyXEtxpjZ\nqoyJqUNixpgvZlZhZrPN7GUze8nMLkyOl91no4Fr0ejPRtHVJJIJekuBY4HVwNPACHdfHDWwSMzs\nDeAgd38vdiz5ZmZHAx8Dd7r7/smx64F33f365AfEru7+TxM9S02Oa3E1sMHdx0YNLs/MrAthUMwL\nZrYj8CxhHtYZlNlno4FrcQqN/GwUY02ioQl65aosO/HdfS7wftbhspykmeNaQBl+Ntz9HXd/IXn+\nMbCYMD+r7D4bDVwLaORnoxiTREMT9MqRA4+b2TNmdnbsYApAYyZ5lpMLzGyhmU0uh+aVbMnIyoHA\nk5T5ZyPjWvw9OdSoz0YxJoniah9rfUe6+0DgeOD8pNlBSAaDl/fnZSLQCxgArAFuiBtOfiXNK/cC\nF2VPxi23z0ZyLf5MuBYf04TPRjEmidVARcZ+BaE2UZbcfU3yuA74C6E5rpxVJ+2wmFlXYG3keKJx\n97WeAG6ljD4bZtaOkCD+4O61c7jK8rORcS3+WHstmvLZKMYk8fkEPTNrT5igNz1yTFGY2ZfNbKfk\n+VeAfwUWNXxWyaudpAm5J3mWheSLsNbJlMlnw8wMmAy84u7jMl4qu89GrmvRlM9G0Y1ugtwT9MqN\nmfUi1B4grMN1VzldCzO7GxgM7EZoY/5P4AHqmaQZK8Z8qedaXA1UEpoTHHgDGJXRJl+ykkVB5wAv\nUtekdDnwFGX22chxLa4grHzRqM9GUSYJERHJj2JsbhIRkTxRkhARkZyUJEREJCclCRERyUlJQkRE\nclKSEBGRnJQkREQkJyUJERHJ6f8DtWlsKehkhyUAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to use the same FMRI image and stimulus file as last week." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import nibabel and load the image `ds114_sub009_t2r1.nii`. Get the number of TRs from the image shape." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Load 'ds114_sub009_t2r1.nii' with nibabel\n", "# Get number of TRs from the image shape\n", "import nibabel as nib\n", "img = nib.load('ds114_sub009_t2r1.nii')\n", "img.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "(64, 64, 30, 173)" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the IPython `?` at the end of the function name to check the arguments needed for `stimuli.events2neural`. (Where does the help text come from?)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Use question mark to get help for stimuli.events2neural\n", "#: stimuli.events2neural?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The stimulus file is `ds114_sub009_t2r1_cond.txt`.\n", "\n", "The TR for this run was 2.5 seconds." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# - TR for this run\n", "tr = 2.5" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the `stimuli.events2neural` function to load this stimulus file and create a neural time-course prediction for this run. Plot the prediction.\n", "\n", "If you get an error here - call your friendly instructor. Maybe you didn't fix the bug from the first exercise?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Create neural time course prediction with \"events2neural\" function\n", "# Plot the prediction\n", "neural_prediction = stimuli.events2neural('ds114_sub009_t2r1_cond.txt', tr, img.shape[-1])\n", "plt.plot(neural_prediction)\n", "plt.ylim(0, 1.2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "(0, 1.2)" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Drop the first volume" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you remember, this run has a very strange first volume. Load the image data into an array. Drop the first volume from the image data. Drop the first element from the neural prediction." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Load the image data into an array\n", "# Drop the first volume from the data array\n", "# Drop the first element from the neural prediction vector\n", "data = img.get_data()\n", "fixed_data = data[..., 1:]\n", "fixed_neural = neural_prediction[1:]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Making the hemodynamic prediction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to use our new convolution skills to make a hemodynamic prediction from the neural prediction.\n", "\n", "To convolve, we need to sample the HRF at times matching the TRs.\n", "\n", "Make a time vector from 0 to 25 in steps of the TR (2.5). Sample the SPM HRF at these times. Plot to check it looks OK." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make time vector to take HRF samples (0 to 25 in steps of TR)\n", "# Sample SPM HRF at these times\n", "# Plot the samples against time\n", "sample_times = np.arange(0, 25, 2.5)\n", "hrf_samples = spm_funcs.spm_hrf(sample_times)\n", "plt.plot(sample_times, hrf_samples)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Convolve the fixed (dropped first value) neural predictor with the HRF samples. \n", "\n", "Drop the last (M-1) set of values which are the tail of the convolution (where `M = len(hrf_samples)`). Plot." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Convolve the fixed neural predictor with the HRF samples\n", "# Drop the tail of the convolution result so your hemodynamic\n", "# prediction is the same length as the neural prediction.\n", "# Plot\n", "convolved = np.convolve(fixed_neural, hrf_samples)\n", "hemodynamic = convolved[:len(fixed_neural)]\n", "plt.plot(hemodynamic)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regressing the voxel time-course against the prediction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to use the same voxel time course as last week.\n", "\n", "That was the voxel with coordinates (45, 43, 14).\n", "\n", "Use slicing into the (fixed, first volume dropped) image data to get the voxel value for this voxel, for every time point (volume).\n", "\n", "Call this vector of voxel values `y` (our data vector)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Get the values for voxel coordinate (45, 43, 14) and every volume\n", "# Plot the values (voxel time course)\n", "y = fixed_data[45, 43, 14, :]\n", "plt.plot(y)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to do simple linear regression, regressing the data `y` against the hemodynamic prediction." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As experienced regressers, we first do a scatterplot of the data `y` on the y-axis, against the hemodynamic prediction on the x-axis. Remember you will need to use not-default marker to get a scatter plot, instead of points joined by lines." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Do a scatter plot of the data against the hemodynamic predictor\n", "plt.plot(hemodynamic, y, '+')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make `X` be a 2D array of 1s, with first dimension length that is the length of `y`, and second dimension length of 2." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# 2D array 'X' that will be our design matrix\n", "# An array of 1s shape (N, 2) where N = the length of y\n", "X = np.ones((len(y), 2))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fill the first column in `X` with the hemodynamic prediction values.\n", "\n", "Use `plt.imshow` to show the first 40 rows of the design as an image (if you show the whole thing, it will be too long and narrow to see what's going on)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Put hemodynamic prediction into first column of X\n", "# Show the first 40 rows of the design matrix X as an image\n", "X[:, 0] = hemodynamic\n", "plt.imshow(X[:40], cmap='gray', interpolation='nearest')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the `npl.pinv` function to get the pseudo-inverse of the design `X`. Take the matrix multiplication (dot product) of this pseudo-inverse with the data `y` to get the estimated parameters `B`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Using numpy.linalg 'pinv' operator to get pseudo-inverse of the design\n", "# Get B by taking dot product of pseudo-inverse with the data y\n", "B = npl.pinv(X).dot(y)\n", "B" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "array([ 19.72782935, 2344.60385078])" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first value of `B` is the slope (parameter for the hemodynamic regressor), and the second is the intercept (parameter for the column of ones).\n", "\n", "The *predicted data* $\\hat{y}$ is given by $X B$ - the matrix multiplication of the design `X` on the beta estimates `B`. Calculate the predicted data `y_hat`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Use X and B to make predicted data y_hat\n", "y_hat = X.dot(B)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Repeat the scatterplot of the data `y` against the hemodynamic prediction values.\n", "\n", "On the same plot, plot the `y_hat` values against the hemodynamic prediction values. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Repeat scatterplot of the data y against the hemodynamic predictor\n", "# On the same plot, plot the values for my_line(x) against the hemodynamic predictor\n", "plt.plot(hemodynamic, y, '+')\n", "plt.plot(hemodynamic, y_hat)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The residuals are just the data `y` minus the predicted data `y_hat`. Calculate the residuals, and show the standard deviation of the residuals:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate the residuals E by subtracing the prediction from the data\n", "# Calculate the standard deviation of the residuals\n", "E = y - y_hat\n", "np.std(E)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "memmap(25.72736744062518)" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Improving the model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking again at the data scatterplot, it seems that there is a linear drift of the signal over time.\n", "\n", "Maybe we can put in an extra regressor to remove that effect." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a new regressor, the same length as `y`, with values increasing linearly from the first to the last value. For example, you could do this by using `np.linspace` to get N = (length of y) samples between -1 and 1." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make a regressor that increases linearly from the first to the last value\n", "linear = np.linspace(-1, 1, len(y))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a new design matrix `X_better` of 1s, with shape N, 3, where N is the length of `y`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make 2D array X_better with shape (length of y, 3)\n", "X_better = np.ones((len(y), 3))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fill the first column of `X_better` with the hemodynamic prediction as before.\n", "\n", "Fill the second column with the new linear regressor.\n", "\n", "Show the first 40 rows of the design as an image." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Set first column of X_better as hemodynamic prediction.\n", "# Set second column of X_better as linear regressor.\n", "# Show the first 40 rows of the design as an image.\n", "X_better[:, 0] = hemodynamic\n", "X_better[:, 1] = linear\n", "plt.imshow(X_better[:40], cmap='gray', interpolation='nearest')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use `pinv` to fit this new design `X_better` to the data `y`, giving parameter vector `B_better`. Print the new `B_better` parameters:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Use pinv to estimate best fit parameter vector B for this design\n", "# Print the parameters\n", "B_better = npl.pinv(X_better).dot(y)\n", "B_better" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "array([ 17.20561032, -34.16623799, 2345.83563217])" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameters are (in order):\n", "\n", "* slope for hemodynamic regressor;\n", "* slope for linear trend regressor;\n", "* intercept.\n", "\n", "Is the slope for the linear trend (second parameter) negative or positive? Why?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the new predicted values `y_hat`. Calculate the new residuals. Has the standard deviation of the residuals gone up or down?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate predicted data y_hat.\n", "# Calculate residuals\n", "# Show standard deviation of residuals\n", "y_hat = X_better.dot(B_better)\n", "E = y - y_hat\n", "np.std(E)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "memmap(16.42808837342474)" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Contrasts and the t-statistic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you remember, contrasts are vectors that combine parameters. We use them to test hypotheses about the parameters.\n", "\n", "For example, maybe we want to test if the slope for the hemodynamic predictor is significantly different from zero.\n", "\n", "The contrast $[1, 0, 0]$ will select the first parameter, when you do the dot product of the contrast with the parameter vector `B_better`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# - contrast to select first parameter (of 3)\n", "c = np.array([1, 0, 0])\n", "c" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "array([1, 0, 0])" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Take the dot product of `c` with the parameter vector `B_better`. This is `1 * B_better[0] + 0 * B_better[1] + 0 * B_better[2]` == `B_better[0]`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# t_top = dot product of c with B_better\n", "t_top = c.dot(B_better)\n", "t_top" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "17.205610322002929" ] } ], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have the top half of the t-statistic. The formula for the t-statistic is:\n", "\n", "$$\n", "t = \\frac{c^T \\hat\\beta}{\\sqrt{\\mathrm{var}(c^T \\hat\\beta)}}\n", "$$\n", "\n", "where $\\mathrm{var}(c^T \\hat\\beta)$ is the expected variance for $c^T \\hat\\beta$.\n", "\n", "The expected variance - it turns out - works out to this (see the denominator):\n", "\n", "$$\n", "t = \\frac{c^T \\hat\\beta}{\\sqrt{\\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$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, our next job is calculate $\\hat{\\sigma}^2$. This is our estimate of the variance in the residuals. The best estimate is given by the *residual sum of squares* ($\\sum_{i=1}^n{e_i^2}$) divided by the *degrees of freedom*. The *degrees of freedom* in our case are the number of observations (== number of rows == `len(y)`) minus the number of independent columns in the design matrix `X_better`. In fact all three columns in the design are independent from each other, so the number of independent columns is 3.\n", "\n", "Calculate the residual sum of squares, and divide by the degrees of freedom to give `sigma_2_hat`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate the residual sum of squares = rss\n", "# Calculate the degrees of freedom = df\n", "# Divide the rss by df to give the estimated sigma squared\n", "rss = np.sum(E ** 2)\n", "df = len(y) - 3\n", "sigma_2_hat = rss / df\n", "sigma_2_hat" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "memmap(274.67289389390027)" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we need $c^T (X^T X)^+ c$.\n", "\n", "$(X^T X)^+$ is just the `pinv` of the dot product of `X_better.T` with `X_better`. This gives a measure of the covariation of the design columns. Calculate that:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate pseudoinverse of (X.T X) where X is X_better\n", "# Call the result pXtX\n", "# Display pXtX\n", "pXtX = npl.pinv(X_better.T.dot(X_better))\n", "pXtX" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "array([[ 0.02256102, 0.00127805, -0.01101817],\n", " [ 0.00127805, 0.01731262, -0.00062416],\n", " [-0.01101817, -0.00062416, 0.01119492]])" ] } ], "prompt_number": 31 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now take the dot product of `c`, onto `pXtX`, and the dot product of the result, onto `c` again. This might be called `bcov` - referring to the covariance of the beta (parameter) estimates." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Calculate bcov = c (X.T X)+ c, and display it\n", "bcov = c.dot(pXtX).dot(c)\n", "bcov" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "0.022561023805170197" ] } ], "prompt_number": 32 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the top-left value from the `pXtX` array. Is it obvious why, from the matrix multiplication with the `c` vector?\n", "\n", "Now we can make the bottom half of the t statistic, by taking the square root of (`sigma_2_hat * bcov`)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Square root of sigma_2_hat * c (X.T X)+ c\n", "t_bottom = np.sqrt(sigma_2_hat * bcov)\n", "t_bottom" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "memmap(2.489357687793233)" ] } ], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we get the t statistic by dividing the top by the bottom:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Divide t_top by t_bottom\n", "t_top / t_bottom" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "6.9116665742219494" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check that with the `t_stat` function from the [GLM introduction page](http://perrin.dynevor.org/glm_intro.html).\n", "\n", "Here is the `t_stat` function:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Get t distribution code from scipy library\n", "from scipy.stats import t as t_dist\n", "\n", "def t_stat(y, X, c):\n", " \"\"\" betas, t statistic and significance test given data, design matrix, contrast\n", " \n", " This is OLS estimation; we assume the errors to have independent\n", " and identical normal distributions around zero for each $i$ in \n", " $\\e_i$ (i.i.d).\n", " \"\"\"\n", " # Make sure y, X, c are all arrays\n", " y = np.asarray(y)\n", " X = np.asarray(X)\n", " c = np.atleast_2d(c).T # As column vector\n", " # Calculate the parameters - b hat\n", " beta = npl.pinv(X).dot(y)\n", " # The fitted values - y hat\n", " fitted = X.dot(beta)\n", " # Residual error\n", " errors = y - fitted\n", " # Residual sum of squares\n", " RSS = (errors**2).sum(axis=0)\n", " # Degrees of freedom is the number of observations n minus the number\n", " # of independent regressors we have used. If all the regressor \n", " # columns in X are independent then the (matrix rank of X) == p\n", " # (where p the number of columns in X). If there is one column that \n", " # can be expressed as a linear sum of the other columns then \n", " # (matrix rank of X) will be p - 1 - and so on.\n", " df = X.shape[0] - npl.matrix_rank(X)\n", " # Mean residual sum of squares\n", " MRSS = RSS / df\n", " # calculate bottom half of t statistic\n", " SE = np.sqrt(MRSS * c.T.dot(npl.pinv(X.T.dot(X)).dot(c)))\n", " t = c.T.dot(beta) / SE\n", " # Get p value for t value using cumulative density dunction\n", " # (CDF) of t distribution \n", " ltp = t_dist.cdf(t, df) # lower tail p\n", " p = 1 - ltp # upper tail p\n", " return beta, t, df, p" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 35 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Call the `t_stat` function, passing the data, design and contrast, and see if you get back the same t-statistic that you calculated before:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Try getting the B vector, t-statistic, df, and p value from this function\n", "# Check you get the same t value as you calculated above\n", "b, t, df, p = t_stat(y, X_better, c)\n", "t" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "array([[ 6.91166657]])" ] } ], "prompt_number": 36 } ], "metadata": {} } ] }