Skip to content

Instantly share code, notes, and snippets.

Created February 15, 2018 12:03
Show Gist options
  • Save anonymous/3f45d777e951d0a80a851e40ebde8545 to your computer and use it in GitHub Desktop.
Save anonymous/3f45d777e951d0a80a851e40ebde8545 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy.optimize as opt\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import geopandas as gpd\n",
"import seaborn as sns\n",
"sns.set_context(\"notebook\")\n",
"import pysal as ps\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = pd.read_csv(ps.examples.get_path(\"GData_utm.csv\"))\n",
"coords = data[['X','Y']].values\n",
"y = data[['PctBach']].values\n",
"X = data[['PctFB', 'PctPov', 'PctBlack']].values"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<module 'gwr' from '/home/lw17329/Dropbox/dev/gwr/gwr/__init__.py'>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import gwr\n",
"import imp\n",
"imp.reload(gwr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In all following plots, the objective function for the bandwidth is plotted, with bandwidth on `X` and the \"score,\" AICc, AIC, BIC, or CV, on the Y. It's in red. \n",
"\n",
"The \"found\" solutions are shown in black for our pure-python defaults. Scipy solutions are in blue. Green is what is in the test before changing the bound defaults. If they coincide, only the blue line will show. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `test_golden_fixed_AICc`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Both methods find nearly the same minimum."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"fixed_bisquare = gwr.sel_bw.Sel_BW(coords, y, X, kernel='bisquare', fixed=True)\n",
"aiccbw = fixed_bisquare.search(criterion='AICc')\n",
"aiccbw_ = fixed_bisquare.search(criterion='AICc', search='scipy')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD/CAYAAADytG0IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xd4VNXWx/HvIrTQIQEldEUgIUSk\nWmgiFxBRQAQVEWxcVF7BBnKVZr8K14oXkCtgwQIiAhZABcQK0qSJEAWUXkJCb5n1/nFOYiCBTHCS\nM5lZn+eZJ5M9Z/asSchvNvucs4+oKsYYY0JfAa8LMMYYkzcs8I0xJkxY4BtjTJiwwDfGmDBhgW+M\nMWHCAt8YY8KEBb4xxoQJC3xjjAkTFvjGGBMmCnpdQEbR0dFavXp1r8swxph8ZenSpXtUtXx22wVV\n4FevXp0lS5Z4XYYxxuQrIrLZn+1sSscYY8KEBb4xxoQJC3xjjAkTFvjGGBMmLPCNMSZMWOAbY0yY\nsMA3xhiPqM+HJiWjGzajJ07m+usF1XH4xhiTX6kq7D8Ee/ZBUjLsTYa9KbA3Gd2bDEkpmdrZtx98\nPgBk2TS4sEqu1miBHwSqV6/OunXrKFq0aMD6/Prrr3nggQc4duwYCQkJvP322xQsWJApU6bw+OOP\no6oMGTKEHj16ADBo0CA++eQTIiMjmThxIgkJCel9ff/99zRr1ozDhw8zffp0nn766fTHtm7dyrhx\n4/joo49YvXp1evvGjRs5dOjQKTWNGDGCiRMnUrJkSQCmTZtG7dq107ePi4tj+fLl1KlTJ2A/B2P+\nDlWFfSmwK+mv25596K69zv3dSad+PXY8+04LFIBypSG6LNSuDuXKQFQZKFI419+PBX4eUVVEJM9e\nb+DAgXz44YdccMEF3HrrrcyaNYsOHTowZMgQFi1ahKrSsGFDunTpwurVq1m2bBlr1qxhwYIFDBw4\nkDlz5gCQmprK4MGDKVOmDAA333wzN998c/p7atSoEVdffTXdu3dPf+3vvvuO8ePHZ6pp165dTJw4\nkdatW2d67IEHHiAqKio3fhTGZKKpqU5Ab9sNO3bDtt3o9l2wYw/szBDmu5PgZOrZOytcCCqUg7gL\nna/RZSGqDBLlBnn6rbQT7mVKIgW8mU3Pd4Ef6NBU1bM+fuzYMW655RZWrlxJhQoVeP/996lcuTKT\nJ0/m2WefRUQYMWIEXbt2Zc6cOQwaNIhjx45x/fXX88wzzzBixAjmzZvH7t27Wbx4MfPnz2fw4MH4\nfD4GDBjAPffcA8CDDz7IwoULueCCC5gxY8Yp77NVq1ZUqlSJFStWULFiRaZOncrYsWM5efIkQ4cO\nZcGCBbzwwgvMnDkz/TmLFy8G4OTJkyQnJxMVFUViYiK1atWibNmyANSpU4fffvuNxYsX0759e0SE\nK6+8kl69eqX389prr9G5c2f++OOPTD+befPm0aBBg/QRe5qxY8dy9913Z9p+165dREdHZ2qfOXMm\nVatWJTk5+ay/C2P8oQcPw5Ydp4X5X/fZvtsJdXcqJUvFikL5cnBJrBPi5aOgQjmkfFmnvUI5qBDl\n3C9dIk8Hc39Hvgv8vPb5558TGRnJ+vXrefPNN5k+fTrdunVj3LhxLFu2jBMnTtC4cWO6dOnCqlWr\n+PLLL4mKiiIhIYEBAwYAkJCQwOjRozly5AgDBgxg0aJFlCxZksaNG6ePjLt27cp///tfWrZsydKl\nS2nUqNEpdXTp0oXJkyfz8MMP8+qrr3LLLbfQo0cPhg4dyuzZs+natWum2keOHMnIkSNp164dLVq0\nYOHChZQoUSL98dKlS5OUlMTevXupUKFCevvJk87Oo507d/L++++zcOFCXnnllUz9jxkzhkGDBp3S\ntnfvXtasWcMVV1yRaftdu3Zx7733sn//fnr27MmgQYM4cuQITz/9NHPmzKFz587+/lpMmFJVZ9T9\n5074czv8uQPdssO5/8cOJ+j37T9zB4ULQcXy0KSe87ViNFKxAsSUh/Od7zkvGilRLO/eVB7Kd4Gf\n3Yg80Bo0aMC//vUvhg8fTteuXUlISGDatGmsW7eOJk2aAHDw4EF2795Ns2bN6NatG/v27WPTpk3s\n27cPgPj4eABWrVpFfHx8erh+9913FC9eHCA9IGvUqMHevXsz1ZHWx0033cSTTz7JsGHD8Pl87Ny5\nk6+++opHHnkk03MGDhzIgAED6NSpE3Pnzs1yH0FWI5MC7n83Bw4cyFNPPUXBgpn/mWzfvp2NGzem\n/wzSTJgwgVtvvTWrHyUjR46kdu3aRERE0KJFC9q0acP06dPp27dv+pSRMZqUAhu3wsYtsHELunkb\n/OmG+ZadcPRY1k8sVhSqVIQGcVD5fKRSBTfUM9zKlc43o/HckO8CP69VrVqVxYsX89lnn9G3b1/u\nv/9+ChUqRKdOnTLNU7ds2ZJp06ZRt25dWrVqlamvQoUKnfKPrXTp0lm+5tk+1Hw+X/rjN9xwA2+8\n8QZRUVHp0zRppkyZQvfu3SlcuDDt2rVj+fLldOjQgZSUlPRt9u/fT3R0NGXLlj2lvXDhwuzatYuv\nvvqKlStXArBt2zaaNm3KsmXLiIiIYPz48dx+++2Z6p40aRILFy7M8j3VrFkzPdjbtm3L6tWrefvt\ntyldujSvvPIKiYmJdOnShblz51KlSu4erWC8oz6fM63ihrpu3JIh4LdC8hlG6NFloU4NJ9Srno9U\nPh+qnO98X+X8sA9zf1jgZ2Ps2LEcOHCAgQMHoqosWLCARx99lAEDBrBjxw6ioqIYNWoUgwcPZv/+\n/VSpUoWdO3fy66+/ZgruOnXqsG7dOnbt2kWZMmW46qqr+PDDD/2qY82aNdSpU4epU6fSuHFjALp3\n705CQgKjRo3KtP3TTz9NXFwc8fHx/PDDD9x6661cdNFFrFu3jj179hAREUFiYiIXXngh+/fvZ9Cg\nQQwcOJBvvvkm/X8hW7duTe+vevXqLFq0iIiICFJTU3nnnXfS9xOkmTt3LgkJCVnufBURLrvsMr77\n7jvKli3LDz/8QKdOndi0aVP6Nq1atWLs2LEW9iFCDx6GDZthw2Z0/SZYv8n5/vctWY/SixSGajHQ\ntB5cUAWpUQlqVIbqlZwRe7HAHcUWrizws9GjRw969+5NvXr1KFKkCJMnT6ZKlSo8++yztGrViuPH\nj9O/f//0nbcNGjSgatWqxMXFkZSUdEpfkZGRvPTSS7Rp04bjx4/zyCOPcN5552X5uomJibz++us8\n//zzAEyePJlhw4ZRsWLF9A+JGjVqUK1atSznvseNG0evXr04duwYrVu3pmPHjgA8++yztGjRAhHh\nqaeeonDhwjRt2pTGjRtTt25dSpQowaRJk876M5k1axaXXnpppmmYMWPG0L9//1PaHnvsMXr27Els\nbCwvvvgiV111FcePH6djx45cfvnlZ30dE/xU1dkB+utGWL8Z3bAJ1m+GDZuc6ZfTlSgGtWuAG+Zy\nQWUn1GtUhpjynh29Ei4kr+fEz6ZRo0ZqF0DJLG3ke/rx6YmJidx7773MnTvXo8pMONFDR2Dd77Am\nEV2TCGm3pJTMG8dUgFrVoVY1pFZ1uKia833F8jbtkgtEZKmqNspuOxvh51Off/45d955p99TQsb4\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8172679358>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"support = np.linspace(aiccbw_/2, aiccbw_*5, num=300)\n",
"plt.plot(support, [fixed_bisquare._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(aiccbw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(aiccbw))\n",
"plt.vlines(aiccbw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(aiccbw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `test_golden_fixed_AIC`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"both methods find a well-defined minimum"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"fixed_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=True)\n",
"aicbw = fixed_gaussian.search(criterion='AIC')\n",
"aicbw_ = fixed_gaussian.search(criterion='AIC', search='scipy')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nOH+k9Ys90OrUqUO/fv0YPHgwHTp0oGbNmnz88cds3ryZBg0aAHD06FH27t1LkyZN6NixIwcOHOCP\nP/7gwIEDAIm/jtevX09kZCTFihUD4IcffiB37twANG7cGHAa7tQaxoR93H333bz44osMGjQIn8/H\nnj17+Oabb+jbt2+y+lOmTKF79+7kz5+fAgUKkCdPHn777Te+/vprduzYwc6dO7nrrrv45ZdfGD58\nOD169KBAgQLJ9vHPY32+L/E/y5966ileffXVZGVVq1ala9euNGzYkOuuu448efIkSyTGeEF9PueX\n/ZpN6OoYWLMJ1m2Fk+d+/JAzB0RUhMhKSM3KEFkJqldCCuT1LvAAyXQJ4HIrW7YsK1eu5Msvv6RH\njx489dRT5MiRg3bt2jF16tRkdZs3b87HH39M9erVadGiRYp95ciRI1ljmT9//lTf80JJzufzJa6/\n6667mDZtGoULF07skklQo0aNxJFV7733XqpVq8aqVato1qwZefPmpWrVquTOnZudO3fy7rvvkj9/\nfiZMmMC2bdto3749CxcuJHv2c1+Pw4cPU6RIEQoWLMihQ4dSlCdYvXo1W7ZsoXPnzgDs27eP1q1b\ns2DBAnr37k3v3r05evQoCxcuTBGzMRlN98TBT+vRlethTQz8sgWOHDtXISwMIq6G2hFI7WpQJwIi\nKiI5c3gXdAayBJCGyZMnc+TIEfr06YOqsmTJEp5//nl69erF7t27KVy4MGPGjOG5557j8OHDlClT\nhj179rBly5YUDXnVqlXZvHkzf//9NwUKFODGG29McSfO+WzcuJGqVasye/Zs6tevD0CnTp2oWbNm\nsrt8/mnZsmX89NNPTJs2jZiYGF555RXi4+M5ePAge/bsoXjx4vzxxx+J9Vu0aMHkyZMpU6YMkZGR\nLFq0iBtvvJEFCxYwatQoKlWqxObNm4mLiyMsLIxt27ZRsWLFxO3r1KnDn3/+mfh38eLFWbBgQeLf\nZ8+epV+/fokJwpiMovHxEPMb/LQOXbkOfloHO5I8bCoClctDnWrnGvvISkj4FZ7FfLlZAkhDly5d\n6Nq1KzVq1CBXrlzMnDmTMmXKMGLECFq0aMHp06d58sknEy8G16lTh7JlyxIREZGibzw8PJzx48dz\n0003cfr0afr27ctVV12V6vtu27aNN954g1GjRgEwc+ZMBg0aRIkSJRKTRoUKFShXrhx33JH683ZV\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8172679208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"support = np.linspace(aicbw_/2, aicbw_*5, num=300)\n",
"plt.plot(support, [fixed_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(aicbw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(aicbw))\n",
"plt.vlines(aicbw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(aicbw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `test_golden_fixed_BIC`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"function has a minimum, both the methods find it."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"fixed_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=True)\n",
"bicbw = fixed_gaussian.search(criterion='BIC')\n",
"bicbw_ = fixed_gaussian.search(criterion='BIC', search='scipy')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n4ywq1+8zlQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed5a828>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"support = np.linspace(bicbw_/2, bicbw_*5, num=300)\n",
"plt.plot(support, [fixed_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bicbw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bicbw))\n",
"plt.vlines(bicbw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bicbw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `test_golden_fixed_CV`\n",
"function has a minimum and all values find it."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"fixed_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=True)\n",
"cvbw = fixed_gaussian.search(criterion='CV')\n",
"cvbw_ = fixed_gaussian.search(criterion='CV', search='scipy')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed1ec50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"support = np.linspace(cvbw_/2, cvbw_*5, num=300)\n",
"plt.plot(support, [fixed_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(cvbw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(cvbw))\n",
"plt.vlines(cvbw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(cvbw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Adaptives (bisquare only)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### adaptive bisquare optimized on AICc\n",
"finds a well-defined minimum:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\ne+4hf51jxozhvPPOIyXlp8fUnTp1Iisrix9++IEvvviCKlWqUKNGDbp168aECROAYOirW7duh5xj\nf3FY+JFhnc++CDeHc+4nLrvsMj788EPatm3LsGHDuO2222jatClDhw6lb9++tGrViurVqyOJIUOG\n0KlTJy699FLS09N/MqZdvXp1nnrqKfr160e7du249tprOfzww4v8vCtWrOCuu348R2fMmDFkZGQw\nb948Bg8eDATDP0cffTTnnHPOIX+dI0eO5Prrr99n2y9/+Us2bNjAkUceyS9/+Us6derEOeecs/ev\ngPPOO4+kpCTS09MZPXo0d9999yHn2J+iGXerKF26dLFDfQMUGzMRu/lB9OTv0LXnlVEy51y86Nu3\nLyNGjKB169b7bF+xYgU333wz77zzTkjJDp6kbDPrUtJ+cTWGD0B6cIRvi1ZQcbN0nXOV2eTJk7nu\nuuv45z//GXaUchV/hd+6OUiwdGXYSZxzMSgrK+sn2/r378/q1asrPkwFi7sxfFWvBg3rwZpvw47i\nnHMxJe4KH4AmDWCtv7uic84VFp+Ff3hDyNuG5W0LO4lzzsWM+Cz8JpETFtb5Ub5zzhWI78Jf44Xv\nXGV13XXXsW3bof+Vnp2dzTXXXMMDDzywd9vOnTt59dVXOfHEE1m6dCkAY8eO3buscWZmJvXq1eO1\n117b57FWr15Nnz59SE9P54orrmDnzp0ATJ8+nXbt2pGens6wYcMOOXN5KbHwJSVJel7ScknTJTWV\nlCnpI0kLJb0tqU5k396SFkhaLOmO8o9fTOaCwvdxfOcqrRdffJEaNWoc0mPMnz+f++67j+TkZH74\n4Ye92//whz+QnZ3N1q1b957Be+mll5KTk0NOTg4LFy7k2GOP3bt6ZYFHHnmE66+/nsWLF5OcnLx3\nZc/BgwfzxhtvMHfuXEaPHr13FdBYE80R/jlAQ6Al8AjwODAEuNvM2gKzgYL1P58BBgKdgGslHVXW\ngaPiQzrORUUq24+SFLc88qhRo2jVqhUZGRmMHz8e+PGNTK6++mouvPBC2rVrR9euXfnvf//L2LFj\nue666wBYtWoV7du3Z/369dx00037fL727dszadIkevbsuc/2IUOG8OSTT9KgQYMic06dOpVOnTpR\nu3btfbYXtYTx1q1b2bNnD82bN6datWr06dOHTz/9tORvRgiiKfwWwHQLvA10NrMLzCxLwcpFDYEN\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed78b00>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_bisq = gwr.sel_bw.Sel_BW(coords, y, X, kernel='bisquare', fixed=False)\n",
"bw = adaptive_bisq.search(criterion='AICc')\n",
"bw_ = adaptive_bisq.search(criterion='AICc', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_bisq._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adaptive bisquare on AIC\n",
"finds the right minimum in a nonconvex function."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f817273fc50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_bisq = gwr.sel_bw.Sel_BW(coords, y, X, kernel='bisquare', fixed=False)\n",
"bw = adaptive_bisq.search(criterion='AIC')\n",
"bw_ = adaptive_bisq.search(criterion='AIC', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_bisq._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### adaptive bisquare on BIC\n",
"no minimum, just like in the fixed case:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f817265df98>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_bisq = gwr.sel_bw.Sel_BW(coords, y, X, kernel='bisquare', fixed=False)\n",
"bw = adaptive_bisq.search(criterion='BIC')\n",
"bw_ = adaptive_bisq.search(criterion='BIC', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_bisq._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adaptive bisquare on the CV criterion\n",
"weak minimum out in the global area"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed83860>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_bisq = gwr.sel_bw.Sel_BW(coords, y, X, kernel='bisquare', fixed=False)\n",
"bw = adaptive_bisq.search(criterion='CV')\n",
"bw_ = adaptive_bisq.search(criterion='CV', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_bisq._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Adaptives on Gaussians\n",
"something we should stop recommending.\n",
"\n",
"### adaptive gaussian optimized by AICc:\n",
"minimum is superlocal, will be bounded by whatever bw_min is:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD/CAYAAADytG0IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XmcTnX/x/HXx1gjSkVKxa0sYyzZ\nKkIqKaVStlLRdiPdrdRdKUq/dIdWhWSiwi2ViJI2obtSlogkWiT7nn25Pr8/zkWD0Qxm5lzXXO/n\n4zEP5pxzXfOe7X2d+Z5zvsfcHRERyf3yhB1ARERyhgpfRCRBqPBFRBKECl9EJEGo8EVEEoQKX0Qk\nQajwRUQShApfRCRBqPBFRBJE3rADpHX88cd7mTJlwo4hIhJXpk+fvtrdT8hou5gq/DJlyvDtt9+G\nHUNEJK6Y2W+Z2U5DOiIiCUKFLyKSIFT4IiIJQoUvIpIgVPgiIglChS8ikiBi6rRMEZHs4tt3wNJV\nYcc4uJNLYPnzZeuHUOGLSK7nM+bh190Hf6wMO8pB2TdvQvky2foxVPgxoEyZMsyfP5+CBQtm2XP+\n+uuvVKtWjVNOOQWA66+/nvvvv58333yTRx99FHenW7duXHvttfs8bunSpVxzzTWsWrWKGjVqkJqa\nSv78+Zk8eTK33347u3bt4qabbqJLly5ZllUkO/lbH+KdH4ftO+CqxnBU1v2eZamiRbL/Y7h7zLzV\nrFnTc6tIJHLQdaeddppv3bo1Sz/e119/7ddff/0+y7Zt2+ZnnHGGr1271tesWeNlypTxLVu27LPN\nbbfd5q+99pq7u99www0+fPhwd3evWrWq//zzz75161avVKmS//7771maVySrRXbv9t09XvTdRWv7\n7tLneeTDqWFHyjbAt56Jjo27g7ZmlqVvGdm+fTstWrSgfPnynHvuuSxZsgSAYcOGkZKSQpUqVXj7\n7bcB+PDDD6lWrRoVK1bkwQcfBKBHjx40aNCA5ORk/vzzT8aOHUtycjIVK1akf//+ez/OPffcQ0pK\nCpdffjnB9+8v5513Hm3btqVy5cpceOGFrFu3jl69etGzZ08AJk2axOWXX77PY1auXMnxxx+/z7KF\nCxdSvnx5jj32WIoXL07FihVZtGjRPttMmzaNSy65BICmTZsyffp0Nm/ezO7duylbtiwFCxakYcOG\nzJo1K8OvnUhYfNVavOXd8PQQ+Mcp2Mep2EX1wo4Vurgr/Jz2wQcfUKhQIRYsWMCtt97K6NGjWb58\nOQMHDmTGjBl89dVXPPzww0QiEebMmcPHH3/MvHnzGDt2LCtWrACgatWq/PDDD+TNm5c777yTSZMm\nMXPmTF588UXWrFkDwNVXX83333/Phg0bmD59+gE5mjdvzty5c6levTovvPACrVq1Yty4cQBMmDCB\nq6++ep/tV65cyfjx46levTrNmzdn9erVrFmzhiJF/vqzsVixYqxdu3afx6XdZs/6zDxOJGy+ezc+\n+Vu87xC87rXw8ZdwwdnYJ6lYhbJhx4sJcVf4mfmz5VDeMlKjRg2+/fZbunfvzplnnsm//vUvvvji\nC+bPn0+dOnWoV68emzZtYtWqVZx77rm0bNmSM888k19//ZV169YBkJKSAsCcOXNISUmhRIkSFCpU\niC+++IJixYoBUK9esPdRtmzZvS8Cae15jjZt2jB9+nTKlStHJBJhxYoVfPLJJwfs4V966aWMHDmS\nWbNmUaNGjb1/Dewvo79yDrY+M38dieQU37AJb34H3uw2/LGXYN1G7PE7sbeexYoXCztezIi7ws9p\np556KtOmTSM5OZkOHTowcuRIzIwrrriCWbNmMWvWLBYvXkzJkiVp3749L774It999x21atU64Lny\n5cu3T1EWK1aMvHkPPG7+dy9EkUhk7/oWLVowePBgjjvuOI499th9titQoMDeF4kWLVowZ84cjj32\nWDZs2LB3m40bNx4w7JN2mz3rM/M4kTD4jp34J1/hl/wTPv8GGtfFXnsS+34s9q+2WB5VXFr6amRg\nwIABDBgwgNatW+8djqlduzYTJkxg+fLl7Ny5k169euHubNy4kVNOOYUVK1bw448/HlDcFStWZP78\n+axcuZIdO3ZQv379vcM+GZk7dy4Ao0aNonbt2gC0atWKXr160bx58wO279WrF6mpqQBMmTKF008/\nnTPOOIP58+ezevVq1q1bx8KFCylXrtw+j6tTpw7vvfceEAxn1alTh6OPPpo8efKwYMECtm/fzpQp\nUzjzzDMP7QspkoV85y78+Tfw05vgV90BcxfCrS2xkX2xK87HTtQOSbqyeojkSN5i8SydDRs2+JVX\nXukpKSles2ZNnz9/vru7v/76616hQgUvW7asP/PMM+7uPnDgQC9Xrpw3atTIzz//fJ86dap3797d\n+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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ecee908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=False)\n",
"bw = adaptive_gaussian.search(criterion='AICc')\n",
"bw_ = adaptive_gaussian.search(criterion='AICc', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### adaptive gaussian optimized by AIC:\n",
"again, superlocal, so restricted exactly by the minimum bandwidth."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD/CAYAAADytG0IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XucznX+//HHy+QwESVJpEgNxvn8\nK4fSVkqpVDqwQipEmxXZlkJpbRulUnQS22KlVixpa5OILTnlMORLJ3I+Tc6nef3++Fw0MsyUmflc\n11zP++02NzOfz/u65jkHz+sz7+tzvT/m7oiISN6XL+wAIiKSO1T4IiJxQoUvIhInVPgiInFChS8i\nEidU+CIicUKFLyISJ1T4IiJxQoUvIhInTgs7QHolSpTwcuXKhR1DRCSmzJ8/f4u7n5PZuKgq/HLl\nyjFv3rywY4iIxBQz+z4r4zSlIyISJ1T4IiJxQoUvIhInVPgiInFChS8iEidU+CIicSKqTssUEckp\nvv8ArNscdowTK1MSK5A/Rz+FCl9E8jz/bAF+72OwPnoL3758G5LK5ejnUOFHgXLlyrFixQoKFSqU\nbff53XffUaNGDcqWLQtA27Zt6d27N2+//TYDBgzA3enbty+tW7c+5nbr1q3jrrvuYvPmzdSuXZuR\nI0dSoEABZs6cSbdu3Th06BD33HMPPXv2zLasIjnFDx+GwW/if30dzOC2a6BQwbBjZaxokZz/HO4e\nNW916tTxvCotLe2E+y688ELfu3dvtn6+L774wtu2bXvMtn379vkll1zi27Zt861bt3q5cuV8z549\nx4x54IEH/O9//7u7u999990+duxYd3evXr26f/PNN753716vXLmyr1mzJlvzimS3tA2b/XCLB/xw\n0Xp+OPkGT/v8q7Aj5RhgnmehY2PuSVszy9a3zOzfv5/bbruNpKQkGjVqxNq1awEYM2YMVatWpVq1\narz77rsA/Oc//6FGjRpUqlSJP//5zwD079+fJk2akJyczM6dO5k8eTLJyclUqlSJ4cOHH/08PXr0\noGrVqtx4440EP7+fXXHFFbRp04YqVapw1VVXsX37dgYNGsSTTz4JwIwZM7jxxhuPuc2mTZsoUaLE\nMdtWrVpFUlISZ511FsWLF6dSpUqsXr36mDFz587luuuuA6B58+bMnz+f3bt3c/jwYcqXL0+hQoW4\n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\n11RpyQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed83e48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=False)\n",
"bw = adaptive_gaussian.search(criterion='AIC')\n",
"bw_ = adaptive_gaussian.search(criterion='AIC', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### adaptive gaussian optimized by BIC\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n6NAhjh49Snx8PHXr1k21XFRUFPPnzwec7rKoqChKlSpFUFAQ27dv5+zZs6xatYrmzZtn7xeZhYAo\nCIDTbWRdRsbkS/369ePrr7+mcePGvPLKKzzxxBPUrFmT0aNH0759e+rXr0+xYsUQEaKjo2nRogV/\n/OMfCQ8Pv6SfvVixYrz22mvcfPPNNGnShHvvvZfKlSunu934+Hieeuqp5NfTpk2jUaNGrF+/niFD\nhgBO99JVV11Ft27dLll++PDhzJkzh4iICD788EOee+45ihYtyujRo2nbti033ngjL774IoULF2b1\n6tW8+uqrADz77LO8//77hIeHk5iYmNwVNW7cOHr06EHz5s257777qFKlSo78fpMExJXKAIm33A9r\ntyKHViNBgVMHjTE5o3379kyYMIEGDRqkmh4fH8/DDz/MZ5995lGyrNmVymmFloWLF+G3tPfsMcaY\ny7N48WLatm1LdHS011FyhE/DXxcI5ZOuVv4NypfxNosxJt9Zvnz5JdM6depEQbpxV+DsIdipp8YY\nk6mAKQiSVBDsamVjjElXwBSEpOEr7NRTY4xJX+AUBBu+whhjMhVwBUHtGIIxBdp9993HqVOncmRd\nFy5cICIiggkTJgCwfft2WrVqRXh4OEOHDk33auannnqK8PBwWrZsyaZNmwDnquKuXbsSHh5O586d\n+e03//xiGjgFIeksIxu+wpgC7Z133qF48Zy5M+Jrr73GiRMnkl8PGzaMESNGEBcXx/79+1m6dGmq\n9mvWrGHdunVs3bqVV155heHDhwMwceJEoqKiiIuLIzIyMtUIq/4kcAqCHUMwJseI5OwjKxkNfz1p\n0iTq169Po0aNmDt3LvD7jW4GDhxIr169aNKkCa1atWL37t3MmDGD++67D3BuXtO0aVMOHjzIQw89\ndMk2f/nlF+bNm8fdd9+dPC0+Pp527doB0KtXL7788stUy8TExHDbbbchInTo0IG4uLjk6WmHs/ZH\nWRYEEQkSkbdFZIeIrBSRmiJSWEQGiMg3IlI/RduBIrJXRLa4j5vSrKuaiKwQkTgR+VBECufGm0pX\nqRJQKMROOzUmH0pv+Os9e/bw+uuvs27dOlasWMHw4cMv6cJp3bo1mzZt4p577mHUqFF07dqVZcuW\noaosWbKEu+66i0qVKqX7jX3YsGGMHj2a4ODg5GlNmzZl/vz5JCYm8tlnn3Ho0KFUy6QdovrChQuX\n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\n1/8DXHUaj5rvm8cAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed12fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=False)\n",
"bw = adaptive_gaussian.search(criterion='BIC')\n",
"bw_ = adaptive_gaussian.search(criterion='BIC', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### adaptive gaussian optimized by CV"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAD/CAYAAAD2Qb01AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XmcjfX7x/HXNZaxK0uizRZmYbJX\n9oqKVLKX0Cq0S99oQZQsqZRvJEspRUlJtq+k8E32NX7qK1KyM4xtzMz1++M+NGZpxpnlPufc1/Px\nmIcz932fc944rvn43J/7ukVVMcYY4x1hbgcwxhiTu6zwG2OMx1jhN8YYj7HCb4wxHmOF3xhjPMYK\nvzHGeIwVfmOM8Rgr/MYY4zFW+I0xxmPyuh0gLaVKldLy5cu7HcMYY4LK6tWrD6hq6YyOC8jCX758\neVatWuV2DGOMCSoisjMzx9lUjzHGeIwVfmOM8Rgr/MYY4zFW+I0xxmOs8BtjjMdY4TfGGI8JqcKv\nSUno/3ahh2LdjmKMMQErpAo/U2ahtdrC7MVuJzHGmIAVWoU/+moAdNMvLgcxxpjAFVqFP6IShIXB\nxm1uJzHGmIAVUoVfChWASlfA5l9RVbfjGGNMQMpU4ReR2iIySUQGiEhBEdmU7Gu7iMxJcXy4iEzx\n7V8nInVzJn4aoq+G2Dj4/a9ce0tjjAkmGRZ+EYkBBgOJQEFVPamq0We/gAnA9BRPexjY79vfBxiZ\nzbnTz1u9ivPA5vmNMSZNGRZ+VV2vqi2BpSn3iUgY0IHUhX8z8I7v8VagWBZzZl515wSvFX5jjElb\nVuf4WwLLVPVE8o2qukhVt/u+vQ+YmtELichAEVER0d27d/uf6OzKno1W+I0xJi1ZLfw9gfHp7RSR\nRkAr4K2MXkhVB6qqqKqUK1fO/0RlS0OJ4jbiN8aYdPhd+EWkPFBaVdems/8qnOmeDqoa7+/7+JHL\nGfX/9gd67Hhuva0xxgSNrIz4e+Cc2E1FRAoDnwIPqequLLyHf2r4TvD+/L9cf2tjjAl0fhV+EckP\ndCTZ3L04potIHpwpoEhgYrJln1HZkjgz+Spf5Tz47Y/cektjjAkamb7nrqpOTvY4HqiYYr/irPAB\nZ/lmri3hTKXURc6v1qzNGGNSCakrd88pURzAunQaY0waQrrw24jfGGNSC83CX9I31XPwiLs5jDEm\n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\nrPAbY4zH/D8J2gKO99Q3HQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f816ed83550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"adaptive_gaussian = gwr.sel_bw.Sel_BW(coords, y, X, kernel='gaussian', fixed=False)\n",
"bw = adaptive_gaussian.search(criterion='CV')\n",
"bw_ = adaptive_gaussian.search(criterion='CV', search='scipy')\n",
"support = np.arange(20, 180)\n",
"plt.plot(support, [adaptive_gaussian._optimized_function(s) for s in support])\n",
"ymin,ymax = plt.gca().get_ylim()\n",
"lims = ymin, ymin + (ymax-ymin)*.2\n",
"plt.vlines(bw, *lims, color='k', linewidth=2, label='search.py {:.2f}'.format(bw))\n",
"plt.vlines(bw_, *lims, color='b', linewidth=2, label='scipy: {:.2f}'.format(bw_))\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (Analysis)",
"language": "python",
"name": "ana"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment