Skip to content

Instantly share code, notes, and snippets.

@JohnGriffiths
Last active August 29, 2015 13:57
Show Gist options
  • Save JohnGriffiths/9474118 to your computer and use it in GitHub Desktop.
Save JohnGriffiths/9474118 to your computer and use it in GitHub Desktop.
Discussions and furtherance of understanding of Bayesian shizzle ma nizzle. Chip in by all means; but please do not judge.
(naming file with starting whitespace to fool github gist so I can add more files to this repo without random name changes)
Display the source blob
Display the rendered blob
Raw
{
"worksheets": [
{
"cells": [
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Philosophy of Bayes",
"level": 1
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "*This notebook is slideshow friendly :)*\n\n[view as notebook](http://nbviewer.ipython.org/gist/JohnGriffiths/9474118) \n[view as slides](http://slideviewer.herokuapp.com/9474118/?theme=sky#/) \n[view as github gist repo](https://gist.github.com/JohnGriffiths/9474118) "
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "markdown",
"source": "Bayesian statistics is both a mathematical and philosophical departure from the currently-conventional frequentist mindsets. I have only just embarked on my journey of getting my head round it all. Hopefully these notes will help. \n\nRight now, this is just a very scatty document with the contents of a few g-chat exchanges with Dr. Kievit thrown down for posterity. One day, hopefully, it will blossom into into a veritable font of knowledge, truth, and understanding. \n\nUntil then, deal with it. "
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "Notebook setup",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "Importage"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%matplotlib inline\nfrom IPython.display import HTML, display\nfrom os.path import join\nimport numpy as np\nimport pandas as pd\nfrom pandas.rpy import common as com\nimport seaborn as sns\n\n%load_ext rmagic",
"prompt_number": 108,
"outputs": [
{
"output_type": "stream",
"text": "The rmagic extension is already loaded. To reload it, use:\n %reload_ext rmagic\n",
"stream": "stdout"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Styling"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "# Styling **(init cell)**\n# -------\ncss_file = '/media/sf_WINDOWS_D_DRIVE/Neurodebian/code/git_repos/DoctoralThesis'\\\n '/styles/custom_css_TNR_wide.css'\ndef css_styling():\n styles = open(css_file, \"r\").read() #or edit path to custom.css # \"custom.css\",\n return HTML(styles)\ncss_styling()",
"prompt_number": 109,
"outputs": [
{
"text": "<IPython.core.display.HTML at 0x7fa931498e10>",
"html": "<style>\n @font-face {\n font-family: \"Times New Roman\", Times, serif;\n }\n div.cell{\n width:100%; //1000px;\n margin-left:1% !important;\n margin-right:auto;\n }\n h1 {\n font-family: \"Times New Roman\", Times, serif;\n }\n h4{\n margin-top:12px;\n margin-bottom: 3px;\n }\n div.text_cell_render{\n font-family: Times New Roman, Times, serif;\n line-height: 145%;\n font-size: 130%;\n width:100%; //1000px;\n margin-left:auto;\n margin-right:auto;\n }\n .CodeMirror{\n font-family: \"Source Code Pro\", source-code-pro,Consolas, monospace;\n }\n .prompt{\n display: None;\n } \n .warning{\n color: rgb( 240, 20, 20 )\n } \n</style>\n<script>\n MathJax.Hub.Config({\n TeX: {\n extensions: [\"AMSmath.js\"]\n },\n tex2jax: {\n inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n },\n displayAlign: 'center', // Change this to 'center' to center equations.\n \"HTML-CSS\": {\n styles: {'.MathJax_Display': {\"margin\": 4}}\n }\n });\n</script>\n\n",
"output_type": "pyout",
"metadata": {},
"prompt_number": 109
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Add a 'hide code' button \n\n(only works when running locally)\n"
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "<script type=\"text/javascript\">\n show=true;\n function toggle(){\n if (show){\n $('div.input').hide();\n }else{\n $('div.input').show();\n }\n show = !show\n }\n</script>\n\n\n\n<a href=\"javascript:toggle()\" target=\"_self\">toggle input</a>\n"
},
{
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"cell_type": "heading",
"source": "False positives and multiple comparison correction",
"level": 2
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "Here's a little script Rogier sent me to make a point about how you can get high BFs from random data. "
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Define a function"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%%R\n\njzs_corbf=function(r,n){\n int=function(r,n,g){\n exp(\n ((n-2)/2)*log(1+g)+\n (-(n-1)/2)*log(1+(1-r^2)*g)+\n (-3/2)*log(g)+\n -n/(2*g))\n }\n bf10=sqrt((n/2))/gamma(1/2)*\n integrate(int,lower=0,upper=Inf,r=r,n=n)$value\n return(bf10)\t\n}",
"prompt_number": 97,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Run nested loop"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "nsamples=10000\nsamplesize= [25,50,100,250,500,1000]",
"prompt_number": 98,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "-"
}
},
"cell_type": "code",
"input": "%Rpush nsamples samplesize",
"prompt_number": 99,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "code",
"input": "%%R\nbfs=matrix(NA,nrow=nsamples,ncol=length(samplesize))\nfor (j in 1:length(samplesize))\n {\n for (i in 1:nsamples)\n { \n a=rnorm(samplesize[j],100,15)\n b=rnorm(samplesize[j],100,15)\n corest=cor(a,b)\n bftemp=jzs_corbf(corest,samplesize[j])\n bfs[i,j]=bftemp\n }\n }",
"prompt_number": 100,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Look at results"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%R sum(bfs>1)",
"prompt_number": 101,
"outputs": [
{
"text": "array([1403], dtype=int32)",
"output_type": "pyout",
"metadata": {},
"prompt_number": 101
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%R sum(bfs>3)",
"prompt_number": 102,
"outputs": [
{
"text": "array([413], dtype=int32)",
"output_type": "pyout",
"metadata": {},
"prompt_number": 102
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%R sum(bfs>10)",
"prompt_number": 103,
"outputs": [
{
"text": "array([120], dtype=int32)",
"output_type": "pyout",
"metadata": {},
"prompt_number": 103
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "code",
"input": "%%R -i df_bfs\nsummary(df_bfs)",
"prompt_number": 104,
"outputs": [
{
"text": " X25 X50 X100 X250 \n Min. : 0.1538 Min. : 0.1107 Min. : 0.0790 Min. : 0.05026 \n 1st Qu.: 0.1615 1st Qu.: 0.1163 1st Qu.: 0.0830 1st Qu.: 0.05284 \n Median : 0.1929 Median : 0.1384 Median : 0.0995 Median : 0.06345 \n Mean : 0.5278 Mean : 0.4582 Mean : 0.3331 Mean : 0.17064 \n 3rd Qu.: 0.2933 3rd Qu.: 0.2125 3rd Qu.: 0.1527 3rd Qu.: 0.09766 \n Max. :436.2036 Max. :452.0427 Max. :363.9359 Max. :130.66299 \n X500 X1000 \n Min. : 0.0356 Min. : 0.02521 \n 1st Qu.: 0.0375 1st Qu.: 0.02659 \n Median : 0.0444 Median : 0.03160 \n Mean : 0.3186 Mean : 0.08835 \n 3rd Qu.: 0.0700 3rd Qu.: 0.04903 \n Max. :922.2605 Max. :94.95327 \n",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "markdown",
"source": "I prefer pandas html dataframes...\n"
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "\nPull into python and take a look\n"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "df_bfs = com.load_data('bfs')\ndf_bfs.columns = samplesize\ndf_bfs.describe()",
"prompt_number": 105,
"outputs": [
{
"text": " 25 50 100 250 500 \\\ncount 10000.000000 10000.000000 10000.000000 10000.000000 10000.000000 \nmean 0.801171 0.335057 0.358435 0.445803 0.112390 \nstd 23.808037 3.587749 5.229572 26.436752 0.704885 \nmin 0.153839 0.110705 0.079013 0.050263 0.035612 \n25% 0.161910 0.116505 0.083143 0.052897 0.037460 \n50% 0.193595 0.138220 0.099115 0.062923 0.044999 \n75% 0.298055 0.207779 0.153945 0.096684 0.069024 \nmax 2270.339339 316.275650 360.496245 2632.161450 40.474131 \n\n 1000 \ncount 10000.000000 \nmean 0.083399 \nstd 0.749154 \nmin 0.025206 \n25% 0.026547 \n50% 0.031640 \n75% 0.048874 \nmax 63.099199 \n\n[8 rows x 6 columns]",
"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>25</th>\n <th>50</th>\n <th>100</th>\n <th>250</th>\n <th>500</th>\n <th>1000</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td> 10000.000000</td>\n <td> 10000.000000</td>\n <td> 10000.000000</td>\n <td> 10000.000000</td>\n <td> 10000.000000</td>\n <td> 10000.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td> 0.801171</td>\n <td> 0.335057</td>\n <td> 0.358435</td>\n <td> 0.445803</td>\n <td> 0.112390</td>\n <td> 0.083399</td>\n </tr>\n <tr>\n <th>std</th>\n <td> 23.808037</td>\n <td> 3.587749</td>\n <td> 5.229572</td>\n <td> 26.436752</td>\n <td> 0.704885</td>\n <td> 0.749154</td>\n </tr>\n <tr>\n <th>min</th>\n <td> 0.153839</td>\n <td> 0.110705</td>\n <td> 0.079013</td>\n <td> 0.050263</td>\n <td> 0.035612</td>\n <td> 0.025206</td>\n </tr>\n <tr>\n <th>25%</th>\n <td> 0.161910</td>\n <td> 0.116505</td>\n <td> 0.083143</td>\n <td> 0.052897</td>\n <td> 0.037460</td>\n <td> 0.026547</td>\n </tr>\n <tr>\n <th>50%</th>\n <td> 0.193595</td>\n <td> 0.138220</td>\n <td> 0.099115</td>\n <td> 0.062923</td>\n <td> 0.044999</td>\n <td> 0.031640</td>\n </tr>\n <tr>\n <th>75%</th>\n <td> 0.298055</td>\n <td> 0.207779</td>\n <td> 0.153945</td>\n <td> 0.096684</td>\n <td> 0.069024</td>\n <td> 0.048874</td>\n </tr>\n <tr>\n <th>max</th>\n <td> 2270.339339</td>\n <td> 316.275650</td>\n <td> 360.496245</td>\n <td> 2632.161450</td>\n <td> 40.474131</td>\n <td> 63.099199</td>\n </tr>\n </tbody>\n</table>\n<p>8 rows × 6 columns</p>\n</div>",
"output_type": "pyout",
"metadata": {},
"prompt_number": 105
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "Plot"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "sns.violinplot(df_bfs);",
"prompt_number": 106,
"outputs": [
{
"png": "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\nQmCC\n",
"text": "<matplotlib.figure.Figure at 0x670f710>",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "(I don't know how to do something this nice with R)"
},
{
"metadata": {
"run_control": {
"breakpoint": false
},
"slideshow": {
"slide_type": "fragment"
}
},
"cell_type": "code",
"input": "%%R -i df_bfs\nhist(df_bfs$X50)",
"prompt_number": 107,
"outputs": [
{
"png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC4lBMVEUAAAABAQECAgIDAwMEBAQF\nBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcY\nGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKior\nKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+\nPj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBR\nUVFUVFRVVVVXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZn\nZ2doaGhpaWlqampra2tsbGxubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7\ne3t8fHx9fX1+fn5/f3+AgICBgYGCgoKEhISFhYWGhoaHh4eIiIiKioqLi4uMjIyNjY2Ojo6Pj4+Q\nkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKj\no6OkpKSlpaWmpqanp6epqamqqqqrq6utra2urq6vr6+wsLCysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzN\nzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g\n4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz\n8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////kVXxrAAAQJklEQVR4nO3deXhU\n1R3G8R+oKEkIJCER1IrIEhYB2WUTl9iiIFTUglKqWK1aaqUmiju4Yl1KRYFKXRDjAnVDjYharRTE\nDaOixYUEZM0KIZnf/72z3MlM5gbuvZnEnNf38zzCM8d7cmbyzczcQzITUYImP/UVoObFwOAYGBwD\n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\n",
"output_type": "display_data",
"metadata": {}
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "..."
},
{
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"cell_type": "markdown",
"source": "...that'll do for now..."
}
],
"metadata": {}
}
],
"metadata": {
"name": "",
"celltoolbar": "Slideshow",
"css": [
""
],
"signature": "sha256:3607ac1f5be5122f87b2167ce63a0b406f4a6f2c8b6fc8f936646eb14ce2f816",
"gist_id": "9474118"
},
"nbformat": 3
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment