Created
September 9, 2013 16:58
-
-
Save jseabold/6498442 to your computer and use it in GitHub Desktop.
Try to replicate some spatial autocorrelation statistics.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "import pandas as pd" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 179 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Example from http://www.nku.edu/~longa/geomed/ppa/doc/globals/Globals.htm" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "dta = pd.read_csv(\"https://gist.github.com/jseabold/6498405/raw/151423fa64807e3d6abe5701b68b254d84c6c1e1/hepatitis.csv\")" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 180 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "dta" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "html": [ | |
| "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>County</th>\n", | |
| " <th>X</th>\n", | |
| " <th>Y</th>\n", | |
| " <th>Rate</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0 </th>\n", | |
| " <td> Alameda</td>\n", | |
| " <td> 195</td>\n", | |
| " <td> 500</td>\n", | |
| " <td> 14.4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1 </th>\n", | |
| " <td> Alpine</td>\n", | |
| " <td> 318</td>\n", | |
| " <td> 560</td>\n", | |
| " <td> 0.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2 </th>\n", | |
| " <td> Amador</td>\n", | |
| " <td> 265</td>\n", | |
| " <td> 550</td>\n", | |
| " <td> 12.1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3 </th>\n", | |
| " <td> Butte</td>\n", | |
| " <td> 220</td>\n", | |
| " <td> 630</td>\n", | |
| " <td> 52.9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4 </th>\n", | |
| " <td> Calaveras</td>\n", | |
| " <td> 280</td>\n", | |
| " <td> 530</td>\n", | |
| " <td> 22.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5 </th>\n", | |
| " <td> Colusa</td>\n", | |
| " <td> 195</td>\n", | |
| " <td> 598</td>\n", | |
| " <td> 23.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6 </th>\n", | |
| " <td> Contra Costa</td>\n", | |
| " <td> 192</td>\n", | |
| " <td> 515</td>\n", | |
| " <td> 12.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7 </th>\n", | |
| " <td> Del Norte</td>\n", | |
| " <td> 100</td>\n", | |
| " <td> 790</td>\n", | |
| " <td> 301.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8 </th>\n", | |
| " <td> El Dorado</td>\n", | |
| " <td> 260</td>\n", | |
| " <td> 580</td>\n", | |
| " <td> 32.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9 </th>\n", | |
| " <td> Fresno</td>\n", | |
| " <td> 320</td>\n", | |
| " <td> 425</td>\n", | |
| " <td> 53.9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td> Glenn</td>\n", | |
| " <td> 180</td>\n", | |
| " <td> 630</td>\n", | |
| " <td> 35.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td> Humboldt</td>\n", | |
| " <td> 90</td>\n", | |
| " <td> 705</td>\n", | |
| " <td> 100.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td> Imperial</td>\n", | |
| " <td> 648</td>\n", | |
| " <td> 56</td>\n", | |
| " <td> 66.3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <td> Inyo</td>\n", | |
| " <td> 450</td>\n", | |
| " <td> 403</td>\n", | |
| " <td> 29.3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>14</th>\n", | |
| " <td> Kern</td>\n", | |
| " <td> 396</td>\n", | |
| " <td> 256</td>\n", | |
| " <td> 41.2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>15</th>\n", | |
| " <td> Kings</td>\n", | |
| " <td> 315</td>\n", | |
| " <td> 380</td>\n", | |
| " <td> 21.9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>16</th>\n", | |
| " <td> Lake</td>\n", | |
| " <td> 155</td>\n", | |
| " <td> 597</td>\n", | |
| " <td> 39.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <td> Lassen</td>\n", | |
| " <td> 270</td>\n", | |
| " <td> 710</td>\n", | |
| " <td> 59.2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>18</th>\n", | |
| " <td> Los Angeles</td>\n", | |
| " <td> 436</td>\n", | |
| " <td> 168</td>\n", | |
| " <td> 21.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <td> Madera</td>\n", | |
| " <td> 315</td>\n", | |
| " <td> 455</td>\n", | |
| " <td> 45.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>20</th>\n", | |
| " <td> Marin</td>\n", | |
| " <td> 175</td>\n", | |
| " <td> 510</td>\n", | |
| " <td> 20.2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21</th>\n", | |
| " <td> Mariposa</td>\n", | |
| " <td> 305</td>\n", | |
| " <td> 485</td>\n", | |
| " <td> 10.4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <td> Mendocino</td>\n", | |
| " <td> 125</td>\n", | |
| " <td> 602</td>\n", | |
| " <td> 27.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <td> Merced</td>\n", | |
| " <td> 285</td>\n", | |
| " <td> 470</td>\n", | |
| " <td> 16.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>24</th>\n", | |
| " <td> Modoc</td>\n", | |
| " <td> 265</td>\n", | |
| " <td> 765</td>\n", | |
| " <td> 59.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25</th>\n", | |
| " <td> Mono</td>\n", | |
| " <td> 380</td>\n", | |
| " <td> 515</td>\n", | |
| " <td> 31.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>26</th>\n", | |
| " <td> Monterey</td>\n", | |
| " <td> 212</td>\n", | |
| " <td> 415</td>\n", | |
| " <td> 26.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>27</th>\n", | |
| " <td> Napa</td>\n", | |
| " <td> 185</td>\n", | |
| " <td> 545</td>\n", | |
| " <td> 23.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>28</th>\n", | |
| " <td> Nevada</td>\n", | |
| " <td> 255</td>\n", | |
| " <td> 610</td>\n", | |
| " <td> 13.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>29</th>\n", | |
| " <td> Orange</td>\n", | |
| " <td> 468</td>\n", | |
| " <td> 112</td>\n", | |
| " <td> 17.3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>30</th>\n", | |
| " <td> Placer</td>\n", | |
| " <td> 270</td>\n", | |
| " <td> 595</td>\n", | |
| " <td> 50.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>31</th>\n", | |
| " <td> Plumas</td>\n", | |
| " <td> 272</td>\n", | |
| " <td> 660</td>\n", | |
| " <td> 34.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>32</th>\n", | |
| " <td> Riverside</td>\n", | |
| " <td> 600</td>\n", | |
| " <td> 120</td>\n", | |
| " <td> 46.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>33</th>\n", | |
| " <td> Sacramento</td>\n", | |
| " <td> 235</td>\n", | |
| " <td> 548</td>\n", | |
| " <td> 43.1</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>34</th>\n", | |
| " <td> San Benito</td>\n", | |
| " <td> 220</td>\n", | |
| " <td> 430</td>\n", | |
| " <td> 25.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>35</th>\n", | |
| " <td> San Bernadino</td>\n", | |
| " <td> 584</td>\n", | |
| " <td> 216</td>\n", | |
| " <td> 33.7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>36</th>\n", | |
| " <td> San Diego</td>\n", | |
| " <td> 544</td>\n", | |
| " <td> 52</td>\n", | |
| " <td> 22.4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>37</th>\n", | |
| " <td> San Fransisco</td>\n", | |
| " <td> 185</td>\n", | |
| " <td> 503</td>\n", | |
| " <td> 78.2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>38</th>\n", | |
| " <td> San Joaquin</td>\n", | |
| " <td> 236</td>\n", | |
| " <td> 520</td>\n", | |
| " <td> 30.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>39</th>\n", | |
| " <td> San Luis Obispo</td>\n", | |
| " <td> 272</td>\n", | |
| " <td> 260</td>\n", | |
| " <td> 11.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>40</th>\n", | |
| " <td> San Mateo</td>\n", | |
| " <td> 190</td>\n", | |
| " <td> 490</td>\n", | |
| " <td> 26.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>41</th>\n", | |
| " <td> Santa Barbara</td>\n", | |
| " <td> 300</td>\n", | |
| " <td> 200</td>\n", | |
| " <td> 24.4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>42</th>\n", | |
| " <td> Santa Clara</td>\n", | |
| " <td> 202</td>\n", | |
| " <td> 475</td>\n", | |
| " <td> 14.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>43</th>\n", | |
| " <td> Santa Cruz</td>\n", | |
| " <td> 200</td>\n", | |
| " <td> 450</td>\n", | |
| " <td> 27.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>44</th>\n", | |
| " <td> Shasta</td>\n", | |
| " <td> 197</td>\n", | |
| " <td> 712</td>\n", | |
| " <td> 197.5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>45</th>\n", | |
| " <td> Sierra</td>\n", | |
| " <td> 275</td>\n", | |
| " <td> 630</td>\n", | |
| " <td> 78.4</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>46</th>\n", | |
| " <td> Siskiyou</td>\n", | |
| " <td> 180</td>\n", | |
| " <td> 782</td>\n", | |
| " <td> 75.9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>47</th>\n", | |
| " <td> Solano</td>\n", | |
| " <td> 192</td>\n", | |
| " <td> 540</td>\n", | |
| " <td> 23.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>48</th>\n", | |
| " <td> Sonoma</td>\n", | |
| " <td> 170</td>\n", | |
| " <td> 535</td>\n", | |
| " <td> 24.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>49</th>\n", | |
| " <td> Stanislaus</td>\n", | |
| " <td> 265</td>\n", | |
| " <td> 491</td>\n", | |
| " <td> 26.8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>50</th>\n", | |
| " <td> Sutter</td>\n", | |
| " <td> 210</td>\n", | |
| " <td> 590</td>\n", | |
| " <td> 32.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>51</th>\n", | |
| " <td> Tehama</td>\n", | |
| " <td> 193</td>\n", | |
| " <td> 680</td>\n", | |
| " <td> 58.3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>52</th>\n", | |
| " <td> Trinity</td>\n", | |
| " <td> 140</td>\n", | |
| " <td> 702</td>\n", | |
| " <td> 75.0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>53</th>\n", | |
| " <td> Tulare</td>\n", | |
| " <td> 365</td>\n", | |
| " <td> 385</td>\n", | |
| " <td> 30.3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>54</th>\n", | |
| " <td> Tuolumne</td>\n", | |
| " <td> 303</td>\n", | |
| " <td> 515</td>\n", | |
| " <td> 20.7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>55</th>\n", | |
| " <td> Ventura</td>\n", | |
| " <td> 372</td>\n", | |
| " <td> 176</td>\n", | |
| " <td> 16.2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>56</th>\n", | |
| " <td> Yolo</td>\n", | |
| " <td> 205</td>\n", | |
| " <td> 570</td>\n", | |
| " <td> 30.6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>57</th>\n", | |
| " <td> Yuba</td>\n", | |
| " <td> 228</td>\n", | |
| " <td> 604</td>\n", | |
| " <td> 79.8</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 181, | |
| "text": [ | |
| " County X Y Rate\n", | |
| "0 Alameda 195 500 14.4\n", | |
| "1 Alpine 318 560 0.0\n", | |
| "2 Amador 265 550 12.1\n", | |
| "3 Butte 220 630 52.9\n", | |
| "4 Calaveras 280 530 22.6\n", | |
| "5 Colusa 195 598 23.8\n", | |
| "6 Contra Costa 192 515 12.5\n", | |
| "7 Del Norte 100 790 301.5\n", | |
| "8 El Dorado 260 580 32.0\n", | |
| "9 Fresno 320 425 53.9\n", | |
| "10 Glenn 180 630 35.0\n", | |
| "11 Humboldt 90 705 100.5\n", | |
| "12 Imperial 648 56 66.3\n", | |
| "13 Inyo 450 403 29.3\n", | |
| "14 Kern 396 256 41.2\n", | |
| "15 Kings 315 380 21.9\n", | |
| "16 Lake 155 597 39.5\n", | |
| "17 Lassen 270 710 59.2\n", | |
| "18 Los Angeles 436 168 21.0\n", | |
| "19 Madera 315 455 45.0\n", | |
| "20 Marin 175 510 20.2\n", | |
| "21 Mariposa 305 485 10.4\n", | |
| "22 Mendocino 125 602 27.5\n", | |
| "23 Merced 285 470 16.6\n", | |
| "24 Modoc 265 765 59.8\n", | |
| "25 Mono 380 515 31.6\n", | |
| "26 Monterey 212 415 26.6\n", | |
| "27 Napa 185 545 23.8\n", | |
| "28 Nevada 255 610 13.8\n", | |
| "29 Orange 468 112 17.3\n", | |
| "30 Placer 270 595 50.8\n", | |
| "31 Plumas 272 660 34.6\n", | |
| "32 Riverside 600 120 46.5\n", | |
| "33 Sacramento 235 548 43.1\n", | |
| "34 San Benito 220 430 25.0\n", | |
| "35 San Bernadino 584 216 33.7\n", | |
| "36 San Diego 544 52 22.4\n", | |
| "37 San Fransisco 185 503 78.2\n", | |
| "38 San Joaquin 236 520 30.5\n", | |
| "39 San Luis Obispo 272 260 11.8\n", | |
| "40 San Mateo 190 490 26.6\n", | |
| "41 Santa Barbara 300 200 24.4\n", | |
| "42 Santa Clara 202 475 14.8\n", | |
| "43 Santa Cruz 200 450 27.8\n", | |
| "44 Shasta 197 712 197.5\n", | |
| "45 Sierra 275 630 78.4\n", | |
| "46 Siskiyou 180 782 75.9\n", | |
| "47 Solano 192 540 23.6\n", | |
| "48 Sonoma 170 535 24.6\n", | |
| "49 Stanislaus 265 491 26.8\n", | |
| "50 Sutter 210 590 32.6\n", | |
| "51 Tehama 193 680 58.3\n", | |
| "52 Trinity 140 702 75.0\n", | |
| "53 Tulare 365 385 30.3\n", | |
| "54 Tuolumne 303 515 20.7\n", | |
| "55 Ventura 372 176 16.2\n", | |
| "56 Yolo 205 570 30.6\n", | |
| "57 Yuba 228 604 79.8" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 181 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Assume they are using Euclidean distance of these points." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from scipy import spatial" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 182 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "W = spatial.distance.cdist(dta[[\"X\", \"Y\"]], dta[[\"X\", \"Y\"]])" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 183 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "import pysal" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 184 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "morans = []\n", | |
| "gearys = []\n", | |
| "for i in range(50, 251, 50):\n", | |
| " incrW = W.copy()\n", | |
| " # zero out observations not in increments\n", | |
| " incrW[(incrW > i)] = 0.\n", | |
| " # get inverse distance squared\n", | |
| " invW = 1/incrW**2\n", | |
| " invW[np.isinf(invW)] = 0\n", | |
| " \n", | |
| " # convert to pysal weights\n", | |
| " Weights = pysal.weights.full2W(incrW)\n", | |
| " if Weights.islands:\n", | |
| " print \"Distance %d had islands.\" % i\n", | |
| " morans.append(pysal.Moran(dta.Rate.values, Weights, transformation='O'))\n", | |
| " gearys.append(pysal.Geary(dta.Rate.values, Weights, transformation='O'))" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "WARNING: there are 19 disconnected observations\n", | |
| "Island ids: [7, 11, 12, 13, 14, 17, 18, 24, 25, 29, 32, 35, 36, 39, 41, 46, 52, 53, 55]\n", | |
| "Distance 50 had islands.\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 185 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "for m in morans:\n", | |
| " print m.I, m.EI, m.VI_norm, m.z_norm" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "0.087154370541 -0.0175438596491 0.00978953353049 1.05817705762\n", | |
| "0.153129099135 -0.0175438596491 0.0020136343624 3.80342109226\n", | |
| "0.137899510164 -0.0175438596491 0.000848323094094 5.33693062726\n", | |
| "0.0692484969164 -0.0175438596491 0.000558927324912 3.67116419822\n", | |
| "0.0286188042012 -0.0175438596491 0.000451622043023 2.17221744223\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 186 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "for g in gearys:\n", | |
| " print g.C, g.EC, g.VC_norm, g.z_norm" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "0.196128720063 1.0 0.0378752769503 -4.13055685366\n", | |
| "0.382786441472 1.0 0.0161432874978 -4.85779817252\n", | |
| "0.432497164055 1.0 0.00936318071842 -5.86484222455\n", | |
| "0.61026934039 1.0 0.0059026178373 -5.07273575029\n", | |
| "0.827980766006 1.0 0.00397281092093 -2.72915411793\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 187 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Example from http://support.sas.com/kb/22/944.html" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "from StringIO import StringIO" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 188 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "dta = pd.read_table(StringIO(\"\"\"13.6 33.4 17.4906\\n 116.6 40.9 17.9709\\n 86.0 215.3 17.0232\n", | |
| " 248.1 266.9 18.8413\\n 40.2 149.3 17.6422\\n 249.9 219.5 18.4011\n", | |
| " 298.6 19.8 18.3800\\n 161.6 262.3 18.6537\\n 165.9 204.9 18.8376\n", | |
| " 236.3 249.9 18.2338\\n 141.5 108.1 18.3977\\n 253.0 156.4 18.8378\n", | |
| " 218.6 81.2 18.6493\\n 46.5 77.8 17.7590\\n 292.8 47.7 18.5304\n", | |
| " 83.0 164.0 17.7159\\n 110.8 225.6 17.9139\\n 202.9 189.1 18.7072\n", | |
| " 199.5 17.5 18.8718\\n 103.7 158.7 17.9594\\n 184.7 252.5 18.6570\n", | |
| " 76.0 200.3 16.9481\\n 51.5 35.6 17.7746\\n 158.1 220.3 18.4775\n", | |
| " 230.9 55.0 18.9772\\n 158.5 226.4 18.3128\\n 252.8 131.5 18.6633\n", | |
| " 61.2 20.6 17.8255\\n 279.6 212.6 19.0338\\n 294.1 42.3 18.6408\n", | |
| " 80.9 82.3 17.6355\\n 124.8 253.5 18.3031\\n 18.0 286.4 17.7586\n", | |
| " 229.7 154.7 18.5950\\n 71.8 47.0 17.9481\\n 280.9 210.9 19.1626\n", | |
| " 92.9 125.8 17.6257\\n 28.6 275.5 17.5359\\n 186.4 111.7 18.5684\n", | |
| " 16.1 167.7 17.8476\\n 114.9 130.2 17.7519\\n 140.7 272.4 18.1968\n", | |
| " 122.5 155.3 17.7771\\n 63.8 259.7 17.4883\\n 262.1 12.3 18.5385\n", | |
| " 257.6 262.2 18.9482\\n 128.8 229.1 17.9638\\n 269.8 15.9 18.4247\n", | |
| " 288.6 236.9 18.6137\\n 124.5 130.2 17.9114\\n 7.3 117.2 17.3567\n", | |
| " 153.0 299.9 18.0288\\n 75.8 85.2 17.5313\\n 67.9 247.3 17.6824\n", | |
| " 81.7 199.0 17.2191\\n 275.3 260.2 18.9168\\n 180.6 39.6 18.6395\n", | |
| " 28.8 10.3 17.6430\\n 217.2 76.1 18.7481\\n 282.4 95.2 18.0833\n", | |
| " 143.0 196.7 18.5825\\n 42.0 245.1 17.2660\\n 179.1 187.1 18.6990\n", | |
| " 41.3 134.6 17.5906\\n 217.0 130.8 18.6883\\n 166.1 152.1 18.5032\n", | |
| " 186.4 59.2 18.9922\\n 264.9 294.8 18.3716\\n 228.6 42.1 18.7740\n", | |
| " 214.1 38.5 19.0145\\n 123.5 66.2 18.5217\\n 26.3 20.4 17.4753\n", | |
| " 39.7 78.8 17.6835\\n 113.8 247.1 18.0232\\n 225.0 63.3 18.8826\n", | |
| " 242.4 29.8 19.0110\\n 260.5 158.1 18.7582\\n 297.8 270.0 19.0336\n", | |
| " 111.8 90.1 18.2008\\n 79.6 43.7 17.7467\\n 102.8 90.7 18.0879\n", | |
| " 51.1 184.0 17.4158\\n 216.3 85.0 18.7803\\n 11.7 261.0 17.5346\n", | |
| " 291.6 265.7 19.2310\\n 119.8 125.1 17.7093\\n 127.4 176.8 18.1153\n", | |
| " 152.7 74.3 18.5789\\n 202.1 70.3 18.7343\\n 67.7 218.1 17.0247\n", | |
| " 138.5 38.3 17.8701\\n 72.9 163.9 17.6970\\n 189.7 144.7 18.4584\n", | |
| " 144.3 121.6 18.3561\\n 120.7 246.9 18.0552\\n 216.6 22.4 19.3410\"\"\"),\n", | |
| " names=[\"Easting\", \"Northing\", \"daGSI\"],\n", | |
| " sep=\" +\")" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 189 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "dta[dta.columns[:3]].head()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "html": [ | |
| "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>Easting</th>\n", | |
| " <th>Northing</th>\n", | |
| " <th>daGSI</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td> 13.6</td>\n", | |
| " <td> 33.4</td>\n", | |
| " <td> 17.4906</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td> 116.6</td>\n", | |
| " <td> 40.9</td>\n", | |
| " <td> 17.9709</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td> 86.0</td>\n", | |
| " <td> 215.3</td>\n", | |
| " <td> 17.0232</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td> 248.1</td>\n", | |
| " <td> 266.9</td>\n", | |
| " <td> 18.8413</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td> 40.2</td>\n", | |
| " <td> 149.3</td>\n", | |
| " <td> 17.6422</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 190, | |
| "text": [ | |
| " Easting Northing daGSI\n", | |
| "0 13.6 33.4 17.4906\n", | |
| "1 116.6 40.9 17.9709\n", | |
| "2 86.0 215.3 17.0232\n", | |
| "3 248.1 266.9 18.8413\n", | |
| "4 40.2 149.3 17.6422" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 190 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "W = spatial.distance.cdist(dta[[\"Easting\", \"Northing\"]], dta[[\"Easting\", \"Northing\"]])" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 191 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "Weights = pysal.weights.full2W(W)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 192 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "m = pysal.Moran(dta.daGSI.values, Weights, transformation=\"O\")\n", | |
| "c = pysal.Geary(dta.daGSI.values, Weights, transformation=\"O\")" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 193 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "print m.I, m.EI, m.z_norm\n", | |
| "print c.C, c.EC, c.z_norm" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "-0.211963774449 -0.0105263157895 -33.3968831853\n", | |
| "1.23216336853 1.0 8.77001372913\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 194 | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment