Kyle Cranmer added file figures/james-stein/JamesStein.ipynb  almost 9 years ago

Commit id: 0c2ce8fb56b12e73385d734ae4d45695c0a3540b

deletions | additions      

         

{  "cells": [  {  "cell_type": "markdown",  "metadata": {  "slideshow": {  "slide_type": "slide"  }  },  "source": [  "# A Quick Demo of the James-Stein Estimator\n",  "\n",  "Kyle Cranmer, June 25, 2015\n",  "\n",  "[![](https://i.creativecommons.org/l/by/4.0/88x31.png)]( https://creativecommons.org/licenses/by/4.0/)"  ]  },  {  "cell_type": "markdown",  "metadata": {  "slideshow": {  "slide_type": "slide"  }  },  "source": [  "## The Problem\n",  "\n",  "\n",  "Consider a standard multivariate Gaussian distribution for $\\vec x$ in $n$ dimensions centered around $\\vec\\mu$\n",  "\n",  "\\begin{equation}\n",  "f(\\vec{x}|\\vec{\\mu}) = \\prod_{i=1}^{n} \\frac{1}{\\sqrt{2\\pi}} \\exp\\left(-\\frac{(x_i- \\mu_i)^2}{2}\\right)\\;.\n",  "\\end{equation}\n",  "\n",  "\n",  "We want to compare the mean squared error\n",  "\\begin{equation}\n",  "E[||\\bar{\\vec x}-\\vec\\mu||^2])\n",  "\\end{equation}\n",  "\n",  "of the sample mean (an unbiased estimator)\n",  "\\begin{equation}\n",  "\\overline x_i = \\frac{1}{m} \\sum_{j=1}^m x_{ij}\n",  "\\end{equation}\n",  "\n",  "to the James-Stein estimator\n",  "\\begin{equation}\n",  "x_{JS} = \\left( 1 - \\frac{n-2}{||\\bar{x}||^2} \\right) \\bar{x} \n",  "\\end{equation}\n",  "\n",  "\n",  "(where $i$ is the component of the vector and $j$ is an index over the samples).\n"  ]  },  {  "cell_type": "code",  "execution_count": 2,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "slide"  }  },  "outputs": [  {  "name": "stdout",  "output_type": "stream",  "text": [  "Populating the interactive namespace from numpy and matplotlib\n"  ]  }  ],  "source": [  "%pylab inline"  ]  },  {  "cell_type": "code",  "execution_count": 3,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "fragment"  }  },  "outputs": [],  "source": [  "def jamesSteinEstimator(x):\n",  " return x*(1. - (x.size-2.)/sum(x*x))"  ]  },  {  "cell_type": "code",  "execution_count": 4,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "fragment"  }  },  "outputs": [],  "source": [  "def RMS(x,mean):\n",  " return sqrt(sum((x-mean)*(x-mean)))"  ]  },  {  "cell_type": "code",  "execution_count": 5,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "fragment"  }  },  "outputs": [],  "source": [  "def doRun(nDim,nSamp=1000):\n",  " mean=zeros(nDim)\n",  " data = zeros(nDim*nSamp).reshape(nDim,nSamp)\n",  " for i in range(nDim):\n",  " mean[i] = 0.5 #set value of the mean's components here \n",  " data[i,:] = random.normal(mean[i],1,nSamp).T\n",  " data=data.T\n",  "\n",  " avRMS_js = 0\n",  " avRMS_mle = 0\n",  " for x in data:\n",  " avRMS_js += RMS(jamesSteinEstimator(x),mean)\n",  " avRMS_mle += RMS(x,mean)\n",  " avRMS_js /= nSamp\n",  " avRMS_mle /= nSamp\n",  " return (avRMS_js, avRMS_mle)"  ]  },  {  "cell_type": "code",  "execution_count": 6,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "subslide"  }  },  "outputs": [],  "source": [  "nDimToTest = linspace(2,20)\n",  "av_js = zeros(nDimToTest.size)\n",  "av_mle = zeros(nDimToTest.size)\n",  "for i,nDim in enumerate(nDimToTest):\n",  " [av_js[i], av_mle[i]] = doRun(int(nDim))"  ]  },  {  "cell_type": "code",  "execution_count": 10,  "metadata": {  "collapsed": false,  "slideshow": {  "slide_type": "fragment"  }  },  "outputs": [  {  "data": {  "image/png": [  "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\n",  "TkSuQmCC\n"  ],  "text/plain": [  ""  ]  },  "metadata": {},  "output_type": "display_data"  }  ],  "source": [  "plt.plot(nDimToTest,av_js,c='b') #James Stein in blue\n",  "plt.plot(nDimToTest,av_mle,c='r') #MLE in red\n",  "plt.ylabel('Mean Squared Error')\n",  "plt.xlabel('Dimensionality')\n",  "plt.legend(('James-Stein', 'MLE'), loc='upper left')\n",  "plt.savefig('james-stein.pdf')"  ]  },  {  "cell_type": "code",  "execution_count": null,  "metadata": {  "collapsed": false  },  "outputs": [],  "source": []  },  {  "cell_type": "code",  "execution_count": null,  "metadata": {  "collapsed": true  },  "outputs": [],  "source": []  }  ],  "metadata": {  "celltoolbar": "Slideshow",  "kernelspec": {  "display_name": "Python 2",  "language": "python",  "name": "python2"  },  "language_info": {  "codemirror_mode": {  "name": "ipython",  "version": 2  },  "file_extension": ".py",  "mimetype": "text/x-python",  "name": "python",  "nbconvert_exporter": "python",  "pygments_lexer": "ipython2",  "version": "2.7.6"  }  },  "nbformat": 4,  "nbformat_minor": 0  }