diff --git a/notebooks/GRB Beaming Angle estimation using PyMC3.ipynb b/notebooks/GRB Beaming Angle estimation using PyMC3.ipynb index 83f6de3..6a01024 100644 --- a/notebooks/GRB Beaming Angle estimation using PyMC3.ipynb +++ b/notebooks/GRB Beaming Angle estimation using PyMC3.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 27, + "execution_count": 133, "metadata": { "collapsed": true }, @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 134, "metadata": { "collapsed": true }, @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 213, "metadata": { "collapsed": true }, @@ -60,7 +60,7 @@ " top_a = T * ((s + b) * T)**n \n", " top_b = np.exp(-(s + b)*T)\n", " p = (top_a * top_b) / np.math.factorial(n)\n", - " return theano.tensor.switch(theano.tensor.le(s, 0), 0, p)\n", + " return theano.tensor.switch(theano.tensor.le(s, 0.), 0., p)\n", "\n", "#@as_op(itypes=[T.dscalar, T.dscalar, T.dscalar, T.dscalar], otypes=[T.dscalar])\n", "def log_signal_rate(s,n,b,T):\n", @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 214, "metadata": { "collapsed": true }, @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 215, "metadata": { "collapsed": true }, @@ -115,138 +115,107 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 454, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "import theano.tensor as T\n", - "from pymc3 import DensityDist, Uniform, Normal\n", - "from pymc3 import Model\n", - "from pymc3 import distributions\n", - "\n", - "def grb_model(number_events, background_rate, \n", - " observation_time, horizon, grb_rate,\n", - " efficiency_prior = \"uniform\"):\n", - " with Model() as model:\n", - " signal_rate = pm.DensityDist('signal_rate', \n", - " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time),\n", - " testval=50)\n", - "\n", - " volume = (4.0 / 3.0) * np.pi * horizon**3\n", - " \n", - " n_galaxy = number_mweg(volume)\n", - " \n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate / n_galaxy)\n", - " \n", - " grb_rate = (grb_rate / number_mweg(1e9)) #/ n_galaxy\n", - " \n", - " # Allow the efficiency prior to be switched-out\n", - " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", - " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", - " elif isinstance(efficiency_prior, float):\n", - " efficiency = efficiency_prior\n", - " \n", - " def cosangle(cbc_rate, efficiency, grb_rate):\n", - " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", - " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", - "\n", - " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", - " \n", - " return model\n", - "\n", - " \n" + "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 455, "metadata": { "collapsed": true }, "outputs": [], "source": [ - " with Model() as model:\n", + "import theano.tensor as T\n", + "from pymc3 import DensityDist, Uniform, Normal\n", + "from pymc3 import Model\n", + "from pymc3 import distributions\n", + "\n", + "def grb_model(number_events, background_rate, \n", + " observation_time, horizon, grb_rate,\n", + " efficiency_prior = \"uniform\"):\n", + " with Model() as model:\n", " signal_rate = pm.DensityDist('signal_rate', \n", - " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time),\n", - " testval=50)\n", + " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time), \n", + " testval=1.,\n", + " )\n", "\n", - " n_galaxy = number_mweg_inspiral(horizon)\n", + " #volume = pm.Normal(\"volume\", volume, sigma_volume)\n", + " volume = 4./3. * np.pi * (horizon)**3\n", + " n_galaxy = number_mweg(volume)\n", " \n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate * n_galaxy)\n", + " cbc_rate = pm.Deterministic('cbc_rate', signal_rate / n_galaxy)# * n_galaxy)\n", + " #grb_rate = pm.Poisson('grb_rate', mu = grb_rate)\n", + " grb_rate = (grb_rate / number_mweg(1e9))# * observation_time\n", " \n", " # Allow the efficiency prior to be switched-out\n", " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", + " efficiency = pm.Uniform('efficiency', 0,1., testval=0.5)\n", " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", + " efficiency = pm.Beta('efficiency', 0.5, 0.5, testval = 0.3)\n", " elif isinstance(efficiency_prior, float):\n", " efficiency = efficiency_prior\n", " \n", " def cosangle(cbc_rate, efficiency, grb_rate):\n", " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", + " (1.0 - ((grb_rate/(cbc_rate*efficiency))))\n", + " )\n", " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", + " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate))\n", "\n", " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", " \n", - " return model\n" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]" + " return model" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 34, + "execution_count": 456, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Volume: 0.35918876006\n" + ] + } + ], "source": [ "# 2015 - 2016 Scenario\n", "number_events = 0 # There were no BNS detections in O1\n", "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - "observation_time = 46.1/365. # The number of days of analysis conducted by gstLAL\n", - "horizon = 73.2 # The O1 BNS horizon distance in O1 BNS paper\n", - "grb_rate = 10.0\n", + "observation_time = 0.25 #46.1/365. # The number of days of analysis conducted by gstLAL\n", + "horizon = 70 # The O1 BNS horizon distance in O1 BNS paper\n", + "grb_rate = 10#10.0\n", "o1_models = []\n", + "\n", + "\n", + "print \"Volume: {}\".format((np.pi * 4/3 * observation_time * horizon**3)/1e6)\n", + "\n", "for prior in priors:\n", " o1_models.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" ] }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 413, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Volume: 1.0471975512\n" + ] + } + ], "source": [ "# 2016-2017 Scenarios\n", "number_events = 1 # Assume O2 will see one BNS observation\n", @@ -254,71 +223,101 @@ "observation_time = 0.5 # The number of years of analysis conducted \n", "duty_cycle = 0.5\n", "observation_time *= duty_cycle\n", - "horizon = 80.0 # The O1 BNS horizon distance in O1 BNS paper\n", + "horizon = 100.0 # The O1 BNS horizon distance in O1 BNS paper\n", "grb_rate = 10.0\n", "o2_models = []\n", + "\n", + "\n", + "print \"Volume: {}\".format((np.pi * 4/3 * observation_time * horizon**3)/1e6)\n", + "\n", "for prior in priors:\n", " o2_models.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" ] }, { "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 414, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Volume: 6.70427653249\n" + ] + } + ], "source": [ "# 2017-2018 Scenarios\n", "number_events = 3 # Assume O2 will see one BNS observation\n", "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", "observation_time = 0.75 # The number of years of analysis conducted \n", - "duty_cycle = 0.5\n", + "duty_cycle = 0.7\n", "observation_time *= duty_cycle\n", "horizon = 145.0 # The O1 BNS horizon distance in O1 BNS paper\n", "grb_rate = 10.0\n", "o3_models = []\n", + "\n", + "\n", + "print \"Volume: {}\".format((np.pi * 4/3 * observation_time * horizon**3)/1e6)\n", + "\n", "for prior in priors:\n", " o3_models.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" ] }, { "cell_type": "code", - "execution_count": 37, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 457, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Volume: 20.0165230949\n" + ] + } + ], "source": [ "# 2019+ Scenarios\n", "number_events = 10 # Assume O2 will see one BNS observation\n", "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", "observation_time = 1.0 # The number of years of analysis conducted \n", - "duty_cycle = 0.5\n", + "duty_cycle = 0.7\n", "observation_time *= duty_cycle\n", - "horizon = 200.0 # The O1 BNS horizon distance in O1 BNS paper\n", + "horizon = 189.7 # The O1 BNS horizon distance in O1 BNS paper\n", "grb_rate = 10.0\n", "o4_models = []\n", + "\n", + "print \"Volume: {}\".format((np.pi * 4/3 * observation_time * horizon**3)/1e6)\n", + "\n", "for prior in priors:\n", " o4_models.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" ] }, { "cell_type": "code", - "execution_count": 38, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 458, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Volume: 39.9961066362\n" + ] + } + ], "source": [ "# 2022+ Scenarios\n", "number_events = 20 # Assume O2 will see one BNS observation\n", "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", "observation_time = 1.0 # The number of years of analysis conducted \n", - "duty_cycle = 0.5\n", + "duty_cycle = 1.0\n", "observation_time *= duty_cycle\n", - "horizon = 200.0 # The O1 BNS horizon distance in O1 BNS paper\n", + "horizon = 212.15 # The O1 BNS horizon distance in O1 BNS paper\n", "grb_rate = 10.0\n", + "print \"Volume: {}\".format((np.pi * 4/3 * observation_time * horizon**3)/1e6)\n", "o5_models = []\n", "for prior in priors:\n", " o5_models.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" @@ -326,28 +325,28 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 459, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "samples = 100000" + "samples = 500000" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 418, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 100000/100000 [00:14<00:00, 6911.55it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7819.93it/s]\n", - "100%|██████████| 100000/100000 [00:07<00:00, 14174.14it/s]\n", - "100%|██████████| 100000/100000 [00:07<00:00, 14117.17it/s]\n" + "100%|██████████| 500000/500000 [01:33<00:00, 5352.47it/s]\n", + "100%|██████████| 500000/500000 [01:27<00:00, 5743.17it/s]\n", + "100%|██████████| 500000/500000 [00:50<00:00, 9849.11it/s] \n", + "100%|██████████| 500000/500000 [00:45<00:00, 11049.29it/s]\n" ] } ], @@ -361,17 +360,17 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 419, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 100000/100000 [00:13<00:00, 7575.04it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7685.11it/s]\n", - "100%|██████████| 100000/100000 [00:07<00:00, 14264.13it/s]\n", - "100%|██████████| 100000/100000 [00:06<00:00, 14976.70it/s]\n" + "100%|██████████| 500000/500000 [01:20<00:00, 6173.85it/s]\n", + "100%|██████████| 500000/500000 [01:25<00:00, 5821.62it/s]\n", + "100%|██████████| 500000/500000 [00:46<00:00, 10691.65it/s]\n", + "100%|██████████| 500000/500000 [00:39<00:00, 12799.68it/s]\n" ] } ], @@ -386,25 +385,17 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 471, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 1000000/1000000 [02:14<00:00, 7444.14it/s]\n", - "100%|██████████| 1000000/1000000 [02:21<00:00, 7079.39it/s]\n", - "100%|██████████| 1000000/1000000 [01:16<00:00, 13030.83it/s]\n", - "100%|██████████| 1000000/1000000 [01:13<00:00, 13661.28it/s]\n", - "100%|██████████| 1000000/1000000 [02:24<00:00, 6922.62it/s]\n", - "100%|██████████| 1000000/1000000 [02:15<00:00, 7380.60it/s]\n", - "100%|██████████| 1000000/1000000 [01:15<00:00, 13184.96it/s]\n", - "100%|██████████| 1000000/1000000 [01:18<00:00, 12782.07it/s]\n", - "100%|██████████| 1000000/1000000 [02:25<00:00, 6850.76it/s]\n", - "100%|██████████| 1000000/1000000 [02:19<00:00, 7152.63it/s]\n", - "100%|██████████| 1000000/1000000 [01:20<00:00, 12404.88it/s]\n", - "100%|██████████| 1000000/1000000 [01:21<00:00, 12250.35it/s]\n" + "100%|██████████| 500000/500000 [01:18<00:00, 6366.10it/s]\n", + "100%|██████████| 500000/500000 [01:30<00:00, 5510.32it/s]\n", + "100%|██████████| 500000/500000 [00:37<00:00, 13173.96it/s]\n", + "100%|██████████| 500000/500000 [00:46<00:00, 10735.60it/s]\n" ] } ], @@ -414,7 +405,30 @@ " with model:\n", " step = pm.Metropolis()\n", " o3_traces.append(pm.sample(samples, step))\n", - " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 460, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 500000/500000 [01:58<00:00, 4217.96it/s] \n", + "100%|██████████| 500000/500000 [01:21<00:00, 6134.67it/s]\n", + "100%|██████████| 500000/500000 [00:41<00:00, 12008.90it/s]\n", + "100%|██████████| 500000/500000 [00:39<00:00, 12759.22it/s]\n", + "100%|██████████| 500000/500000 [01:21<00:00, 6119.15it/s]\n", + "100%|██████████| 500000/500000 [01:16<00:00, 6533.95it/s]\n", + "100%|██████████| 500000/500000 [00:40<00:00, 12215.28it/s]\n", + "100%|██████████| 500000/500000 [00:41<00:00, 12162.46it/s]\n" + ] + } + ], + "source": [ "o4_traces = [] \n", "for model in o4_models:\n", " with model:\n", @@ -430,7 +444,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 461, "metadata": { "collapsed": true }, @@ -442,7 +456,39 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 462, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "a = stats.gaussian_kde(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 463, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "19.899497487437188" + ] + }, + "execution_count": 463, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x = np.linspace(0,90, 200)\n", + "x[a.pdf(x).argmax()]" + ] + }, + { + "cell_type": "code", + "execution_count": 470, "metadata": {}, "outputs": [ { @@ -450,18 +496,18 @@ "output_type": "stream", "text": [ "|Scenario|Lower\t|MAP\t|Median\t|Upper\t|\n", - "| 2015 -- 2016 | 0.00\t | 0.00\t | 5.50\t | 23.77\t |\n", - "| 2016 -- 2017 | 0.17\t | 3.58\t | 6.72\t | 19.12\t |\n", - "| 2017 -- 2018 | 1.87\t | 7.54\t | 9.78\t | 21.13\t |\n", - "| 2019+ | 9.94\t | 19.68\t | 21.35\t | 35.24\t |\n", - "| 2022+ | 24.85\t | 38.31\t | 41.32\t | 60.22\t |\n" + "2015 -- 2016 & 0.00\t & 0.45\t & 2.75\t & 11.91\t\n", + "2016 -- 2017 & 0.20\t & 4.07\t & 6.72\t & 19.05\t\n", + "2017 -- 2018 & 1.37\t & 5.88\t & 6.99\t & 15.26\t\n", + "2020+ & 7.30\t & 14.47\t & 15.25\t & 25.25\t\n", + "2024+ & 12.42\t & 20.35\t & 20.65\t & 30.09\t\n" ] }, { "data": { - "image/png": "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\nvH1mAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -475,7 +521,7 @@ "\n", "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", "priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "scenarios = [\"2015 -- 2016\", \"2016 -- 2017\", \"2017 -- 2018\", \"2019+\", \"2022+\"]\n", + "scenarios = [\"2015 -- 2016\", \"2016 -- 2017\", \"2017 -- 2018\", \"2020+\", \"2024+\"]\n", "print \"|Scenario|Lower\\t|MAP\\t|Median\\t|Upper\\t|\"\n", "\n", "pos = [.5, 1, 1.5, 2, 2.5]\n", @@ -487,14 +533,16 @@ " #i = i/2.0\n", " data = trace[0][2000:]['signal_rate']\n", "\n", - " parts = ax.violinplot(data, [pos[i]], points=50, widths=0.3, vert= False,\n", + " parts = ax.violinplot(data, [pos[i]], points=200, widths=0.3, vert= False,\n", " #showmeans = True, showmedians=True, \n", + " bw_method=\"silverman\",\n", " showmeans=False, showextrema=False, showmedians=False)\n", "\n", " lower_p , medians, upper_p = np.percentile(data, [2.5, 50, 97.50])\n", " lower, upper = pymc3.stats.hpd(data, alpha=0.05)\n", - " hist = np.histogram(data, bins = 50)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", + " a = stats.gaussian_kde(data)\n", + " x = np.linspace(0,90, 200)\n", + " MAP = x[a.pdf(x).argmax()]\n", "\n", "\n", "\n", @@ -505,32 +553,33 @@ " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", " #ax2.vlines(inds, whiskersMin, whiskersMax, color='k', linestyle='-', lw=1)\n", "\n", - " print \"| {} | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t |\".format(scenarios[i], lower, MAP, medians, upper)\n", + " print \"{} & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t\".format(scenarios[i], lower, MAP, medians, upper)\n", "\n", "\n", "axis = ax\n", "axis.set_yticks(pos)\n", - "axis.set_yticklabels([\"2015-2016\", \"2016-2017\", \"2017-2018\", \"2019+\", \"2022+\"])\n", + "axis.set_yticklabels([\"2015-2016\", \"2016-2017\", \"2017-2018\", \"2020+\", \"2024+\"])\n", "axis.set_xlim([0, 70])\n", "ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", "#ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", "ax.grid(b=True, axis=\"x\", which='major', linewidth=0.5)\n", + "ax.grid(b=True, axis=\"y\", which='major', linewidth=0.)\n", "#ax.grid(b=True, which='minor', linewidth=0.5)\n", - "ax.set_xlabel(r\"Event rate [yr$^-1$]\")\n", + "ax.set_xlabel(r\"Event rate [yr$^{-1}$]\")\n", "ax.set_ylabel(r\"Observing Scenario\")\n", "f.subplots_adjust(0.21, 0.17, .97, .95, wspace=0.05)\n", - "f.savefig(\"rate_posteriors_violin.pdf\")" + "f.savefig(\"../final_paper/rate_posteriors_violin.pdf\")" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 425, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "def beaming_violins(traces, priors):\n", + "def beaming_violins(traces, priors, xmax = 90):\n", "\n", " width = 3.487 #* 2\n", " height = width / 1.618\n", @@ -544,12 +593,8 @@ " pos = [.5, 1, 1.5, 2]\n", "\n", " for i in range(len(priors)):\n", - "\n", - " o2_trace = traces[i]\n", - " #o2_trace = o2_traces[i]\n", - "\n", " #i = i/2.0\n", - " t_data = o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]\n", + " t_data = traces[i][2000:]['angle'][np.isfinite(traces[i][2000:]['angle'])]\n", " data = np.rad2deg(t_data)\n", "\n", " parts = ax.violinplot(data, [pos[i]], points=100, widths=0.3, vert= False,\n", @@ -558,8 +603,10 @@ "\n", " lower_p, medians, upper_p = np.percentile(data, [2.5, 50, 97.50])\n", " lower, upper = pymc3.stats.hpd(t_data, alpha=0.05, transform=np.rad2deg)\n", - " hist = np.histogram(data, bins = 90)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", + "\n", + " a = stats.gaussian_kde(data)\n", + " x = np.linspace(0,90, 200)\n", + " MAP = x[a.pdf(x).argmax()]\n", "\n", "\n", "\n", @@ -570,12 +617,12 @@ " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", " #ax2.vlines(inds, whiskersMin, whiskersMax, color='k', linestyle='-', lw=1)\n", "\n", - " print \"| {} \\t| {:.2f}\\t| {:.2f}\\t| {:.2f}\\t| {:.2f}\\t|\".format(priors[i], lower, MAP, medians, upper)\n", + " print \"& {} \\t & {:.2f}\\t & {:.2f}\\t& {:.2f}\\t& {:.2f}\\t \\\\\\\\\".format(priors[i], lower, MAP, medians, upper)\n", "\n", " axis = ax\n", " axis.set_yticks(pos)\n", " axis.set_yticklabels(priors)\n", - " axis.set_xlim([0, 52])\n", + " axis.set_xlim([0, xmax])\n", " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", @@ -592,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 428, "metadata": {}, "outputs": [ { @@ -601,28 +648,17 @@ "text": [ "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", "|----------|\n", - "| U(0,1) \t| 1.56\t| 3.18\t| 7.03\t| 32.55\t|\n", - "| Jeffreys \t| 1.43\t| 3.23\t| 7.21\t| 42.67\t|\n", - "| $\\delta(1)$ \t| 1.50\t| 2.99\t| 4.45\t| 16.33\t|\n", - "| $\\delta(0.5)$ \t| 2.01\t| 3.70\t| 6.28\t| 22.59\t|\n" + "& U(0,1) \t & 2.00\t & 5.43\t& 9.24\t& 40.17\t \\\\\n", + "& Jeffreys \t & 1.90\t & 5.43\t& 9.50\t& 49.71\t \\\\\n", + "& $\\delta(1)$ \t & 1.76\t & 4.07\t& 5.83\t& 21.04\t \\\\\n", + "& $\\delta(0.5)$ \t & 2.51\t & 5.88\t& 8.22\t& 28.35\t \\\\\n" ] }, { "data": { - "image/png": "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\nRK5CYII=\n", - "text/plain": [ - "" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -630,12 +666,13 @@ } ], "source": [ - "beaming_violins(o1_traces, priors)" + "o1plot = beaming_violins(o1_traces, priors, xmax=60)\n", + "o1plot.savefig(\"../final_paper/O1_beaming_posteriors_violin.pdf\")" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 435, "metadata": {}, "outputs": [ { @@ -644,28 +681,50 @@ "text": [ "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", "|----------|\n", - "| U(0,1) \t| 2.17\t| 4.70\t| 7.16\t| 25.48\t|\n", - "| Jeffreys \t| 1.96\t| 3.70\t| 7.23\t| 38.70\t|\n", - "| $\\delta(1)$ \t| 2.11\t| 3.24\t| 4.59\t| 10.17\t|\n", - "| $\\delta(0.5)$ \t| 2.96\t| 5.04\t| 6.50\t| 14.39\t|\n" + "& U(0,1) \t & 3.09\t & 6.78\t& 9.91\t& 34.23\t \\\\\n", + "& Jeffreys \t & 2.85\t & 6.78\t& 9.91\t& 46.93\t \\\\\n", + "& $\\delta(1)$ \t & 2.88\t & 5.43\t& 6.40\t& 14.15\t \\\\\n", + "& $\\delta(0.5)$ \t & 4.06\t & 7.69\t& 9.07\t& 20.05\t \\\\\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, - "execution_count": 43, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" + } + ], + "source": [ + "o2_plot = beaming_violins(o2_traces, priors, xmax=60)\n", + "o2_plot.savefig(\"../final_paper/O2_beaming_posteriors_violin.pdf\")" + ] + }, + { + "cell_type": "code", + "execution_count": 472, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", + "|----------|\n", + "& U(0,1) \t & 6.71\t & 12.66\t& 16.33\t& 47.29\t \\\\\n", + "& Jeffreys \t & 6.35\t & 11.76\t& 15.85\t& 57.19\t \\\\\n", + "& $\\delta(1)$ \t & 6.42\t & 9.95\t& 10.97\t& 18.44\t \\\\\n", + "& $\\delta(0.5)$ \t & 8.94\t & 14.02\t& 15.55\t& 26.01\t \\\\\n" + ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPwAAAChCAYAAADju9JOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX1wG+ed37+7iwXAN2AFyqIkS6kInmd6dedOgqjpH3fT\nqBboi8eXXM4CyZnLXOemlSC7/aOTNhLMcf+w5yZ3JqU0qTu5iJTupnPnXEMRcl4cvygEEzt2phkT\nBGUr8ktlLilZIiVKBMBXgHjZ7R/grgAS4AIg3vn7zGgI7D777A8Qvvu8P19GlmUZBEFsC9hyB0AQ\nROkgwRPENoIETxDbCBI8QWwjSPAEsY0gwRPENkJX7gAKxcjISLlDIIiK4tixYxuO1YzggfQfsJxM\nT09j79695Q5jAxRX9lRiTIB2XJkKQKrSE8Q2ggRPENsITcEvLCyUIg6CIEqApuBPnDiBq1evliKW\nikGWZayuriIWi5U7FIIoKJqddpcuXQIAXLhwAaIooru7GwcPHix6YOUgEAggEAggEolAkiSwLIuG\nhgaYzWY0NjaCZakFRFQ3mr/gZ599Ft3d3Zifn4fT6URraytee+21UsRWUgKBAGZmZhAOhyFJEgBA\nkiQsLi7i9u3bEEURy8vLZY6SILaGZgl/+PBhnDx5MuXYxMRE0QIqB8FgEDMzM5umiUQiuHnzJsxm\nM1paWqDT1dSIJrFN0Czh29vb1Y67qakpAMDp06eLGlQpmZ+f1xT7+vSff/45pqenEQ6HixgZQRQe\nTcGPjY3BZDIBAHw+X9EDKiWhUAgzMzPIdQ8QSZIQDAYhiiKmpqYQDAYRj8eLFCVBFA5NwQcCAUxN\nTWFhYQEffPBBQW/udruzTiuKIkRRLNi9Y7EYbt++rbbX82VlZQXT09O4ceMG7ty5g6WlpS3nSRDF\nQlPwDocDL7/8Mk6ePIlnn3027xuJooiBgQFV5AMDA3A4HAgGg+jr64Pb7U6pQYiiiMOHD+PUqVMQ\nRRFWqxUejyfv+ycjyzLu3LmDaDS64ZwkSXjjjTdyFq0kSZifn8etW7dw48YNTE9PY3l5GZFIpCAx\nE0Qh0Ox5am1txfnz5wE8bMPni8VigcPhAJDoKAMSwnc6nRAEAS6XCzabTU0/MjICQRBSrlfEny9H\njx5FJBLBxYsXN5yTJAnPP/88RkZG8O677+Lll1/GSy+9lPK5Dxw4gJdeemnTe8TjcQSDQfj9fkSj\nUXAcB4PBAL1eD71eD4PBAJ7nodPpNu38O3r0KADgnXfeyeejEsQGNAV/9uxZiKIIWZYxNjaG0dHR\nvG5ksVgwPDwMu90OQRBUIY+OjuLMmTMAsKHKrswBaG9vh81mU0t5p9OZ8/0jkQgCgQBCoRBmZ2c3\nDC1KkoTLly/j+vXriMfjePvtt/HFF19gfn4eN2/eVNM9ePAg62HJUCiEurq6TdMwDAOWZcGyLBiG\nSfl3+/ZttLS0IBgMguO4lHMA1HkB669Tzif/VV4T25ushuWUXvnJycm8buLxeGC1WtHR0QGv1wur\n1QqLxaKeDwaDEARBLfUBwGq1qsI+deoU+vv7t1StX1pawtLSUsYOumvXruGTTz5RO9/i8Tg++eQT\nmM3mvO6XLbIsIx6Pq/dNFq0kSYjH41hcXMz4UFh/TbrzShrlbygUwvLy8oYHR3K69a+1ziUf36wT\ndP3DaP13kW//R6b8tNJoIctyzp266e6ZLo9yPIQ1BX/+/HkMDQ3BbDZjfHwcV65cyfkmw8PD6O3t\nhcfjgd1uB/CwND9y5Aj8fn9KqQ8kqvpdXV0QBAF+vx8A4Pf7867OWywWWCwWGAwGtLS04Jlnnkk5\n//Wvfx2hUAi/+MUvEI1GwfM8nnzySdy7dw8PHjxQ0+3cuXPDtZnw+/0pD7bkqj3P82q1nud5sCwL\njuNSxKd81/v378/rM2diYWEBDQ0NBc2zECi1nULmV4g8CpVPJaAp+O7ublWkXq83r5t0d3ernXXJ\nogYAp9OJgYEBCIKAnp4eiKIIt9sNh8MBr9cLURTR29sLIDEsmNzGz4f33nsP0WgUk5OTKXPlWZbF\nyy+/DCDRd3Ds2DG1DZ/MgQMHsrqPTqdDY2MjWlpaYDQaYTAYcp6sQ213otBo/gJtNhvGxsbQ3t6O\ntra2vG5is9k2CFURviAIahteQXm/vjTfSgmfDM/z2LdvH27dupVShVRE/9Zbb+Gpp54Cy7KaHXTJ\ncBwHk8kEk8mE+vp6zMzMoLm5ecvxEkSh0Kw/KTtnmEymgo6DO53OnNrjoiiqNY1CUF9fj127dm04\nzrIsnn766ayrlgzDoKmpCfv27cNjjz2GPXv2oKGhoWKqcASRjGYJL8syLBYLFhYWMDY2hieeeKJg\nN89FwIUo2ddjsVgQDodTOguzhed5td+B5/mCx0YQxUBT8Ha7HS6XCwzDqG3pWmLPnj2QJCnrjT54\nnseuXbtgMpmoFCeqjoz1VmViitvthtVqRWtrK1wuV8kCKxUMw2Dv3r1oamrSTGexWGC1WmE2m0ns\nRFWSsYQ/fPgwgESHW3t7O4D8e+krHZZl8eijj+LOnTtYXFzccK6pqQnNzc0wGo1lipAgCkNGwR86\ndAgA0NzcDIZhYDKZ8u6lrwZYlsX+/fsRjUYRDoexuroKnufR1NREO90QNYPmL9nr9dbs8th0KCLf\nuXMnzGYziZ2oKcq6PJYgiNKi2UuvLI8NBAI12UtPENsJTcEzDKP2zvt8vqynlhIEUXlkrNKfO3cO\nk5OTOHPmDEZGRuDxeDA8PFzK2AiCKDAZS3ibzYbW1lacOnVKNWnc6gYYBEGUl4yCv3TpEi5duoTJ\nyUm43e4tb4BBEET5ySj4zs5OHDt2TF0qCuS/AQZBEJVBRsH7fD6Mj49jdHQU4+PjkGUZXq8Xg4OD\npYyPIIgCklHwp0+fxvz8PA4dOqROrS3GijWCIErHphNvzGYzrFYrxsbGwDCMOr+eIIjqpGwbYBAE\nUXo0Bb9+A4xaQZZlBOZWcW9mBSvLsS3tTEoQ1cK23ABjNRzHg/thRCOJ/exCKyHwPIvmXUYYjVyZ\noyOI4pGV84xiCFELSJKM2bshxOOpJXo0KuHe9AqEHXqYBD1tcEHUJNtu7ed8MLJB7AqyDAT8Edyb\nCSEWI0NIovbISfDVPrU2HpOwOK9t7hgOxTFzO9G2J4haIitvuYmJCQCo+qm1wUAE2ToZxeOJqn99\ngw5NJh519bmZSBBEJVISb7lcUZxnklGGBPOd/BONSlha3GgPrcXKcgwryzHwPIsmE4+GJh4cR+17\nojrRrNKfP38ezz33HJ5//vkt+cNnYjPfeI/Hg76+PgDYkpFkNCrh3swKlJE3SZLw059dysm4MBqV\n4J9bxZ1bS3gwG8LiQhSRSJyG84iqIitvuY6ODnUufTFI5xsvCAKsVmvKGvx8/OFXw3EcPXoUsgz8\n6J/fhCRJ+OZ/O4lhzxv45a+u4LvfuYAX/vt/weTU5+o1rQd+D3/7N/8rbX6SBCwtxrC0mGjfsyyg\n41nwPAsdz0KnY8HzDFiWwfHjx2EwGMgjjqgYNAUvCAJOnDiB+fn5ouxLn8k3Ph25+sPLsozZeyHI\nMjB7/y7+z+A/4NKlf8K1332IeDyGN978MW7dEhGcD2JqakK9bvb+XQwO/e+tfjTMzMxid8te3BQX\nodOx4DgGDAuwbOKBwHKJv0oDQTmXcCwFwCBxjnmY5uEx5W3iAMMgKc3GJkfyIUmSIUnrrZQfvlYq\nLZuNTMpy5vPZWDenzzM/a2YaQs0eTcHPz8+r4/CvvfZaQW+u5Ru/nlyr9QzDYFdLnfrD/PAjH65/\nfA3xeKJ0jsdjuP7xtU0fMtr3SIiUWxNvQsiJe3McYKzj8C+sm5tclBolzkxko59cNZaNKAtlzUxk\nRlPwSg89AMzNzRX05pv5xqcjH/dYg5GD3sChpWU3/uavX0FoJYS33v4potEIeF6Pp77yZ7h7dxr3\n78+q1+x6ZDe6O/8qbX4sC9Q36GAw6mAwJqrymX6kr776jznFShDFJqtda7u6uooytXYz33ggUQPw\n+Xxquz1ff/h3330H0YiE6dvL+O53LgAAhj1voMP+tNqGT9Zs64Hf25BHPr30brcbe/fuzTlegigW\nZZ1au5lvPJCwlE5ur2/FH57Xs2hs4rG4EMV3v3MBr//cja/+qQMsy2bsoANA4/BETVFxU2sz+cYX\nwh/evEMPlk3YSv3Z17o2dZXhOAa7dtdh1+46EjtRM1TkLzmdsAux245Ox6LJrMd8YPPptcY6Djt3\nGaHTVdzzkCC2xLb7RZsFfcY2OMMAgkWPlj11JHaiJtlWi2eAxJDUrt114PWpH53nWbTsrYeww0BD\nQ0TNsq0WzygYjBz27qtH0B9BJBJHk0mPunqOhE7UPBW5eKYUMAyDHc2GcodBECVFU/Dnz5/H0NAQ\nzGYzxsfHceXKlVLERRBEEaiIxTMEQZQGzU47ZfGMMtuOIIjqpayLZwiCKC2aJXwxF88QBFFayrp4\nhiCI0pKxhL948SKAxIovq9WK1tbWomyAQRBE6chYwivGkTabTXWPpV56gqhuMpbwhw4dAgA0NzfD\nbDYjEAhQLz1BVDkZS/jJyUm43W54vV4cOXIEsizD7/fjiSeeKGV8BEEUkIyCb21thcPhgNVqhc1m\ng8VigdlsLmVsBEEUmE176VtbW9Ha2qq+v3r1Kg4ePFj0oMrBYjiKcEzCakxCLC6hXq+DuU4Hg47c\nZInaQXNYrqurC83NzZibm8Pk5GRNrJZLZjEchTi3gvlQeleaej2HnQ167DYZYeRJ/ER1oyn4Cxcu\nqFX5kZGRogdUKiIxCeLcMmYXVzdNtxKJ41YkhFuBEIQ6HnvMRjQ36MFSByZRhWQl+OQZdseOHStq\nQKVgaTWG6zMLWM3REjoYiiIYioLnGOxqMmCPyYh6fUXuEkYQaclq19qTJ0/WTIfd7OIqbtxfRHwL\n9u/RuIw7wTDuBMNoMHB4pNGARxoMqNNTlZ+obDQFf/z4cXXRzDPPPFP0gIqFJMuYmlvB7WCooPku\nr8axvLqCqbkV1Os5mI08hHoeQh1f0PsQRCHQXDxz9uxZzM3NQZZlnDt3btO0oiiis7NTdXxdT19f\nHzwej5pmM5eZQrISieHq7WDBxb7xPnHMLITxyd1F/N9JP67OLOP6zAJuBVbwYGkVy5EYJHKbJcpI\nVltcKZNtfvnLX26aVvGJS7eltOIKa7fbMTw8jDNnzuQTb87cWwzj8/tLaavwkiRh5Oc/xrE//fNN\n96jPl0hcwtxyBHPLD7fFZhhAz7Ew6lgYeA5GHQueY2FY+6vnWPA6BroixEMQaQWvzLIDgNHRUfh8\nvpxn2omiqBpK2O12iKKI0dFR1T5KsZBS7KBdLldKeo/Hg7GxMfT396OzsxPf+MY30NjYCJ/Pl9PD\n4ukn7YhLMv7nD3+aclySJHz7W/8J73vewm/fGcYL5/5OU/RnX/iv+CLJZXb/gTac/vb/yDoWIOG6\nuro23o9wLGM6jgV0LAueY8BziYcBxzDQcQx0LAOOZcAyD/+yDNT3DAOwYBKmG2vOs+xaOiI9R48e\nBYCat/ZOK/hgMAiHwwGLxZK1NfN6XC4Xenp64Pf7IYoi2tvb4fP5YLfbMTQ0BJvNBqvVitHRUfT2\n9qKzszMlvdPpRGdnJwCgp6cHHo8Hc3Nz6O7uzjkW//17eHvon9T3siThZ0P/jM9+9yHi8Th+9eZP\nMH1rEl/r/Aswm4j+ww9+gy+mHjZD/LN3U/JdTygUQl1dXc7xFhOGScRVX1+PNUdq9TjAqB576rm1\nAwxSHWM32FinHF/3PunVZs+c5eVlNDQ0pFhjp3mZJteHL/J5pDEMcPvOHezavQf3FsNJeTOYW4lC\ntzZ0y+Rwj3TrTlK/6zR5ZfNAXmsSLoRjqF9JY6iikUdawSsLZ3Khr68PDodDrboDUKflJh9bT3Nz\nc8b0R44cwcDAAJxOp+o553K5MDQ0lHN8yXz80VXc+Pga4vE4ACAej+PGx9fw8UdX8fjB3M0qKwGG\nSfzIWGDNQ55RPeMTYn0oODnKoo7nkkStyvHhj5pJlVXq+6QHRJo4gDSiSHpwZCKuY1HPcxsSbXyo\npL/JZnlraYllGPAsi+Z6fUqGq0YdLA28es9MYi31wrIVow5CcqxZkrENf/HiRZw4cQJnz56F3++H\nLMuYnJzE4OBg2vQOhwOiKGJubg52ux1WqxUDAwNqSe7z+TA6OgpRFOH1eiGKonosGAyit7c3Jb0g\nCHA4HOjv7weQWJdvs9nQ0dGR0wdkAFgeacFXOv9SPfbk8W9gJRTCO2+/jlg0Ah2vx5e/8lV886+/\ns2m1/s2fuFNKeMuu3Sn5rsfvn4PF0pzx/Hp0HJNow3Ms9GtVeR2X+CHyHAuOTVTndRwDjkmt1ufC\n9PR0RbraljOuwR/9CACg41L//xPfee30pzCynL7beHx8HIcOHcLIyEjKevhSTrwJBoMQRTEri+iR\nkZG0sYUicXw6u4jFde3l5Db8H9ufKkobPlnwDAMYdImStW6ts87AczDoEh11eh1bsjY2CT57KjEm\nQDuuTHrIWMIr1Xq3261eeOTIka3GmTV9fX2wWq1wOBxbyqdOz+EPHzXjpj8xBq883liWxQvn/i6n\nXvpsO+gYBmgy6MA36tG6qxGNBh3q9Rx1mhFlR3NYTpZl9PT0wGKxwOv1ZqzSF5pCDtuxDIPW5gbs\nqOPxyb1FROMJ1bMsi46vHS/IPep4Fs0NBgh1PEx1OuhYFtPTK9htMhYkf4IoBJqC7+joUO2bC2HZ\nXE6Eej0O7RNw/e4CllfjW86vjmfxSJMBOxsMaDTQnHqi8tH8lba1tcFsNmNqago7duwoRUxFxchz\nOPiogM9mF/FgaXOf+HSwDLCz0YDdJiNNnyWqjm25xRXHMvhXu02YXVzFlH8Z4aj2SpoGPYcWkxG7\nmwwbenIJolrIeour5uZmmEymUsZWdHY1GbCzUY/pYAi3gyFE4g8HLBgGaDToYDbyaG7Qw0ylOVED\naG5xdfnyZbS1tcHlcuHJJ5/EiRMnShVbSWAZBvt21GPfjnpIsoxITEIkLqGe56gkJ2oOzTb8oUOH\nMDg4iN7e3pKtbisXLMPAyHO0lRVRs2RVhDU3N4NhGIyPjxc7HoIgioim1ZTP58ODBw9w/vz5mtvA\nkiC2G5pWU4cPH0Z7eztkWSarKYKocjadWvvss8/C6/WCYRi0t7fjBz/4QSljIwiiwGQU/Llz5+By\nuVQjisnJSZw7dw7f+ta3ShYcQRCFJWMbfr3rzPr3BEFUHxkFn24abS1MrSWI7UzGKr3T6URbW5v6\nXtkA48aNGyUJjCCIwpNR8ENDQxu2uqJxeIKobjJW6dPta5fPXncEQVQONFl8HbIsQwqHIMczbyFN\nENUK7doAQI7HEZv+AtJiENLyEiBJiS2YjXVgG03gBAtYwbLpFtYEUQ1se8FLoRVEbnwMObSSekKW\nIYdWEA+tIH7/LqDjodu5C9wju8HWN5QnWILYIppF1nPPPae+XlhYKGowpSb24B5Wf+fbKPa0iaOI\n3b2D1WtjWL1+FbH7dyHHt75NFkGUkordxLLYRO/cQuz2VF7XSksLkJYWEL05AU5oBmfZCda8AwxH\ny2qJyiarTSw7Ojogy3LVb2KpEL09hdidW1vPKB5HfG4W8blZgGXBmneAMwlgzTvA1tVvPX+CKDCa\nVXpBEHDixAl0dXUVdKadYlaZDaIoFmzzjegXBRL7eiQJUmAO0ZsTWP3Ii/D4byHf/ByxmduQlhYh\nS9r75hFEsdEU/Pz8PC5duoQrV65s6hG3Hp/Ph7a2Nvh8PgAJYwmXywUAGBgYUH3o+vr64Ha71XRA\nwnHG4/GoPvNWq1V1ls0XORZDZOJTxKbTi12SJAxeGYZUIGHKkQgQ9CN6S8Tq9XGEvb9B+CMvIp9/\nmmhOPJhNPAhiNPxHlA7NKv3ExENrpbm5uawzVjziFJsop9MJv98P4KFXfLJRpMvlUtMKggCr1apa\nSQOAxWKBKIp5NSu+/Ed/BHk1hCvf/17a85Ik4T+++G28/uv38fZvfou/f/GFtE40//lvz+LGrS/U\n9499aT++33M6uyCSev03wLJg9EYwBgMYngfD68HweoDnwXA6QKcDw+nA6HQAxyWOVRDbxWq5FtD8\n5TgcDnR1dYFhGPT29hbkpooT7OjoqOowo1VlV0r5XO2ro3duQQ6tYMbvxz+88faG85Is4x9/8jNc\n/eQzxOJxXB75FSamp/Hvv/61DdZQ741/iM+TBH93Ln2eCsWzi2YS2+qyDMCwYBhWsY9NHFPOq46x\nyjEADIPl5RU0NDYmWcQyiTRJ1yD5muR7Jr9dOzk9PY29e/ZAjkaTrkUaL+fUv6V2XCWycI91u91q\nqepyubbcSy+KIiwWi/o+GAxCEATN5kK+1Xo5urnZxNj1j/HRZzcQWxtii8Xj+OizGxi7/jGO/OvH\nc75faZATPuFxAIgjrRsoAEVosirmtWOhECR2TbBrDwEZ6QSPNOJ8+BCQlfPxOORIBLHZmcxizpBv\nsrG77L+PmJ5LOc4kx6RctyGPzT9/srk9s+FzJqVT8kzyV5XDK5BWltNkzaR/nXzfDOGkPbVpfhuR\no9GHD9gc0NziymazpbjH5oJSkgNIqY4rpfmRI0fg9/shCEJK2nT4/f68qvO63fsAnQ57LBb8h6e/\nsuH8Xz31JMLLK/jxr95BJBqDntfhz//dl/H909/cUK3/0c/fTCnhdzenzzM55uSHW9ZwurVqvQ7Q\n8Rur85wuMQS49o/hOIDlEjMBWW6tpGczlqCFdkQd/PmbAAD+0S9tKR8mKkG3s6UQIRUMxlhfkROt\nEk2/3L0Siuoe29vbq7rACoKwwfbZ6XRiYGAAgiCgp6cHoiiiv78fvb298Hg88Pl86oPC5/NlZRu9\nHtZoxK8/GEXs/l1Eb4rAujnyLMvi7198AQDw+q/fx1f/7R9nbMM/9qX9m77PFkZvAGOsA2MwJv7q\nDWvtdwMYvb7qpvBS2716KOrEG6vVmtYFVinNBUHYcL67uxtA4mGQ3F7Pt4RX0D2yG5x5B1Y/vbZh\nZp0i+qHhEXR2HMtoHZ11B10STF092EYT2MYmsHUNYOrrK67Tjdg+lMU91ul0wuPxqPlqIYpi1mk3\ng9EbYPj9P8Tqpx9BXtcuY1kW3X/SsfV71DeAM+8AaxKAhSUYv7S1ai5BFJJNBX/16lV0dHSonnLH\njxfGSx1ARgGnq7YXcoYfw/Mw/Ms/wOpn1yAvLxUgQxasSQBn2QluhyUxnKacWglvPX+CKCAZBX/2\n7FlMTEwgEAigp6cHBw8eLGVcRUURfeT/XYe0OJ9XHmyTCdwju8Ht2JnoUCOIKiDjL9VqteL06USb\n9fLlyzUleABgdDrof/8PELt9E7GZL1KGYjJCS2SJKiej4JPnzSuvr169WlPCZxgG/P4DYE1mRCc+\nSz9mz7BgTWboHtkNdkdz1fWgE0QymrvWyrKsjifX6q61nHkH2EP/BnIoMclCXlkGw/NgG01gGhpJ\n5ETNQLvWrsEwDJj6BqqqEzUN7VpLENsIqqsWkVdffbXcIaSF4sqeSowJyD+ubSH4119/Pe/zW7n2\nhz/8YVnuq3VtNcZF/4e5xZUJErzG+a1cq0W5fixaVGJc9H9YGBhZzmYAuvIZGRkpdwgEUVEoi96S\nqRnBEwShzbao0peK9XvxZdqzjyDKBffiiy++WO4gtkIwGMQrr7yCmZkZhMNh7Nmzp2yxGI1GAMB7\n772Hjo4OvPLKK3A6nbDZbPje976Hjo6tr8bLh2AwiPfffx9utxuhUAgWi6Xs35kSk8fjQSAQqIiY\nkunr68Pjjz+OcDhcEXEpK0Z9Ph8ef/xxMAyTX1xyldPb2ysHAgFZlmX5zJkzZY5GlicmJtQ4HA6H\nejz5danp7++XJyYmZFmWZbvdXhHf2fDwsDw8PCyPjY3Jvb29FRGTQiAQkB0OhzwxMVExcU1MTKhx\nyHL+v/uqr9KPjo6qG2oUau/6QqLs1ZfLFt+Fxul0qrsGWa3WivjO7HY7rFYr+vv7cebMmYqIScHr\n9aq7O1VSXJcuXcLAwAB8Pl/ecVW94IHKEFU6lD37AGju2VcKBgcH1Z2HK+E7s1qtcLlc6OzsrJiY\nfD6fuoejQiXEZbVa1V2g+vv7846r6gVfaaJK3ovP6XTC7XZjYGAAPT09ZY3L7Xajp6cHfr+/Ir4z\nl8ul7lcoimJFxAQkSkuv14vR0VF4PJ6KiWtgYEAV9lb+D6t+WC4YDKobYba3t+e10WWt43a74XK5\nVGOQnp6esn9nPp8Pfr9f3Zy0vb297DEpBINBdHZ2orOzE11dXRURl2K3pnTeWSyWvOKqesETBJE9\nVV+lJwgie0jwBLGNIMETxDaCBE9UDD6fL6spyC6XK+1QlNvt3rKteK1Dgq8BfD4f2tra4PF41B75\nQuQ5MDCwpTyUNQXZYrVas3I2OnLkCARBgM/ng9vthtvtBpBwOq60uRiVBgm+BrDZbLDZbLDb7XA4\nHOrwzVbzzNWaO5lgMIi5ubktxaDF4OAgHA4HhoeHi3qfWoIcFGoEZaWeKIro6OhQJ7QoVVy73Y5g\nMAiv14tgMKjafQ0ODuLUqVMYHh5GR0cHhoeHU8w8lVL31KlT8Pl8OHPmjJqvYvWd6cHQ1tamjrO7\n3W7NfLq6ugBgQ9zpnIfcbjeam5vhdrvLPuW1mqASvkYQBAF2ux1OpxMTExPw+XxwuVxob29XxW+z\n2VT7asXbz2KxwG63qxM6FJG2t7djbm4uJc3ExASA1Omn6SzDlNlqFotFraLnks/6uNMxOjqqPmjK\ntQqxGqESvgZR2vMA1Nl1wWAQLpcL3d3dEARBbesq0zI387FfP3Uz+QGSrvQNBoOqgJPb5Fr5JLe/\nk+PeLC6lRkJkBwm+BlB6t5Uq/fDwMC5cuACHw4GBgQFVUG1tbRBFEX6/H2NjY9DpdOq8f6/XC1EU\nMTY2BiAxX1s5vj6NIAgYHByE1WqFxWJJmdbp8XgwNDSUssCjr68PNptNMx/lnr29vSlxp5sr3tHR\nAbfbjc4IkzVaAAAAdklEQVTOzopYQ1E1FHTRLrEtSF6L7XQ6S57P0NBQXucIWaYSnsgZq9UKr9cL\nADh8+HDZ8yGyhwRP5IzD4ShrPqOjo7Db7Ruq8m63m6r3GtBqOYLYRtCwHEFsI0jwBLGNIMETxDaC\nBE8Q2wgSPEFsI0jwBLGN+P8rPqND2iu8swAAAABJRU5ErkJggg==\n", + "image/png": "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\nACiUPcz/B6Zb+3WrAraZAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -673,30 +732,31 @@ } ], "source": [ - "beaming_violins(o2_traces, priors)" + "o3_plot = beaming_violins(o3_traces, priors, xmax=60)" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 464, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "|Lower\t|MAP\t|Median\t|Upper\t|\n", - "| 0.26\t | 0.20\t | 1.28\t | 6.59\t |\n", - "| 0.23\t | 0.18\t | 1.36\t | 12.56\t |\n", - "| 0.23\t | 0.18\t | 0.79\t | 2.90\t |\n", - "| 0.34\t | 0.25\t | 1.12\t | 4.12\t |\n" + "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", + "|----------|\n", + "& U(0,1) \t & 8.20\t & 12.66\t& 16.04\t& 44.73\t \\\\\n", + "& Jeffreys \t & 7.82\t & 12.21\t& 15.35\t& 56.99\t \\\\\n", + "& $\\delta(1)$ \t & 8.10\t & 10.85\t& 11.12\t& 14.95\t \\\\\n", + "& $\\delta(0.5)$ \t & 11.47\t & 14.92\t& 15.75\t& 21.17\t \\\\\n" ] }, { "data": { - "image/png": "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\nAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -704,80 +764,42 @@ } ], "source": [ - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "\n", - "\n", - "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "print \"|Lower\\t|MAP\\t|Median\\t|Upper\\t|\"\n", - "matplotlib.rcParams.update({'font.size': 10})\n", - "pos = [.5, 1, 1.5, 2]\n", - "\n", - "for i in range(len(priors)):\n", - "\n", - " o1_trace = o1_traces[i]\n", - " #o2_trace = o2_traces[i]\n", - "\n", - " #i = i/2.0\n", - " t_data = o1_trace[2000:]['angle'][np.isfinite(o1_trace[2000:]['angle'])]\n", - " data = np.rad2deg(t_data)\n", - "\n", - " parts = ax.violinplot(data, [pos[i]], points=50, widths=0.3, vert= False,\n", - " #showmeans = True, showmedians=True, \n", - " showmeans=False, showextrema=False, showmedians=False)\n", - "\n", - " lower_p, medians, upper_p = np.percentile(data, [2.5, 50, 97.50])\n", - " lower, upper = pymc3.stats.hpd(t_data, alpha=0.05, transform=np.rad2deg)\n", - " hist = np.histogram(data, bins = 50)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", - " \n", - " \n", - " \n", - " ax.hlines(pos[i], lower, upper, color='#333333', linestyle='-', lw=2, alpha = 0.5)\n", - " \n", - " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=15, zorder=3)\n", - " ax.scatter( [MAP], pos[i], marker='D', color='k', s=15, zorder=3)\n", - " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", - " #ax2.vlines(inds, whiskersMin, whiskersMax, color='k', linestyle='-', lw=1)\n", - " \n", - " print \"| {:.2f}\\t | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t |\".format(lower, MAP, medians, upper)\n", - " \n", - " axis = ax\n", - " axis.set_yticks(pos)\n", - " axis.set_yticklabels(priors)\n", - " axis.set_xlim([0, 15])\n", - " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", - " #ax.grid(b=True, which='minor', linewidth=0.5)\n", - "ax.set_xlabel(r\"Beaming Angle [$\\theta$]\")\n", - "ax.set_ylabel(r\"Prior Distribution on efficiency\")\n", - "f.subplots_adjust(0.20, 0.15, .98, .95, wspace=0.05)\n", - "f.savefig(\"O1_beaming_posteriors_violin.pdf\")" + "o4_plot = beaming_violins(o4_traces, priors, xmax=60)" + ] + }, + { + "cell_type": "code", + "execution_count": 465, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "o4_plot.savefig(\"o4_violins.png\")" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 466, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "|Lower\t|MAP\t|Median\t|Upper\t|\n", - "| 0.05\t | 0.04\t | 0.09\t | 0.29\t |\n", - "| 0.05\t | 0.04\t | 0.09\t | 0.82\t |\n", - "| 0.05\t | 0.06\t | 0.06\t | 0.08\t |\n", - "| 0.07\t | 0.09\t | 0.09\t | 0.11\t |\n" + "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", + "|----------|\n", + "& U(0,1) \t & 9.05\t & 13.12\t& 16.07\t& 45.10\t \\\\\n", + "& Jeffreys \t & 8.58\t & 12.21\t& 15.28\t& 56.30\t \\\\\n", + "& $\\delta(1)$ \t & 9.09\t & 11.31\t& 11.30\t& 14.02\t \\\\\n", + "& $\\delta(0.5)$ \t & 12.82\t & 15.83\t& 16.00\t& 19.82\t \\\\\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPwAAAChCAYAAADju9JOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFPNJREFUeJzt3U1sG2d6B/A/JdlSYlucUHHsbJNsOOzuYtvdrkVRQQ+9\ndEX6JhiIh9JifdmDNLKxKRo0sWmhpwJpvJSMAgs4sET51s0CEicBgr3UJZVTt2hDaqQWQQs0q5Fb\n7+bLEUUpTja2bE0P2plIMmeGX8PP/+8SkRryfWXm4fvOO+88j0fXdR1E1BY66t0BIqodBjxRG2HA\nE7URBjxRG2HAE7URBjxRG+mqdweqZXFxsd5dIGooQ0NDjzzXMgEPFP4Dq+3DDz/EN77xDbbDdhq6\nHasBkFN6ojbSUgEvyzJ+9atf1bsbRA3LcUq/tbWF3t7eWvSlYolEot5dIGpojiP82NgYVlZWatEX\nInKZ4wi/sLAAAJibm4OmaRgdHcWpU6dc7xgRVZ/jCH/+/HmMjo5ic3MTsizD7/fj7bffrkXfiKjK\nHEf4gYEBjI+P73tudXXVtQ4RkXscR/hQKIStrS0AwK1btwAAFy9edLVT5eIqPZE9xxF+aWkJ/f39\nAABVVfH888+73aeyzczMoKOjpa40ElWVY3RsbGzg1q1b2NrawnvvvVfVxhVFKfpYTdOgaZrtMUze\nQ2TPMeAlScLPfvYzjI+P4/z582U3pGkaEomEGeSJRAKSJCGfz2NqagqKokBV1X3HDwwMYGJiApqm\nQRRFpNNpy/ff2dnBL3/5S+zs7JTdR6JW5zil9/v9mJmZAfD1OXy5fD4fJEkCAOTzeQC7gS/LMgRB\nQCwWQzAYNI9fXFyEIAj7Xm8E/0GnT58GALzyyis4c+YM5ubmKuorUStyHOGnp6dx4cIFnD9/HtFo\ntOyGfD4fUqmUGehGIGcyGfPng1P2hYUFJBIJc+R3GuUB4M6dO3jnnXc40hMVUNRlOWNVfm1traxG\n0uk0RFFEJBJBNpuFKIrw+Xzm7/P5PARBML8MgN3glmUZADAxMYHZ2dmiAh7YDfpoNIrXXnutrP7a\n2d7exubmZtXfl+2wnVq04xjwMzMzSCaT8Hq9WF5exs2bN0tuJJVKIR6PI51OIxwOA/h6NB8cHEQu\nl4MgCPum74lEAiMjIxAEAblcDgCQy+UKTucPOn78OJLJpCsr9o1+WyTbYTvG6wpxDPjR0VEzSLPZ\nbMkNG+9hLNbtDWpg99p5IpGAIAiYnJyEpmlQFAWSJCGbzULTNMTjcQC7lwX3nuPv5fV6sbW1hSef\nfBJnzpzh5TmiAhwDPhgMYmlpCaFQCIFAoKxGgsHgI4FqBL4gCLh06dK+3xmPD47mdiN8MpnExx9/\njHPnzjHYiSw4RoaROaO3t9fxOngpZFku6nzcoGmaOdMopKOjg8FO5MAxOnRdh8/nw9bWFpaWlqra\nuF0AHySKouP5u8fjqbRLRC3NMeDD4TBef/11jI+PV3RZrhYmJia4l57IhmXA37hxA8Du9ldRFOH3\n+xGLxWrWsXIkEgkMDw/XuxtEDcty0W5gYADA7oJbKBQCUP4qPRE1BsuAN+6Q6+vrg8fjQW9vb9mr\n9ETUGBzP4bPZrJnEcu/NLUTUfOp6eywR1Zbjxhvj9tiNjQ1zxxsRNSfHgPd4PObqfKNnvJFlGcPD\nw1ypJ7JgGfBXr17F2bNnEYvFcPr0aei6DlVV8eKLL9ayfyVhIQoie5YBHwwG4ff7MTExYRZprDQB\nBhHVl2XALywsYGFhAWtra1AUBbquY2lpCZlMppb9I6Iqsgz4aDSKoaEhLC4umiN8uQkwiKgxWAa8\nqqpYXl5GJpPB8vIydF1HNpvF/Px8LftHRFVkGfAXL17E5uYm+vv7za21xWSbqSeu0hPZs70s5/V6\nIYqimQDD2F/fqLhKT2SvbgkwiKj26poAg4hqy3GnXTgcRiwWg8fj4dZaoiZXVOWZhYWFWvSFiFzW\nUhkfWS6ayJ7jCL/XrVu3GvrmGa7SE9lzDPjp6Wmsrq4CALfWEjW5mtSWK5VReWYv45Jgo2/+IWpk\njufwMzMzuHDhAi5fvlxRfXgrdnXj0+k0pqamADhXjmV9eCJnRdWWi0Qi5l56NxSqGy8IAkRRRCqV\n2necU334l19+mfXhiSw4jvCCIGBsbAwjIyOuVHaxqhtfCOvDE1XGcYTf3Nw0r8O//fbbVW3cqW78\nQawPz3bYTmUcA95YoQeA9fX1qjUM2NeNL4T14dkO2yn+dYUUlbXWmM5Xe2utXd14YHcGoKqqed7O\n+vBElanr1lq7uvHA7s45WZbNx0714e/cuYMf/ehHDHYiCw0XGVZ144upD//jH/+YwU5ko6SttbVS\nKLC54Yaoci01HPLmGSJ7vHmGqI3w5hmiNtKQN88QkTscA35mZgbJZBJerxfLy8u4efNmLfpFRC5o\niJtniKg26n7zTDVxlZ7IXl1vnqk2rtIT2XMc4d28eYaIaquuN88QUW1ZjvA3btwAsJtfThRF+P1+\nxGKxmnWMiKrPcoQ3CkcGg0GzeixX6Ymam+UI39/fDwDo6+uD1+vFxsYGV+mJmpzlCL+2tgZFUZDN\nZjE4OAhd15HL5fDDH/6wlv0rCVfpiexZBrzf74ckSRBFEcFgED6fD16vt5Z9I6Iqs12l9/v98Pv9\n5uOVlRWcOnXK9U6V6/6DHRzuaqk7fomqyvGy3MjICPr6+rC+vo61tbWGvlvu3/83B9/jh3Gytwe+\nxw81/JoDUa05Bvzc3Jw5lV9cXHS9Q5XQdWD9i/tY/+I+urs6cKK3GyeP9aDnUGe9u0bUEIoK+L07\n7IaGhlztULXce7CD/8v9Hrc3fg/hsUM42duDviOH0cFRn9pYUVlrx8fHm2LB7o03rmFw8AW88MIL\n5nO6Dmx8uY2NL7dxqNODp4514+neHjx+uCHT+RG5yvH/+rNnz5o3zbz44ouud6gSP/3pS7a/336o\n43f5r/C7/Ffw9nThRG8Pjh/tRmcHR31qD45L2tPT01hfX4eu67h69artsZqmIRqNmhVfD5qamkI6\nnTaPsasy47bNrx7gfz69i3+7lcMHn97F519t160vRLVSVIorY7PNu+++a3usUSeuUEppo1hkOBxG\nKpXCpUuXyumvpcXFRZz+yfdLzkv/cEfHR1tf4aOtr3CkuxNP9/bgqaPd6Ork5T1qPQUD3thlBwCZ\nTAaqqpa8007TNLOgRDgchqZpyGQyZvkoo4SUUQ46FovtOz6dTmNpaQmzs7OIRqM4d+4cjh49ClVV\nC35ZXLlyBddn5/DNwLfwrP+PcfHv/+GRY/763BkAwM/ffKdgn7+49xC/ufMF1ta/wJNHunGitwfC\nY4eK+nuJmkHBgM/n85AkCT6fb1+pp1LEYjFMTk4il8tB0zSEQiGoqopwOIxkMolgMAhRFJHJZBCP\nxxGNRvcdL8syotEoAGBychLpdBrr6+sYHR21bDOf+wz53GfI3fkE/5T8x0d+n7vzCXzHTzj2/eEO\n8Mnn9/DJ5/fw2KEOnOztwVPHuuGBB9sPdWw//LoUteXZv+fgw0ePtLtgsKPr2NF1y99Xa9VB13Xo\nNu0Ug/sdmkfBgDdunCnF1NQUJEkyp+4AzG25e587qK+vz/L4wcFBJBIJyLJs1pyLxWJIJpO2ffnk\n44/x/vvv47nnntv3/IMHD3Dv3j389re3i/qbOj0e+B7rQNdWJ+7+YQff9vY2vry7VdTrK7G9vY3P\nt2rTzlaN2mnG8sqt1o7lOfyNGzcwNjaG6elp5HI56LqOtbU1zM/PFzxekiRomob19XWEw2GIoohE\nImGO5KqqIpPJQNM0ZLNZaJpmPpfP5xGPx/cdLwgCJEnC7OwsgN378oPBICKRiOMf9d3v/wCv/t2j\nyTp+/e4/AwCeeeZZ29c/8bj1dftGLxPMdtiO8bpCPLrFfG55eRn9/f1YXFzcdz98LTfe5PN5aJpm\nWSJ6r46ODnif6LM9h7dT7M68Rv+g2Q7bAXYXsQvFquUIb0zrFUUxXzg4OFhyw+WampqCKIqQJKmo\n4y9fvozTP3m5pFV6jwfwPX4YT/f24Anuvac24HhZTtd1TE5OwufzIZvNWk7pq63Uy3ZDQ0NFB7ux\nEHfiWA/vrqO24hjwkUjELN/czCWbOzzA8aO81EbtzXF4CwQCZoqrJ554ohZ9Ktsbb1zDe++9t++5\nI92dCDx5BH/+vA/fOXGMwU5traVSXBl76Ts7PHjqaDdO9nbjWA8DnMhQdIqrvr4+9Pb21rJvJeMN\nMUT2bKf0fr8fa2tr2NzcxNjYmJmrvlH94BkBJ3t7GOxEFhzP4fv7+zE/P494PL4vvx0RNZ+irkn1\n9fXB4/FgeXnZ7f4QkYscS02pqorPPvsMMzMzDZ3AEmAhCiInjqWmBgYGEAqFoOt6w5eaYiEKInu2\nW2vPnz+PbDYLj8eDUCiE69ev17JvRFRllgF/9epVxGIxc6FubW0NV69exauvvlqzzhFRdVmewx+s\nOnPwMRE1H8uAL7SNttG31hKRPcspvSzLCAQC5mMjAcYHH3xQk44RUfVZBnwymXwk1VWjX4eXZRnD\nw8MYHh6ud1eIGpJjAgyn5xoJL8sR2WP2B6I20lIBrz98WO8uEDW0lgr47VtcUCSy4xjwFy5cMH+u\nRf7ySjz87FM8+Oi39e4GUcNyDHgjieX09DTGx8dr0aeyXbt2Db9+ax4PN60LXxC1s6KSWEYiEei6\n3vBJLF96aTfF1f3f/De6v9ePju6eOveIqLE4jvCCIGBsbAwjIyNV3WlnFKsshqZppZWWfrCN+x/8\nFxfxiA5wDPjNzU0sLCzg5s2btjXiDlJVFYFAAKqqAtgtLBGLxQDsXi836tBNTU1BURTzOGC34kw6\nnTbrzIuiaFaWtbK4uIidna+LPOpf3MX2GhfxiPZynNKvrq6aP6+vrxf9xkaNOKNMlCzLyOVyAL6u\nFb+3UGQsFjOPFQQBoiiapaQBwOfzQdM0y9OKK1eu4Mb16/jO89/EB7dv49vPPYeb13+OB0eOouvp\nZ4ruN1ErcxzhJUnCyMgIRkdHiyrkWAyjEmwmkzF/dpqyFzPK38nn8S8r/4HNz++az23fXsPDzY0K\ne0zUGhyrxyqKYo6qsVis4lJTmqbB5/OZj/P5PARBcDxdKCbgDfe37+PTTz/B7du7ZaH1zbvQjx4D\nPB1ARwf0zk6go3O3uFznH/5rVFw/WF/uwOPt7W1s7u2rS/XomrUcMdtp7HYcU1wFg8F91WNLYYze\nAPZNx43RfHBwELlcDoIg7Du2kFwuV/RVgqOPH8FTT53As88+i45jXhz+7p9VrVBko1cNZTtsx3hd\nIZZT+r3VY71eL7xeb8nVY+PxuLkoVyiwZVmGoihIJBKYnJyEpmnmwl46nYaqquaXg6qqtmWjPR4P\njgsC/uLUD3A2/Je4ef3n8BzuxuFv/QmrwhL9gavVY0VRLFgF1gh6QRAe+f3o6CiA3S8DWZbN551G\n+MuXL+Nvh09/XUHW04HD3/5TeA6x1BSRoS7VY2VZRjqdNt/XiaZpjsceLBd9SPwWOo4craifRK3G\nNuBXVlYQiUTMmnJnz56tWsNWAVxo2l7qF03XyT9C15MnyuoXUSuzPIefnp7GzMwMxsfHsbKyUss+\nle3atWv41/98H13PNfYWYKJ6sRzhRVHExYsXAQBvvfUWTp06VbNOleuv/uYVdH8vyEU6IgtFZa01\nfm70kZ6LdET2HLPW6rqOXC4Hn8/X8FlruUhHZK+lstYSkT3HjTdOzxFR82ipnHa18Itf/ILtsJ2m\nbaelAr5QfXi7evFWv7N7zZtvvlnya+rdjt3vrNqxew3baex27LRUwCcSiUeqzlQ7EEt9r0Zop9pt\nsZ3GbseOR9d1veRXNaDFxcV6d4GooQwNDT3yXMsEPBE5a6kpPbWfg/kPrfIkutGO8bjYxCzltGOY\nmpoqKaeklaYPeLc+4ELtuPEBW6nWB2wnkUggnU67XoRTVVWk02lX/t2M/IdGvkUjT6IkSRVnZ7Jr\nZ2Fhwbz9Ox6Pu9YOsPv/XiaTMXNCVqLpA96tD/ggtz7gQqr5AVsxUpeFw+F9eQfcaAfYvTuypFTj\nZSolT2IlZFmGKIpQVdX1eg3ZbLbk5DNWmj7g+QGXJ5VKQdM0KIri6owlHA5jfHwcExMTGBkZca2d\nvYyZkdszJACYn593dQBQVdVMMVcNTR/wAD/gcoVCIUiS5Orfo2ka5ubmEAgEcOXKFdfaMRh5EgE4\n5kmslKIomJycdHUmpmkastksMplMVb6Ymz7g+QGXJxAIuPbee83PzyMYDBZMdVYte/MfHsyT6FY7\niqIgFoshGo1idnbWtXYkSUIoFKraYNb0l+Xy+TwSiQQEQUAoFLJNdFkJ4wM2imu4OSrm83lEo1FE\no1HXzq+NfzdRFCEIQtHpxkpl/I8riiJyuZxr7VBxmj7giah4TT+lJ6LiMeCJ2ggDnqiNMOCpYaiq\nWtRuyVgsVnDV2u09Ba2AAd8CVFVFIBBAOp02ryZU4z0r3XJ7cD+4E1EUi9otOTg4CEEQoKoqFEUx\nd/NJklSTvRjNjAHfAoLBIILBIMLhMCRJgqZpFe86DAaDFV0SzOfz+/aDu2F+fh6SJCGVSrnaTitx\nLDVFzcG4uUfTNEQiEYiiCE3TzCluOBxGPp9HNptFPp83y33Nz89jYmICqVQKkUgEqVQK8Xjc3Pxh\njLoTExNQVRWXLl0y39co9W31xRAIBMwioIqiOL6PsfX2YL8LbWVWFAV9fX1QFKUme/RbBUf4FmFs\nnpFlGaurq1BVFbFYDKFQyAz+YDAIn88HAGZtP5/PZ97YEg6HzSANhUJYX1/fd8zq6iqA/dt/C22k\nMXYL+nw+c4peyvsc7HchmUzG/KKJRCLV+CdsCxzhW5BxPg/A3BmYz+cRi8UwOjoKQRDMc11jO7Lx\nRVDIwS3Le79ACo2++XzeDOC95+RO77P3/Htvv+36ZcxIqDgM+BZgrG4bU/pUKoW5uTlIkoREImEG\nVCAQgKZpyOVyWFpaQldXl7n1NZvNQtM0LC0tAdgtz208f/AYQRAwPz8PURTh8/n2bWdOp9NIJpPm\n/nIjX0EwGHR8H6PNeDy+r9+F7pGIRCJQFAXRaNT1eyhaik5Uong8rm9sbOi6ruuyLNf8fZLJZFm/\nI13nCE8lE0UR2WwWADAwMFD396HiMeCpZJIk1fV9MpkMwuHwI1N5RVE4vXfAu+WI2ggvyxG1EQY8\nURthwBO1EQY8URthwBO1EQY8URv5fw1eoa+HDI4BAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -785,756 +807,18 @@ } ], "source": [ - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "\n", - "\n", - "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "print \"|Lower\\t|MAP\\t|Median\\t|Upper\\t|\"\n", - "\n", - "pos = [.5, 1, 1.5, 2]\n", - "\n", - "for i in range(len(priors)):\n", - "\n", - " o1_trace = o1_traces[i]\n", - " o2_trace = o5_traces[i]\n", - "\n", - " #i = i/2.0\n", - " t_data = o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]\n", - " data = np.rad2deg(t_data)\n", - "\n", - " parts = ax.violinplot(data, [pos[i]], points=50, widths=0.3, vert= False,\n", - " #showmeans = True, showmedians=True, \n", - " showmeans=False, showextrema=False, showmedians=False)\n", - "\n", - " lower_p, medians, upper_p = np.percentile(data, [2.5, 50, 97.50])\n", - " lower, upper = pymc3.stats.hpd(t_data, alpha=0.05, transform=np.rad2deg)\n", - " hist = np.histogram(data, bins = 50)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", - " \n", - " \n", - " \n", - " ax.hlines(pos[i], lower, upper, color='#333333', linestyle='-', lw=2, alpha = 0.5)\n", - " \n", - " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=15, zorder=3)\n", - " ax.scatter( [MAP], pos[i], marker='D', color='k', s=15, zorder=3)\n", - " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", - " #ax2.vlines(inds, whiskersMin, whiskersMax, color='k', linestyle='-', lw=1)\n", - " \n", - " print \"| {:.2f}\\t | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t |\".format(lower, MAP, medians, upper)\n", - " \n", - " axis = ax\n", - " axis.set_yticks(pos)\n", - " axis.set_yticklabels(priors)\n", - " axis.set_xlim([0, 15])\n", - " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", - "ax.set_xlabel(r\"Beaming Angle [$\\theta$]\")\n", - "ax.set_ylabel(r\"Prior Distribution on efficiency\")\n", - "f.subplots_adjust(0.20, 0.15, .98, .95, wspace=0.05)\n", - "f.savefig(\"O2_beaming_posteriors_violin.pdf\")" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "priors = [\"U(0,1)\", \"jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "f, ax = plt.subplots(1,1, figsize = (width, height), sharey=True, sharex=True)\n", - "for i in range(len(priors)):\n", - "\n", - " o1_trace = o1_traces[i]\n", - " o2_trace = o2_traces[i]\n", - " ax.hist(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]),\n", - " histtype=\"step\", bins = 50, lw=2, label=priors[i], log=True, normed=True);\n", - " #ax.hist(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]),\n", - " # histtype=\"step\", lw=2, label=\"O2 Angle\", log=True);\n", - " #ax[3,i].vlines(np.percentile(np.rad2deg(o1_trace[2000:]['angle'][np.isfinite(o1_trace[2000:]['angle'])]), 90), 0, 3e5,\n", - " # label = \"90\\% lower limit, O1\");\n", - " #ax[3,i].vlines(np.percentile(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]), 90), 0, 3e5,\n", - " # label = \"90\\% lower limit, O2\");\n", - " #ax[1,0].set_xlabel(u\"$s$ /Gpc³/yr\")\n", - " if i==3: ax.legend()\n", - " #if i > 0: \n", - " # ax[i].set_yticklabels([]), ax[2,i].set_yticklabels([])\n", - " # ax[i].set_yticklabels([]), ax[1,i].set_yticklabels([])\n", - "ax.set_xlabel(\"Beaming angle [deg]\") \n", - "ax.set_ylabel(r\"$p(\\theta | D,I)$\")\n", - "f.subplots_adjust(0.07, 0.05, .99, .95, wspace=0.05)\n", - "f.savefig(\"O2_beaming_posteriors.pdf\")\n", - "#f.savefig(\"/home/daniel/papers/thesis/figures/grbbeamingpymc.pdf\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In order to get an idea of what how the estimate of the opening angle changes with respect to increasing horizon distance and an increasing number of detections we can make a plot of the median value of the probability distribution for each of the different priors with respect to both these quantities." - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# make a plot of the beaming angle as a function of observation volume against number of detections\n", - "# O1 Scenarios\n", - "scenarios = []\n", - "for events in range(20):\n", - " for horizon in np.linspace(10, 1000, 200):\n", - " number_events = events # There were no BNS detections in O1\n", - " background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - " observation_time = 1. # The number of days of analysis conducted by gstLAL\n", - " grb_rate = 10.0\n", - " o1_models = []\n", - " #for prior in priors:\n", - " scenarios.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, efficiency_prior='jeffreys'))" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 100000/100000 [00:13<00:00, 7428.52it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7386.23it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7556.33it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7341.15it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6731.04it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7512.72it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7773.77it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7015.78it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7011.51it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7077.14it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7316.51it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7127.07it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7229.30it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7151.50it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7181.81it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7227.50it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7176.60it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7206.34it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7149.04it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7225.91it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7358.32it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7761.17it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7878.11it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7034.07it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7069.53it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7227.65it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6832.01it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6535.19it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7698.55it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7665.64it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7281.22it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7356.40it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6783.98it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7098.86it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6804.68it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7553.83it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7325.61it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6720.98it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6686.36it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7157.64it/s]\n", - "100%|██████████| 100000/100000 [00:20<00:00, 4959.70it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7006.48it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7206.96it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7175.67it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7345.28it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7532.41it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7498.24it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7525.38it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7709.45it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7658.79it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7399.55it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7435.05it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7656.64it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7022.73it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7496.84it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7230.07it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7662.38it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7041.52it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7720.89it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7322.96it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7077.87it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7667.65it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7357.22it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6898.00it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7499.95it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7282.64it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7818.94it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7360.15it/s]\n", - "100%|██████████| 100000/100000 [00:16<00:00, 6062.72it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6603.19it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6970.99it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7668.59it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6838.48it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7088.89it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7344.82it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6903.63it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7198.51it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7158.90it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7190.36it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6487.08it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7264.21it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7757.97it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7778.39it/s]\n", - "100%|██████████| 100000/100000 [00:19<00:00, 5202.22it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7380.43it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7496.05it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7585.81it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7513.50it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6984.86it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7649.74it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7571.79it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7766.87it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7296.17it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6346.59it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6895.56it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6750.79it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7209.85it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6489.56it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6268.13it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6405.56it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6963.88it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6987.12it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6995.23it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6375.28it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6285.63it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7322.45it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6410.21it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7160.17it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6974.89it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6846.79it/s]\n", - "100%|██████████| 100000/100000 [00:16<00:00, 6189.45it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6849.58it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 7091.76it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7459.70it/s]\n", - "100%|██████████| 100000/100000 [00:13<00:00, 7300.50it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6605.53it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6522.20it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6693.73it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6635.14it/s]\n", - "100%|██████████| 100000/100000 [00:14<00:00, 6769.02it/s]\n", - "100%|██████████| 100000/100000 [00:15<00:00, 6355.63it/s]\n" - ] - }, - { - "ename": "ValueError", - "evalue": "Too few elements for interval calculation", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0mtraces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mt_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10000\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'angle'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misfinite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrace\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10000\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'angle'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 14\u001b[0;31m \u001b[0mlower\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupper\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpymc3\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstats\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhpd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.05\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtransform\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrad2deg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 15\u001b[0m \u001b[0mangles975\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnanpercentile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrace\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'angle'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10000\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m97.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mangles025\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnanpercentile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrace\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'angle'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10000\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/pymc3/stats.pyc\u001b[0m in \u001b[0;36mwrapped_f\u001b[0;34m(pymc3_obj, *args, **kwargs)\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;31m# If fails, assume that raw data was passed.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 32\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpymc3_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 33\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0mburn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'burn'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/pymc3/stats.pyc\u001b[0m in \u001b[0;36mhpd\u001b[0;34m(x, alpha, transform)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0msx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 354\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcalc_min_interval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 355\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 356\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/pymc3/stats.pyc\u001b[0m in \u001b[0;36mcalc_min_interval\u001b[0;34m(x, alpha)\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minterval_width\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 298\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Too few elements for interval calculation'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 299\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0mmin_idx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minterval_width\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: Too few elements for interval calculation" - ] - } - ], - "source": [ - "traces = []\n", - "angles975 = []\n", - "angles025 = []\n", - "angles500 = []\n", - "lowers = []\n", - "uppers = []\n", - "samples = 100000\n", - "for model in scenarios:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " trace = pm.sample(samples, step, )\n", - " traces.append(trace)\n", - " t_data = trace[10000:]['angle'][np.isfinite(trace[10000:]['angle'])]\n", - " lower, upper = pymc3.stats.hpd(t_data, alpha=0.05, transform=np.rad2deg)\n", - " angles975.append(np.nanpercentile(trace['angle'][10000:], 97.5))\n", - " angles025.append(np.nanpercentile(trace['angle'][10000:], 2.5))\n", - " angles500.append(np.nanpercentile(trace['angle'][10000:], 50))\n", - " lowers.append(lower)\n", - " uppers.append(upper)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/numpy/lib/function_base.py:3858: RuntimeWarning: All-NaN slice encountered\n", - " r = func(a, **kwargs)\n" - ] - } - ], - "source": [ - "priors = [\"U(0,1)\", \"jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "from matplotlib import colors, ticker, cm\n", - "\n", - "angles975 = []\n", - "angles025 = []\n", - "angles500 = []\n", - "for trace in traces:\n", - " angles975.append(np.nanpercentile(trace['angle'][1000:], 97.5))\n", - " angles025.append(np.nanpercentile(trace['angle'][1000:], 2.5))\n", - " angles500.append(np.nanpercentile(trace['angle'][1000:], 50))\n", - "np.savetxt(\"975perc\", angles975)\n", - "np.savetxt(\"500perc\", angles500)\n", - "np.savetxt(\"025perc\", angles025)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#angles975 = np.loadtxt('975perc')\n", - "#angles025 = np.loadtxt('025perc')" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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\nPyOjpxjtoDaWAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import scipy.ndimage\n", - "from matplotlib import colors, ticker, cm\n", - "from astropy import constants as c\n", - "from astropy import units as u\n", - "data = np.rad2deg(angles975).reshape(20, 200)\n", - "\n", - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "\n", - "matplotlib.rcParams.update({'font.size': 6})\n", - "\n", - "scenarios = {\n", - " #\"A\": 4*0.45,\n", - " #\"B\": 2*1.3,\n", - " #\"C\": 6.5/0.75,\n", - " \"D\": 20,\n", - " \"E\": 40\n", - " }\n", - "\n", - "#height, width= 20, 10\n", - "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "\n", - "\n", - "\n", - "ax.set_xlim([0, 100]);\n", - "\n", - "vth = 4./3 * np.pi #* (c.c * 1*u.year).to(u.megaparsec)\n", - "for scenario in scenarios.iteritems():\n", - " ax.vlines(scenario[1], 0, 19, color='k', alpha=0.5, lw=2)\n", - " x_bounds = ax.get_xlim()\n", - " ax.annotate(s=scenario[0], xy =(((scenario[1]-x_bounds[0])/(x_bounds[1]-x_bounds[0])),1.01), xycoords='axes fraction', verticalalignment='right', rotation = 0)\n", - "\n", - "consf = ax.contourf(np.linspace(vth*(10/2.26)**3/1e6, vth*(1000/2.26)**3/1e6, data.shape[1]), np.linspace(0, 19, data.shape[0]), \n", - " data, \n", - " levels = np.linspace(0, 90, 10), alpha = 0.4, cmap = \"magma_r\", lw=0\n", - " )\n", - "\n", - "#cons = ax.contour(np.linspace(vth*10**3, vth*400**3, data.shape[1]), np.linspace(0, 10, data.shape[0]), \n", - "# data, \n", - "# levels = [0, 1, 2, 3, 4, 5, 10, 20], colors='maroon', lw=1, cw=1\n", - "# )\n", - "\n", - "#cons = ax.contour(np.log10(data))\n", - "\n", - "#ax.clabel(cons, inline=1, fontsize=8, fmt='%1.0f')\n", - "\n", - "ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - "ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - "ax.grid(b=True, which='major', linewidth=1.0, color=\"#DDDDDD\")\n", - "ax.grid(b=True, which='minor', linewidth=0.5)\n", - "cb=f.colorbar(consf)\n", - "ax.set_xlabel(r\"Search 4-volume, $VT\\, [\\times10^6\\, \\rm{Mpc}^3 \\rm{yr}]$\")\n", - "ax.set_ylabel(r\"GW BNS event rate [${\\rm yr}^{-1}$]\")\n", - "\n", - "cb.set_label('Beaming angle upper limit [$^{\\circ}$]')\n", - "f.subplots_adjust(0.1, 0.15, 1, .95, wspace=0.05)\n", - "f.savefig(\"../final_paper/volume_v_nevents.pdf\")" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "cannot reshape array of size 121 into shape (20,200)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mastropy\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mconstants\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mastropy\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0munits\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mu\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrad2deg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mangles025\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m200\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mwidth\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m3.487\u001b[0m \u001b[0;31m#* 2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 121 into shape (20,200)" - ] - } - ], - "source": [ - "import scipy.ndimage\n", - "from matplotlib import colors, ticker, cm\n", - "from astropy import constants as c\n", - "from astropy import units as u\n", - "data = np.rad2deg(angles025).reshape(20, 200)\n", - "\n", - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "\n", - "matplotlib.rcParams.update({'font.size': 6})\n", - "\n", - "scenarios = {\n", - " #\"2015 - 2016\": 0.45,\n", - " #\"B\": 1.3,\n", - " #\"C\": 6.5,\n", - " \"D\": 20,\n", - " \"E\": 40\n", - " }\n", - "\n", - "#height, width= 20, 10\n", - "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "\n", - "\n", - "\n", - "ax.set_xlim([0, 100]);\n", - "\n", - "vth = 4./3 * np.pi #* (c.c * 1*u.year).to(u.megaparsec)\n", - "for scenario in scenarios.iteritems():\n", - " ax.vlines(scenario[1], 0, 19, color='k', alpha=0.5, lw=2)\n", - " x_bounds = ax.get_xlim()\n", - " ax.annotate(s=scenario[0], xy =(((scenario[1]-x_bounds[0])/(x_bounds[1]-x_bounds[0])),1.01), xycoords='axes fraction', verticalalignment='right', rotation = 0)\n", - "\n", - "\n", - "cmap = plt.cm.get_cmap(\"magma\")\n", - "cmap.set_over(\"white\")\n", - " \n", - "consf = ax.contourf(np.linspace(vth*(10/2.26)**3/1e6, vth*(1000/2.26)**3/1e6, data.shape[1]), np.linspace(0, 19, data.shape[0]), \n", - " data, \n", - " levels = np.linspace(0,10, 11), alpha = 0.4, cmap = cmap, lw=0, extend=\"max\"\n", - " )\n", - "\n", - "#cons = ax.contour(np.linspace(vth*10**3, vth*400**3, data.shape[1]), np.linspace(0, 10, data.shape[0]), \n", - "# data, \n", - "# levels = [0, 1, 2, 3, 4, 5, 10, 20], colors='maroon', lw=1, cw=1\n", - "# )\n", - "\n", - "#cons = ax.contour(np.log10(data))\n", - "\n", - "#ax.clabel(cons, inline=1, fontsize=8, fmt='%1.0f')\n", - "\n", - "\n", - "\n", - "ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - "ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - "ax.grid(b=True, which='major', linewidth=1.0, color=\"#DDDDDD\")\n", - "ax.grid(b=True, which='minor', linewidth=0.5)\n", - "cb = f.colorbar(consf)\n", - "cb.set_label('Beaming angle lower limit [$^{\\circ}$]')\n", - "\n", - "#cb3.set_label('Custom extension lengths, some other units')\n", - "\n", - "ax.set_xlabel(r\"Search 4-volume, $VT\\, [\\times10^6\\, \\rm{Mpc}^3 \\rm{yr}]$\")\n", - "ax.set_ylabel(r\"GW BNS event rate [${\\rm yr}^{-1}$]\")\n", - "f.subplots_adjust(0.1, 0.15, 1, .95, wspace=0.05)\n", - "f.savefig(\"../final_paper/volume_v_nevents_lower.pdf\")" + "o5_plot = beaming_violins(o5_traces, priors, xmax=60)" ] }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.imshow(data, origin=\"lower\", cmap='magma_r', alpha=0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 445, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 78.06610783, 35.80097616, 19.36782763, 12.47921706,\n", - " 9.29702839, 6.61554306, 5.23058342, 4.20847085,\n", - " 3.32938021, 2.9710357 ],\n", - " [ 2.6144586 , 2.26099509, 1.9410839 , 1.74884593,\n", - " 1.60980867, 1.50786573, 1.25629637, 1.25074271,\n", - " 1.18693707, 0.99571208],\n", - " [ 75.0606543 , 25.91148494, 12.90895278, 8.07743843,\n", - " 5.37352293, 4.07266962, 3.2299193 , 2.62688283,\n", - " 2.15721479, 1.84879051],\n", - " [ 1.59979574, 1.35478698, 1.20326734, 1.0869098 ,\n", - " 0.95340121, 0.87405573, 0.78202496, 0.71617734,\n", - " 0.69691109, 0.62748756],\n", - " [ 72.54223895, 20.77305586, 10.00815962, 6.10938517,\n", - " 4.17531443, 3.11893599, 2.51824151, 2.02153686,\n", - " 1.69244122, 1.40813266],\n", - " [ 1.22295804, 1.04098513, 0.93456876, 0.80680703,\n", - " 0.76429005, 0.68477592, 0.60861236, 0.55701962,\n", - " 0.51817629, 0.47031254],\n", - " [ 69.4916852 , 17.93705536, 8.24794509, 5.13175958,\n", - " 3.54438383, 2.61801466, 2.09468103, 1.65723955,\n", - " 1.37224596, 1.16710928],\n", - " [ 1.00042308, 0.87067889, 0.76022804, 0.6783233 ,\n", - " 0.62149023, 0.55542141, 0.5210447 , 0.4593335 ,\n", - " 0.43451121, 0.40059735],\n", - " [ 64.3470997 , 15.35407189, 7.40400169, 4.54817338,\n", - " 3.07142212, 2.34223703, 1.77805783, 1.46310772,\n", - " 1.22141998, 1.01610941],\n", - " [ 0.88208768, 0.78980068, 0.65528006, 0.5965011 ,\n", - " 0.54266285, 0.4980743 , 0.45327251, 0.41285202,\n", - " 0.37567577, 0.34855999],\n", - " [ 62.52213326, 14.11090153, 6.68799055, 4.00615396,\n", - " 2.79008899, 2.08046336, 1.5993893 , 1.28722237,\n", - " 1.06178994, 0.91276025],\n", - " [ 0.79212071, 0.66943437, 0.60555271, 0.54460893,\n", - " 0.51026424, 0.42956307, 0.40179312, 0.36282962,\n", - " 0.33754504, 0.30951302],\n", - " [ 58.58869671, 12.89146652, 6.26079128, 3.75837266,\n", - " 2.56929876, 1.85759671, 1.5139463 , 1.20223848,\n", - " 0.96529603, 0.86207352],\n", - " [ 0.74181961, 0.62084742, 0.56280236, 0.50156555,\n", - " 0.45272606, 0.4066189 , 0.36351234, 0.34617506,\n", - " 0.31257126, 0.2830622 ],\n", - " [ 55.57244649, 11.83266791, 5.55551885, 3.49338769,\n", - " 2.45704705, 1.81080175, 1.40656769, 1.12783533,\n", - " 0.8827301 , 0.76972871],\n", - " [ 0.68804026, 0.5836478 , 0.52642838, 0.46726151,\n", - " 0.41678539, 0.37741751, 0.34979501, 0.31443106,\n", - " 0.29694258, 0.26287644],\n", - " [ 53.50182004, 11.3179182 , 5.29429996, 3.12502049,\n", - " 2.22372 , 1.63414543, 1.2596903 , 1.00280187,\n", - " 0.86867234, 0.72272243],\n", - " [ 0.66675767, 0.53731081, 0.47719669, 0.44457656,\n", - " 0.39108838, 0.34066421, 0.32828063, 0.29802706,\n", - " 0.26503321, 0.2527728 ],\n", - " [ 49.79339069, 10.77677666, 4.99074809, 3.04748768,\n", - " 2.05846349, 1.55975913, 1.22201473, 0.99824294,\n", - " 0.81147378, 0.66450588],\n", - " [ 0.59448808, 0.51903127, 0.43826593, 0.39793317,\n", - " 0.36411454, 0.33019264, 0.29275793, 0.271074 ,\n", - " 0.25527898, 0.23812802]])" - ] - }, - "execution_count": 445, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Reverse test\n", - "\n", - "As a sanity check of the results, we can calculate the number of GRBs we would expect to observe for a range of different beaming angles. We can then compare this to predicted beaming angle for an analysis in which the GRB rate is set to the our expected number of detections." - ] - }, - { - "cell_type": "code", - "execution_count": 306, + "execution_count": 467, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "detections = []\n", - "for beamangle in np.linspace(0, 90, 90):\n", - " beamangle = np.deg2rad(beamangle)\n", - " costheta = np.random.uniform(0,1, 10000)\n", - " theta = np.arccos(costheta)\n", - " detections.append(np.count_nonzero(theta]" - ] - }, - "execution_count": 307, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nfytLpxufhcvlAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(np.linspace(0,90,90), detections)" - ] - }, - { - "cell_type": "code", - "execution_count": 308, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "test_scenarios = []\n", - "for grbs in np.arange(1, 10):\n", - " # O1 Scenarios\n", - " events = 10. \n", - " number_events = int(events) # There were no BNS detections in O1\n", - " background_rate = 0.01#0.01 # We take the FAR to be 1/100 yr\n", - " observation_time = 1#46.1/365. # The number of days of analysis conducted by gstLAL\n", - " horizon = 6.195#73.2 # The O1 BNS horizon distance in O1 BNS paper\n", - " grb_rate = grbs\n", - " o1_models = []\n", - " test_scenarios.append(grb_model(number_events, background_rate, observation_time, horizon, grb_rate, 1.0))" - ] - }, - { - "cell_type": "code", - "execution_count": 310, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 50000/50000 [00:03<00:00, 12852.71it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 13035.69it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 13761.51it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 12964.46it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 14283.48it/s]\n", - "100%|██████████| 50000/50000 [00:04<00:00, 12192.44it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 13043.59it/s]\n", - "100%|██████████| 50000/50000 [00:04<00:00, 11961.20it/s]\n", - "100%|██████████| 50000/50000 [00:03<00:00, 14124.41it/s]\n" - ] - } - ], - "source": [ - "samples = 50000\n", - "angles = []\n", - "for test_model in test_scenarios:\n", - " with test_model as model:\n", - " step = pm.Metropolis()\n", - " trace = pm.sample(samples, step)\n", - " angles.append(np.rad2deg(np.nanmean(trace['angle'])))" - ] - }, - { - "cell_type": "code", - "execution_count": 311, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 311, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nCIkS/w/QiVmyv6EZLwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(np.array(detections)/1000.0, np.linspace(0,90,90), lw=5, alpha=0.5, label=\"Injected values\")\n", - "plt.plot(np.arange(1,10), angles, label=\"Recovered valaues\", color=\"k\")\n", - "plt.xlabel(\"Number of observed GRBs\")\n", - "plt.ylabel(\"Maximum inclination angle\")\n", - "plt.legend()" + "o5_plot.savefig(\"o5_violins.png\")" ] }, { @@ -1553,42 +837,43 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 501, "metadata": { "collapsed": true }, "outputs": [], "source": [ "test_scenarios = []\n", - "priors = [\"uniform\", \"jeffreys\", 0.5]\n", + "priors = [\"uniform\", \"jeffreys\", 0.5, 1.0]\n", "for prior in priors:\n", " # O1 Scenarios\n", " number_events = 0 # There were no BNS detections in O1\n", " background_rate = 0.01 # We take the FAR to be 1/100 yr\n", " observation_time = 46.1/365. # The number of days of analysis conducted by gstLAL\n", " horizon = 73.2 # The O1 BNS horizon distance in O1 BNS paper\n", - " grb_rate = 100\n", + " grb_rate = 36.7\n", " o1_models = []\n", " test_scenarios.append(grb_model(number_events, background_rate, observation_time, horizon, grb_rate, prior))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 504, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 50000/50000 [00:08<00:00, 5917.69it/s]\n", - "100%|██████████| 50000/50000 [00:08<00:00, 5767.11it/s]\n", - "100%|██████████| 50000/50000 [00:04<00:00, 11437.34it/s]\n" + "100%|██████████| 500000/500000 [01:12<00:00, 6891.05it/s]\n", + "100%|██████████| 500000/500000 [01:12<00:00, 6915.98it/s]\n", + "100%|██████████| 500000/500000 [00:37<00:00, 13242.42it/s]\n", + "100%|██████████| 500000/500000 [00:36<00:00, 13662.52it/s]\n" ] } ], "source": [ - "samples = 50000\n", + "samples = 500000\n", "traces = []\n", "for test_model in test_scenarios:\n", " with test_model as model:\n", @@ -1599,24 +884,31 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 507, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "injected at: 9.97250731845\n", - "| 4.66\t | 7.77\t | 13.31\t | 63.46\t |\n", - "| 4.36\t | 5.89\t | 13.24\t | 70.17\t |\n", - "| 5.22\t | 6.81\t | 11.95\t | 55.12\t |\n" + "injected at: 10.0454502788\n", + "\n", + " \\toprule\n", + " Prior & Lower & MAP & Median & Upper\\\\\n", + " & [$^\\circ$] & [$^\\circ$]& [$^\\circ$]& [$^\\circ$] \\\\\n", + " \\colrule\n", + "\n", + "U(0,1) & 4.62\t & 8.14\t & 13.23\t & 63.81\t \\\n", + "Jeffreys & 4.38\t & 7.69\t & 13.23\t & 69.74\t \\\n", + "$\\delta(0.5)$ & 5.24\t & 8.59\t & 11.89\t & 50.51\t \\\n", + "$\\delta(1.0)$ & 3.68\t & 5.88\t & 8.45\t & 39.44\t \\\n" ] }, { "data": { - "image/png": "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\n/wHqiJbJeKx3ogAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1627,49 +919,61 @@ "width = 3.487 #* 2\n", "height = width / 1.618\n", "\n", - "\n", "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "priors = [\"U(0,1)\", \"jeffreys\", \"$\\delta(0.5)$\"]\n", + "priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(0.5)$\", \"$\\delta(1.0)$\"]\n", "pos = np.arange(4)/2.\n", "cbc_rate = np.mean(traces[0]['cbc_rate'])\n", - "injected = np.arccos(1 - 2*grb_rate / cbc_rate)\n", + "\n", + "injected = np.arccos(1 - 2*(grb_rate/ number_mweg(1e9)) / cbc_rate)\n", + "\n", + "\n", "ax.vlines(np.rad2deg(injected), -0.5,2, 'r')\n", "\n", "print \"injected at: {}\".format(np.rad2deg(injected))\n", "\n", + "print r\"\"\"\n", + " \\toprule\n", + " Prior & Lower & MAP & Median & Upper\\\\\n", + " & [$^\\circ$] & [$^\\circ$]& [$^\\circ$]& [$^\\circ$] \\\\\n", + " \\colrule\n", + "\"\"\"\n", + "\n", "for i, trace in enumerate(traces):\n", " data = np.rad2deg(trace[2000:]['angle'][np.isfinite(trace[2000:]['angle'])])\n", " parts = ax.violinplot(data, \n", - " [pos[i]], points=50, widths=0.3, vert= False,\n", + " [pos[i]], points=200, widths=0.3, vert= False,\n", " #showmeans = True, showmedians=True, \n", " showmeans=False, showextrema=False, showmedians=False)\n", "\n", " lower, medians, upper = np.percentile(data, [2.5, 50, 97.50])\n", - " hist = np.histogram(data, bins = 50)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", - "\n", - " \n", + " a = stats.gaussian_kde(data)\n", + " x = np.linspace(0,90, 200)\n", + " MAP = x[a.pdf(x).argmax()]\n", " \n", "\n", " ax.hlines(pos[i], lower, upper, color='#333333', linestyle='-', lw=2, alpha = 0.5)\n", "\n", - " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=30, zorder=3)\n", - " ax.scatter( [MAP], pos[i], marker='D', color='k', s=30, zorder=3)\n", - " ax.scatter( [medians], pos[i], marker='s', color='k', s=30, zorder=3)\n", - " print \"| {:.2f}\\t | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t |\".format(lower, MAP, medians, upper)\n", + " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=15, zorder=3)\n", + " ax.scatter( [MAP], pos[i], marker='D', color='k', s=15, zorder=3)\n", + " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", + " print \"{} & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t \\\\\".format(priors[i], lower, MAP, medians, upper)\n", " axis = ax\n", " axis.set_yticks(pos)\n", " axis.set_yticklabels(priors)\n", - " ax.set_ylim(-0.5, 1.5)\n", + " ax.set_ylim(-0.5, 2.0)\n", " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", " #axis.set_xlim([0, 35])\n", " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " \n", + " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", + " ax.grid(b=True, axis='y', which='major', linewidth=0)\n", + " #ax.grid(b=True, which='minor', linewidth=0.5)\n", + "ax.set_xlim([0,90])\n", + "ax.tick_params(axis='y',which='both',left='off')\n", "ax.set_xlabel(r\"Beaming Angle [$\\theta$]\")\n", "ax.set_ylabel(r\"Prior Distribution on efficiency\")\n", "f.subplots_adjust(0.20, 0.15, .98, .95, wspace=0.05)\n", - "f.savefig(\"O1_injections_violin.pdf\")" + "f.savefig(\"../final_paper/O1_injections_violin.pdf\")" ] }, { @@ -1681,17 +985,17 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 545, "metadata": { "collapsed": true }, "outputs": [], "source": [ "test_scenarios = []\n", - "priors = [\"uniform\", \"jeffreys\", 0.5]\n", + "priors = [\"uniform\", \"jeffreys\", 0.5, 1.0]\n", "for prior in priors:\n", " # O1 Scenarios\n", - " grb_rate = 135\n", + " grb_rate = 27.98\n", " number_events = 1 # Assume O2 will see one BNS observation\n", " background_rate = 0.01 # We take the FAR to be 1/100 yr\n", " observation_time = 0.5 # The number of years of analysis conducted \n", @@ -1704,21 +1008,22 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 546, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 50000/50000 [00:08<00:00, 5911.63it/s]\n", - "100%|██████████| 50000/50000 [00:08<00:00, 6000.16it/s]\n", - "100%|██████████| 50000/50000 [00:04<00:00, 11509.19it/s]\n" + "100%|██████████| 5000/5000 [00:01<00:00, 3493.08it/s]\n", + "100%|██████████| 5000/5000 [00:00<00:00, 5479.68it/s]\n", + "100%|██████████| 5000/5000 [00:00<00:00, 7778.35it/s]\n", + "100%|██████████| 5000/5000 [00:00<00:00, 10737.65it/s]\n" ] } ], "source": [ - "samples = 50000\n", + "samples = 5000\n", "traces = []\n", "for test_model in test_scenarios:\n", " with test_model as model:\n", @@ -1729,24 +1034,32 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 547, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "injected at: 10.0878178637\n", - "| 5.31\t | 8.34\t | 12.11\t | 52.18\t |\n", - "| 5.02\t | 6.18\t | 12.00\t | 64.23\t |\n", - "| 6.05\t | 8.92\t | 10.97\t | 29.28\t |\n" + "injected at: 9.9378227909\n", + "\n", + " \\toprule\n", + " Prior & Lower & MAP & Median & Upper\\\\\n", + " & [$^\\circ$] & [$^\\circ$]& [$^\\circ$]& [$^\\circ$] \\\\\n", + " \\colrule\n", + "\n", + "U(0,1) & 5.12\t & 9.05\t & 11.29\t & 51.04\t \\\n", + "Jeffreys & 5.05\t & 9.05\t & 12.21\t & 62.72\t \\\n", + "$\\delta(0.5)$ & 6.11\t & 9.50\t & 10.88\t & 27.88\t \\\n", + "$\\delta(1.0)$ & 4.15\t & 6.78\t & 7.62\t & 21.17\t \\\n", + "\\botrule\n" ] }, { "data": { - "image/png": "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\nSmZKlKIWeAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPwAAAChCAYAAADju9JOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHlJJREFUeJztnX1wG+d957/PLl5IgiSWoGRLsmSLYDOTTtKMBIF/JxOB\nbX25aTMSSLrnuU6nlSDn+kend7EQTv5xppNYpNTeNDd3ESndTdLmxRQR2bWTKg7B1JNx/zFBSI5j\n5zIKl5JoUjIlgAu+ggSw2z+WuwRIgAuCxBvx+4wgcHefffYHEt/n/fn9mKIoCgiCqAm4chtAEETp\nIMETRA1BgieIGoIETxA1BAmeIGoIEjxB1BCmchuwV4yOjpbbBIKoKE6fPr3l3L4RPJD9AxbMF76g\nvr/zzt7luc7MzAyOHDmy5/kWi2qyt5psBYpnb64KkJr0BFFDkOAJooYwFPz8/Hwp7CAIogQYCv7c\nuXO4c+dOKWwhCKLIGA7a3bhxAwBw7do1iKKInp4enDhxouiGEQSx9xjW8C+99BJ6enoQi8Xg8/nQ\n1taGmzdvlsI2giD2GMMa/tSpUzh//nzGuYmJiaIZRBBE8TCs4d1utz5wd+/ePQDAyy+/XFSjCIIo\nDoaCHx8fR3NzMwAgHA4X3SCCIIqHoeDn5uZw7949zM/P47333iuFTQRBFAnDPrzX68WlS5cwNzeH\nvr6+UthEEESRMBR8W1sbrl69CmCjD08QRHViKPjLly9DFEUoioLx8XGMjY2Vwi6CIIpAXtNy2qj8\n5ORk0Q0iCKJ4GAr+6tWrGB4eht1ux+3bt/H222+Xwi6CIIqAoeB7enrg8XgAAKFQqOgGlYpEIoH5\n+XkoioLGxkbU1dWV2ySCKDqGgne5XBgfH4fb7UZ7e3spbCo6sVgMDx8+hCzLAIDZ2Vk0NTXh0KFD\nMJvNZbaOIIqH4Ty85jmjubkZoigW3aBiMz8/j5mZGV3sGgsLCxBFEZIklckygig+hoJXFAUOhwPz\n8/MYHx8vhU1FY3l5GTMzM8gVXSuVSmFmZgYPHjzYUiAQxH7AUPAejwff+ta3cP78eXR1de3pwwOB\nQN5pRVHcVQsjkUhgeno6LyEvLi5iJR5HfHUVkiQhmUwW/FyCqCRyCv769esAVFE6nU60tbXB7/cX\n/CBRFDE4OKiLfHBwEF6vF5IkIRgMor+/PyO9JEno7+9HIBBAOByG0+lEMBgs6NmpVApTU1NIJBIZ\n52VZxk9/+tOchYBW49+9excPHjyAJElIpVIF2UAQlUDOQbtTp04BUAft3G43gN2P0jscDni9XgDQ\n+8qCIMDpdGJkZCQj7eDgIHw+HwRBgN/vh8vlgsPhgCiKcDqdeT8zkUhgamoKL7zwAgDgu9/9LgBV\n7F/72tdw69YtXLp0Sc/z+PHj+MY3vpGRh6IoWFxcxOLiIjiOQ319PRobG2Gz2WC1WsEYK+j38YV1\nz7jvFMEzLkFkI6fgT548CQBobW0FYwzNzc27GqV3OBwYGRmBx+OBIAgQBGHb9GNjY7h48SIA6E15\nrZb3+Xx5P3dxcRHxeBwA8PjxY9y8eROyLOPHP/4xPvzwQ8iyjGg0img0CgB48uQJbt68CWG91pcM\nnH1wHAeTyQSO48BxGw2mzYUAYwwcx4ExhsXFRTQ1NWF6ehqHDx9GPB7PuA6ohYw21pD+c3re6c/I\nlkazabsCSbsnPc3m9JttyQVjLK9nKYpimJYoDobTcqFQSHdpFQ6Hcfz48R0/JBgMwul0orOzE6FQ\nCE6nEw6Hw/A+SZIgCILeGthNsz6dDz74AL/5zW923TxPFxXP8zm/xNp57cXzvC5ExhjMZrOe12a0\n7kY2wWvpNUFqLy3fbPkV+jmzFTKF5LPbPIjdYSh4bXusw+HAe++9hzNnzuz4ISMjI+jr60MwGNQX\n8RgNwHV0dCAajWa0BqLR6I6a84A6nbiwsAAAOHjwIM6cOYMvf/nLWFlZwc9//vMt/foDBw7gzJkz\neO7NNwEA9zd9XpPJhMbGRr1Jz/P8juwBNoIPaP4Ct8sjH9FSbUnkS0m2x/b09OiDddma8sFgEOFw\nWC8EAoEAfD4fBgcHIQgCent7AagtDJfLtaNn8zyPo0ePYnh4GEtLSwBUEV26dAkAcOvWLX0cAUDW\nFozJZEJTUxOam5vR0NCwZ+KivjtRagwFzxjTR+cLbdK7XK4tQk0Xvs/ny+iXa3137V2jkBoeUAV+\n9OhR3Lt3D6urq/q5S5cu4fOf/zyef/75LTUpA8CbTHjuuef2VOQEUU5ythevXLmCyclJXLx4EaOj\nowgGg1tG0neDz+fbUX9cFEW9O1AIPM/j2LFjGc1njuPwpS99aYvYW1paUF9fD6vFApvNRmIn9g05\na3iXy4W2tjZcuHBBD9K41w4wdiLgQmr2zVgsFhw9ehRTU1NZ597NZjOOHDkCm80GkMiJfUhOwd+4\ncQM3btzA5OQkAoHAvnGAYbPZcOzYMUxPT+sr6DiOQ0tLCw4cOFDQIBxBVAs5Bd/V1YXTp09jdHRU\nr+H3iwMMm82G9vZ2fRCvoaEBJtO+ipxNEFnJ+S0Ph8O4ffs2xsbGcPv2bSiKglAohKGhoVLaVzR4\nntfdbxNErZBT8C+//DJisRhOnjypL63di340QRDlY9tVHXa7HU6nE+Pj42CM6evrCYKoTmrOAQZB\n1DI15QCDIGodw6Fpj8cDv98PxhhFniGIKievyDPaJg+CIKqbvdk/SRBEVbAjwVNsOYKobvKKLTcx\nMQEA+2Jp7XYoioLlpSRW4yk0rslgDFiR1lBvM8FspsYQUf1QbDmoQl+IJRCT1pBKqZ5lGtbfo5FV\nsOgqGmwmCA4rCZ+oamo+tlwyKePJJ3HE47ndXSkKsLSYxPJSEk3NZthbrOB52k1HVB95xZbr7OzU\n19LvJ9ZWU5h9tIJkMrdjxnQUBZiPJbC4mERzsxmNzWaYTFTjE9WD4bdVEAScO3cO3d3de+4IopSB\nKDazspLEo5nlvMWejpxSIM2t4eP7S3j48RKiT+JYXEhgbTW1rVdXgig3hoKPxWK4ceMG3n777V3F\nXdsuEEV6wIn09KdOncKFCxd0X/R74bEWABbm1zD7cAW5gtDIsozXIrOQ8xDv6qqM+VgCT2bjmPl4\nGQ8mFzMKgURCpkKAqBgMm/TaCD0ARCKRXT0sWyCKbAEnNEZHRzN83xUSiGIz8XgKkcereOG//CcA\nwGs//NeM67Is42//x3kExd/h7z6+jwN/9rzu/Kbt+O/h1W/9r23zVxS1EFhdlQGoHnE5DjCbOZjW\nX8tLMpaXkuB5Bt7EwHHqK18ogAVRKHl5rdWa87tZWpsrEEW2gBMa2go/t9sNl8tVUCCKzaTXtrOP\nH2Fo+Lv6sSzLuHHjn/HBr99HSpEhrq5CHPv3nOkLZWVlBfX19RnnGFNfHGNgnOZ6WruWWRh8/PEM\nDh06hJi0Bo6DXmBwHAPUf1Cg/qe+K9A+NUt7INOey6nPYpohm0ilFCQS680hZSOT9KTp97JN13N1\nBXfS8tGSKkqWz7P+u2Isd575PCsfO6vdv2FJltYaBaLYHHACUPfea8K+cOECBgYG9rRZn433fxXG\nhx99gFSquMEjGQN4Xv2Sclz6uyb2DcFnEyHHASYTB7tgKaqdGjzPijIduRPxZCbNfV+uPPcigMZ+\noCR+nbYLRJEt4ASgNvW7u7shCIIeBqpQN9XpqE1r9Q/41MFD6On6C/1a19k/x8ryCm797F+QSKxt\nuXdzeiNMJgaLlYfFysFi4WEyM5hMHB49eogjR44U/Blee+1HBd9L1DYlEfx2gSg2B5wQRRGBQABe\nrxehUAiiKOpdiUICUWzGZOJw+Bkb3nj9bcRXMufeOY7D//z7awCA4E9+jEMWMw58zp3Rh8+dL4PZ\nwqkCt3Cw1vFFm7KjvjtRKCUR/HaBKARB2BJwQjveXJvvRQ0PqE3Upw/X48lsHEuLmc13TfS//Oh9\ndDsOYvZHt7LmwXFAg82EBpsZ1jqeFuIQVUHZNs+UOhDFZhhjOPh0fdZ+MMdxeKH1KXBZ+m4cB9hb\nLHjm2UYceKoeDTYTiZ2oGsq6eabUgSiy0dJqhbWOR+RJHCmDRTi2RhNaWq20uo6oWmjzDNSmeV29\nDQuxNSwuJDemoKDW6PUNJjQLFlitFKSCqG5qfvOMBscx2FussLdYkUrKYFZ1fuzY8cZ9NS1D1DY1\nvXkmF7yJA7gsq0sIosop6+YZgiBKi2ENr22eAYCbN28W3SCCIIqHYQ2/l5tnCIIoLyXbPEMQRPnJ\nWcNfv34dgOqkwul0oq2tDX6/v2SGEQSx9+Ss4bXAkS6XS48eWyuj9ASxX8lZw588eRIA0NraCrvd\njrm5ORqlJ4gqJ2cNPzk5iUAggFAohI6ODiiKgmg0ii9+8YultI8giD0kp+Db2trg9XrhdDrhcrng\ncDhgt9tLaVtJUBQF8/EkpJUEFleTWE2mkJIVfHo1CQbg4ewiGq08murMaLSWZHMhQRSNbb/BbW1t\naGtr04/v3LmDEydOFN2oUpBIyZiJxfFoPo7V5FZvlilZ3UjzcD6unzPzDC0NFrQ0mOFosMDM0yYa\norowrLK6u7vR2tqKSCSCycnJqg81tZaUMSUt49F8HKkcXmtzkUgpmF1YxezCKhgDmqwmtDRY4GhQ\na38a4yAqHUPBX7t2TW/Kj46OFt2gYpFMyfhYWsF0bGXHQs+GogDz8STm40ncjwImnsFeZ4a9zoSm\nOjOa6kxZ99MTRDnJS/DpK+xOnz6dM60oivD7/ejo6NjixQYA+vv74XK5MDAwgI6ODn2MoNh8shDH\nxJMlJFPF8w+fTCmILK0hsqT6wmMMaLDwsFlMsFl41Jt51K+/E0S5yMtr7fnz5/MasNM802YTseaR\n1uPxYGRkJGuBUCxiK4m8xS7LMkZ/8jo+qyi7qqEVBVhaTWFpdWvMusXYEmZlCVYTB4uJg4XfeDfz\nHEwcg4lnMHE0RkDsLYaCP3v2rL5p5syZM3lnLIqi7sLK4/FAFEWMjY0hGAwiHA4jHA5DFEWMjIwA\nAPx+f0b6YDCI8fFxDAwMoKurCy+++CIaGxsRDod3VVj8zYt/CgD4xx/8y5Zrsizjm1/9b3g3eAv/\nv6EBA85P6dcuf/2/Y+rexr6CY8fb8fI3/6EgG9ZSMubjxq6wOYZ18auFAM8x/V17mdi6T3qmvVT3\nXesu6jPcXWtjDOq1DV/u+s/Aul/7rfdUMxS4Y4O8XFwJggCHw4ErV67gq1/9al4Z+/1+9Pb2IhqN\nQhRFuN1uhMNheDweDA8P64ElxsbG0NfXh66uroz0Pp8PXV1dAIDe3l4Eg0FEIhH09PTs7hMDiD7+\nBD8b/ueMc4os483hH+K3v34fqVQKb6wsY1JR0Dn0PTCOw/vv/Tum7m0EyojOPtqSR75kC0RRyays\nrKChQbWXaf9rBcLGIbCpoNACXSDtGGn3IP14G3K1zVjaT9pzlpeW0Nho084CDJiansbThw7rg626\nHek2sc15Znvg1qssy+XMc9t/uqW1FBbiCf14Pc7GthgV4FZT7m5jXi6utMU2v/jFL3Km6+/v12PF\naWhz+NvFpGttbc2ZvqOjIyMUFaAWJMPDw0Zm75iPfnUHdz/6AKmU2gRPAvhgLopnfnUHnzmxO9fY\ne4EWlWZLLc4YOKQFrwCyCjA9H5YulU0CWL8d6T8s8kk0NdZt3Jdxz8a9ldAW4JPqmomMc4zBwnN4\nqslaJqtyY7NstbeYZBW8tsoOUENBhcNhw5V2Xq8XoigiEonA4/HA6XRicHBQr8nD4TDGxsYgiqLu\nb147J0kS+vr6MtILggCv14uBgQEA6iYel8uFzs7OXX9ox8Gn8cdd/zXj3B+efRHLKyt452dvIZlY\ngwUMf+JoxV//3d+D4zj86xuBjBre8dShLXnkSzQawcEDrbDwHKwmPq3/zmBO68eb1/vxJp6VdcR/\nZmZmV4EzSkk2W3/0IwrcocGULEG3bt++rTfjN1PK1XaSJEEUxbyCT4yOjuacQZiaW8ZkZNkwj/Q+\n/H9e78P/+odvAiisD88xoH59pL7evD5Sb+YQfTyL5449Y2hPpVDtgq9kimVvLj1kreG1jTPlpL+/\nH06nU482uxuOtTSgpcGCe5ElRJcTOdNxHIevX/k/GP3J6/jb176XUavmM0BXZ+ZgrzOjeX0uvsHC\nZ62ZF8iPPVEmcvbhr1+/jnPnzuHy5cuIRqNQFAWTk5MYGhoqiWF7PW3XaDXhs0fsiK0kcD+6DGkl\nu/A5jkPnn5wFN/RPhnnyHNOX2Qr1ZtTRHDtR4dTcfnh7vRmfe0YV/nRsBZGlNcNR0XRsFl5dTmuz\nwF5Hy2mJ6iKn4LVmfSAQ0PsCHR0dpbGqBNjrzbDXm7GWlBFZWsWcvltO1gsAxoDmOhMarSY01Zkg\n1Ju3nfIgiErHcFpOURT09vbC4XAgFAqVrElfKiwmDoft9Ths35gXlxUFrN4MBuDEUSH3zQRRZRgK\nvrOzU48BV4p175UAbXoh9iuGi7Xb29t1F1ctLS2lsIkgiCJBLq4IoobI28VVa2srmpubS2kbQRB7\nzLZN+ra2NkxOTiIWi+HcuXO6r3qCIKoTwz78yZMnMTQ0hL6+vgz/dgRBVB95eVhobW0FYwy3b98u\ntj0EQRQRw1BT4XAYT548wdWrV6vegSVB1DqGS2tPnToFt9sNRVH2xdJaIxRFARSlIvZ2E8Res+3S\n2pdeegmhUAiMMbjdbnznO98ppW0lQVEUyHMRpCKPIS/GoKypTigtC/NgPIfU1D1wQgu4xmZaN09U\nPTkFf+XKFfj9fn2gbnJyckcuriodRVGQevwJktP3oaytZksAJZlCcuYBMPMAzGIB7zgI3nEQXBNN\nTxLVybbz8Omj8puPqxl5YR5r938HZWkx73uUtTUkH00j+WgazGIF7zgATmgF19QMRt5liSohp+Cz\nLaPdy6W1gUAgb+cWoqi6ltrtWn4lmURiahKp2Ye7y2dtFclH08CjaYDnwTXZwTcLarPf1kgFAFGx\n5BS8z+dDe3u7fqw5wLh7925eGYfDYXR1dekeavv7+xGJRHTfdT6fD5IkYXBwEE6nU1/RB6iurUKh\nkO6SWvOP5/P5CvqQavP9ERJT94Bkbo83gOrmanhkFC/m65c+lYIsRSFLUfWYceAabGC2RnC2RrD6\nBnD1NjATBaIkyk/Ob+Hw8PAWV1c7mYfXnFFqIvb5fIhGVVFoXmnTPdL6/X49rSAIcDqdus96AHA4\nHBBFsaBaXo4+QWJSLaj+6Ct/AwB4+zv/uDWdLOOvXvkm3vrlu/h5fT2+99yz+OtXL+Pugyk9zaee\nPYb/3fty7ocpMuSlBWBpARkhKExmcNY6MGsdlFgMSSYDZguYxQJmtoCZzICp9hxqkM/40mLoAMPo\nXCFoLqfHxsZ0V1Zasz0XTqcTwWCw4Fo+nYfRKP7fT3+WcU5WFPzTG2/izm9+i2QqheF4HL8DEI1G\nMZEm+EeRrffulG390jMO4NQXY0w91iNGqC+26Vh/Icc16BEnwNh6d0O/ZszCwgKampp29ZlzUW1O\nJ6udkrczRVHM8IYrSRIEQdjWdz2wIfhiMf7hR/jVb+8imeaX/n1JQgtX4hpXkYGUDKRyB2AoLEJe\neiGQdoz1QmBLQZGWZnkZspzSoh9k5rmtVZsd2KcVWNo5RYaSTCI1v/3fP1f2Wj5sPW9leQny8qJ6\nUR9L0Qq7tOdm/Qw7NQA5o0ZkOIPeJpKGsrYKeTW+85ad9vsEwMz5+7UvquC1mhxARnNcq807OjoQ\njUYhCEJG2mxEo9E9c8Bx2OHAX37pjzPO/cXzf4j40jJe/7d3sJZIwgLgrCBg6tgxfBKJ6ukOtW69\nd6dEo9FMF+CMAbwJzGQGM5sAzqT2+TkOjOcBjld/5jZqf7D1Y55fFxEH8Nx6i4AD039mG62FAilm\nLfza628AAPjmvfEsxBoWwDU07kleu7Ij33QWKzhrXVFtSaeogu/r69PdTQuCsMW/vM/nw+DgIARB\nQG9vL0RRxMDAAPr6+vQYdFpBEQ6H8/JPn5W0UfNsfXc1CYf/+8rXAQBv/fJd/Ol6H/7Cc8cy/nqf\nevbYjh/PzBawujowaz1YXR1gs8Ny7FkwsxnMbK3JvrsG9d1Li6Hgv/KVr+gr7Obn53e0J97pdGZ1\nN63V5oIgbLmuxY7z+XwZ/fXd1PB8Syssv/85JO5PQFleyplOE/3wyChefP0tcIxtP0CXBVbfAM7W\npI7Q2xqzjtAzZgZvJ+9BROkpixNLn8+HYDCo+8ozQhTFvNPmgm8WwH3WhdQnM0h8fA9IbQ3jDKii\n7/mjTnBv/CSvfJmtUc1bm4en6TeigsnLiWVnZycURdlTJ5a5BJyt2b5Xz2WMwXToGfCOA0g8mEQq\nMltIJuCaBfCOA+AFB5il8gIUEkQuDAUvCALOnTuHWCwGv99fCpuKDrNYYfm9T0N++ggS0/chx+YM\nbmDqarrWg+BbDuxoVJQgKglDwcdiMdy4cQMAcPPmzaIbVEq4pmZYP/0HkFeWkYo+hrwwD2V1FYAC\nZlJHx83tnwZvbyGRE/sCQ8FPTGxETI1EIkU1plxw9Q3gnnku8+T61A534KkyWEQQxcFQ8F6vF93d\n3WCMoa+vrxQ2EQRRJAxdXAUCATidTrS1te2bPjxB1Co1Fz2WIGqZnDV8evRYu90Ou92+r6LHEkQt\nUvPRYwmilqDosQRRQ2wr+Dt37qCzs1NfP3/27NmSGEUQRHHIKfjLly9jYmICc3Nz6O3txYkTJ0pp\nF0EQRSDnoJ3T6cTVq1cxNDSUsfiGIIjqJafg0z3Uaj/fuXOn+BYRBFE0DL3WKoqie2jZiddagiAq\nj6J5rSUIovIwXHhjdI4giOqBQqSUge9///vlNmFHVJO91WQrUHp7a1Lwb731Vl7pnuxgO3C+eQLA\nD37wg6LkW6y05ba3mmzdadpi2ZsLEvw27GT//178MXabb7HS7oRyC34n7OffbS6YouTwpF9ljI6O\nltsEgqgoTp8+veXcvhE8QRDG1GSTniBqFf6VV155pdxG7AZJkvDtb38bDx8+RDwex+HDh8tt0hYk\nScK7776LQCCAlZUVOByOircZAPr7+/GZz3wG8Xi8ou0dHBzE3NwcgsEg2tvbK9pWQA2l/uGHH+px\nFktqr1Ll9PX1KXNzc4qiKMrFixfLbE12BgYGlImJCUVRFMXj8VSFzXNzc4rX61UmJiYq2t7h4WFl\nZGREP65kWxVFtXd8fFxRFPV7UWp7q75JPzY2poeuMgo5XS58Pp8eH8/pdFaFzaFQSPdwVMn2joyM\nQBRFBAIBBIPBirYVUAOwnD9/HhcuXEB3d3fJ7a16wQPQQ00bhZwuN0NDQ7rn30q2ORwO634MNSrZ\nXrfbDa/XWxW/W1EUce3aNbS3t+PVV18FUFp7q17wWshpAIYhp8tJIBBAb28votFoxdssiiJCoRDG\nxsYQDAYr2t729vaM40q2FVALfZfLpQdRLbW9VT8tJ0mSHnLa7XYXHlK6iAQCAfj9fjidTrhcLvT2\n9la8zZIkoaurC11dXeju7q5Ye7W/vxaS3O12V6ytADJCoEej0ZLbW/WCJwgif6q+SU8QRP6Q4Ami\nhiDBE0QNQYInKoZwOIxwOGyYzu/3Z53C0ubiidyQ4PcB4XAY7e3tCAaD+ozAXuQ5ODi4qzz6+/t3\nlN7pdOYV2aijowOCICAcDiMQCCAQCABQIx1X4tx7JUGC3we4XC64XC54PB54vV6IorjrVVsulws+\nn6/g+yVJ2pE/gUIYGhqC1+vFyMhIUZ+znzAMNUVUB5IkIRgMQhRFdHZ2wul0QhRFvYnr8XggSRJC\noRAkSYLP50MwGMTQ0BAuXLiAkZERdHZ2YmRkBH19fQgGg/pSYC1NOBzGxYsX9XwlSYIgCDkLhvb2\ndoTDYbhcLgQCAcN8uru7AWCL3dlCnAUCAbS2tiIQCFTkEtpKhWr4fYIgCPB4PPD5fJiYmEA4HIbf\n74fb7dbF73K54HA4AADBYBAejwcOhwMejweiKMLj8egidbvdiEQiGWm0gCTpS2+1uIPpaCv1HA6H\n3kTfST6b7c7G2NiYXtB0dnbuxa+wJqAafh+i9ecB6Kv7JEmC3+9HT08PBEHQ+7rack6tIMjG5iWf\n6QVIttpXkiRdwOl9cqN80vvf6XZvZ5fWIiHygwS/D9BGt7Um/cjICK5duwav14vBwUFdUO3t7RBF\nEdFoFOPj4zCZTPpSz1AoBFEUMT4+DgCIRqP6+c1pBEHA0NAQnE4nHA5HxnLQYDCI4eFhDAwMAFDF\n39/fD5fLZZiP9sy+vr4Mu7OtMe/s7EQgEEBXV1dFrpmvWIq+AZfYd6Tv4fb5fCXPZ3h4uKBrhKJQ\nDU/sGKfTiVAoBAA4depU2fMh8ocET+wYr9db1nzGxsbg8Xi2NOUDgQA17w2g3XIEUUPQtBxB1BAk\neIKoIUjwBFFDkOAJooYgwRNEDUGCJ4ga4j8AnF+Xg8NLJIIAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1759,466 +1072,59 @@ "\n", "\n", "f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - "priors = [\"U(0,1)\", \"jeffreys\", \"$\\delta(0.5)$\"]\n", + "\n", + "priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(0.5)$\", \"$\\delta(1.0)$\"]\n", "pos = np.arange(4)/2.\n", "cbc_rate = np.mean(traces[0]['cbc_rate'])\n", - "injected = np.arccos(1 - 2*grb_rate / cbc_rate)\n", + "injected = np.arccos(1 - 2*grb_rate/ number_mweg(1e9) / cbc_rate)\n", "\n", "print \"injected at: {}\".format(np.rad2deg(injected))\n", "\n", + "print r\"\"\"\n", + " \\toprule\n", + " Prior & Lower & MAP & Median & Upper\\\\\n", + " & [$^\\circ$] & [$^\\circ$]& [$^\\circ$]& [$^\\circ$] \\\\\n", + " \\colrule\n", + "\"\"\"\n", + "\n", "ax.vlines(np.rad2deg(injected), -0.5,2, 'r')\n", "for i, trace in enumerate(traces):\n", " data = np.rad2deg(trace[2000:]['angle'][np.isfinite(trace[2000:]['angle'])])\n", " parts = ax.violinplot(data, \n", - " [pos[i]], points=50, widths=0.3, vert= False,\n", + " [pos[i]], points=200, widths=0.3, vert= False,\n", " #showmeans = True, showmedians=True, \n", " showmeans=False, showextrema=False, showmedians=False)\n", "\n", " lower, medians, upper = np.percentile(data, [2.5, 50, 97.50])\n", - " hist = np.histogram(data, bins = 50)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", - "\n", - " \n", + " a = stats.gaussian_kde(data)\n", + " x = np.linspace(0,90, 200)\n", + " MAP = x[a.pdf(x).argmax()]\n", " \n", "\n", " ax.hlines(pos[i], lower, upper, color='#333333', linestyle='-', lw=2, alpha = 0.5)\n", "\n", - " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=30, zorder=3)\n", - " ax.scatter( [MAP], pos[i], marker='D', color='k', s=30, zorder=3)\n", - " ax.scatter( [medians], pos[i], marker='s', color='k', s=30, zorder=3)\n", - " print \"| {:.2f}\\t | {:.2f}\\t | {:.2f}\\t | {:.2f}\\t |\".format(lower, MAP, medians, upper)\n", + " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=15, zorder=3)\n", + " ax.scatter( [MAP], pos[i], marker='D', color='k', s=15, zorder=3)\n", + " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", + " print \"{} & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t & {:.2f}\\t \\\\\".format(priors[i], lower, MAP, medians, upper)\n", " axis = ax\n", " axis.set_yticks(pos)\n", " axis.set_yticklabels(priors)\n", - " ax.set_ylim(-0.5, 1.5)\n", + " ax.set_ylim(-0.5, 2.0)\n", " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", + " \n", + " ax.grid(b=True, axis='y', which='major', linewidth=0)\n", " #axis.set_xlim([0, 35])\n", " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", + "ax.set_xlim([0,90])\n", + "print r\"\\botrule\"\n", + "ax.tick_params(axis='y',which='both',left='off')\n", "ax.set_xlabel(r\"Beaming Angle [$\\theta$]\")\n", "ax.set_ylabel(r\"Prior Distribution on efficiency\")\n", "f.subplots_adjust(0.20, 0.15, .98, .95, wspace=0.05)\n", - "f.savefig(\"O2_injections_violin.pdf\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Effect of observing time and horizon distance on the posterior" - ] - }, - { - "cell_type": "code", - "execution_count": 286, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# make a plot of the beaming angle as a function of observation volume against number of detections\n", - "# O1 Scenarios\n", - "scenarios = []\n", - "events = 0\n", - "for horizon in np.arange(10, 400, 20):\n", - " number_events = events # There were no BNS detections in O1\n", - " background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - " observation_time = 1. # The number of days of analysis conducted by gstLAL\n", - " horizon = horizon # The O1 BNS horizon distance in O1 BNS paper\n", - " grb_rate = 10.0\n", - " prior = 1.0\n", - " zero_models = []\n", - " for prior in priors:\n", - " scenarios.append( grb_model(number_events, background_rate, observation_time, horizon, grb_rate, ))" - ] - }, - { - "cell_type": "code", - "execution_count": 287, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 10000/10000 [00:01<00:00, 7050.16it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6959.67it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6787.59it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7073.98it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5982.12it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6535.14it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6649.79it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6780.95it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6197.50it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6475.48it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5838.47it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5533.54it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6208.63it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5647.75it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5749.02it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7241.84it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5309.81it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5901.97it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6990.15it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7079.90it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5973.19it/s]\n", - "100%|██████████| 10000/10000 [00:02<00:00, 4991.55it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5702.45it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6661.02it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6714.88it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5286.09it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5391.39it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6072.40it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5833.20it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5391.06it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6550.92it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6490.59it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6276.42it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6334.47it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6620.16it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6718.49it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6162.25it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6864.86it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6682.71it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7127.88it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6871.70it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6069.23it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5957.28it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5389.19it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6436.35it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7410.04it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7161.26it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7386.53it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7286.09it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7140.35it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7323.52it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7288.03it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7439.04it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6420.48it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7292.27it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7409.79it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7519.47it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6834.59it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7253.81it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5990.55it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6447.62it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7383.65it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7465.46it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6552.06it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7402.08it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6489.47it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5703.09it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6908.42it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7267.07it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7413.68it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7441.36it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7539.92it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7465.65it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6908.62it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7208.05it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 7312.38it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6063.30it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 5787.56it/s]\n", - "100%|██████████| 10000/10000 [00:02<00:00, 4107.74it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 6160.08it/s]\n" - ] - } - ], - "source": [ - "traces = []\n", - "samples = 10000\n", - "for model in scenarios:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " traces.append(pm.sample(samples, step))" - ] - }, - { - "cell_type": "code", - "execution_count": 291, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "angles = []\n", - "upper = []\n", - "lower = []\n", - "for trace in traces:\n", - " angles.append(np.rad2deg(np.nanmean(trace['angle'])))\n", - " upper.append(np.rad2deg(np.nanpercentile(trace['angle'], 97.5)))\n", - " lower.append(np.rad2deg(np.nanpercentile(trace['angle'], 2.5)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For a scenario in which there are no detections, the estimate of the beaming angle against the horizon distance can be produced." - ] - }, - { - "cell_type": "code", - "execution_count": 310, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 310, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(np.linspace(10, 400, len(traces)),angles, label = \"mean\")\n", - "plt.fill_between(np.linspace(10, 400, len(traces)), upper, lower, alpha = 0.3, label = \"95% confidence interval\")\n", - "plt.legend()\n", - "plt.xlabel(\"Horizon distance / Mpc\")\n", - "plt.ylabel(\"Beaming Angle / deg\")" - ] - }, - { - "cell_type": "code", - "execution_count": 250, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import theano.tensor as T\n", - "from pymc3 import DensityDist, Uniform, Normal\n", - "from pymc3 import Model\n", - "from pymc3 import distributions\n", - "\n", - "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]\n", - "theta = np.deg2rad(30)\n", - "\n", - "def grb_model_reverse(number_events, background_rate, \n", - " observation_time, horizon,\n", - " efficiency_prior = \"uniform\"):\n", - " with Model() as model:\n", - " signal_rate = pm.Deterministic(\"signal_rate\", log_signal_rate(value, number_events, background_rate, observation_time)\n", - " )\n", - " n_galaxy = number_mweg(horizon)\n", - " \n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate * n_galaxy)\n", - " \n", - " \n", - " # Allow the efficiency prior to be switched-out\n", - " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", - " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", - " elif isinstance(efficiency_prior, float):\n", - " efficiency = efficiency_prior\n", - " \n", - " grb_rate = 3.0\n", - " print grb_rate\n", - " \n", - " def cosangle(cbc_rate, efficiency, grb_rate):\n", - " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", - " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", - "\n", - " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", - " \n", - " return model" - ] - }, - { - "cell_type": "code", - "execution_count": 251, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.0\n", - "3.0\n", - "3.0\n", - "3.0\n" - ] - } - ], - "source": [ - "# 2015 - 2016 Scenario\n", - "number_events = 0 # There were no BNS detections in O1\n", - "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - "observation_time = 46.1/365. # The number of days of analysis conducted by gstLAL\n", - "horizon = 73.2 # The O1 BNS horizon distance in O1 BNS paper\n", - "grb_rate = 10.0\n", - "back_models = []\n", - "for prior in priors:\n", - " back_models.append( grb_model_reverse(number_events, background_rate, observation_time, horizon, prior))" + "f.savefig(\"../final_paper/O2_injections_violin.pdf\")" ] - }, - { - "cell_type": "code", - "execution_count": 252, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 10000/10000 [00:00<00:00, 10610.78it/s]\n", - "100%|██████████| 10000/10000 [00:01<00:00, 9846.84it/s]\n" - ] - }, - { - "ename": "ValueError", - "evalue": "need at least one array to concatenate", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmodel\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mback_models\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mstep\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMetropolis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mback_traces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msamples\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/pymc3/step_methods/metropolis.pyc\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, vars, S, proposal_dist, scaling, tune, tune_interval, model, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[0;31m# Determine type of variables\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 92\u001b[0m self.discrete = np.concatenate(\n\u001b[0;32m---> 93\u001b[0;31m [[v.dtype in pm.discrete_types] * (v.dsize or 1) for v in vars])\n\u001b[0m\u001b[1;32m 94\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many_discrete\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiscrete\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall_discrete\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdiscrete\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: need at least one array to concatenate" - ] - } - ], - "source": [ - "back_traces = []\n", - "samples = 10000\n", - "for model in back_models:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " back_traces.append(pm.sample(samples, step))" - ] - }, - { - "cell_type": "code", - "execution_count": 253, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "zero-size array to reduction operation minimum which has no identity", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mo1_trace\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mback_traces\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m ax.hist(np.rad2deg(o1_trace[2000:]['cos_angle'][np.isfinite(o1_trace[2000:]['cos_angle'])]),\n\u001b[0;32m----> 9\u001b[0;31m histtype=\"step\", bins = 50, lw=2, label=priors[i], log=True, normed=True);\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0;31m#ax.hist(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]),\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;31m# histtype=\"step\", lw=2, label=\"O2 Angle\", log=True);\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/__init__.pyc\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1890\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[1;32m 1891\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1892\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1893\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1894\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mhist\u001b[0;34m(self, x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 6309\u001b[0m \u001b[0;31m# (gives 1 full tick-label unit for the lowest filled bin)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6310\u001b[0m \u001b[0mndata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6311\u001b[0;31m \u001b[0mminimum\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mndata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mndata\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mlogbase\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6312\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6313\u001b[0m \u001b[0;31m# For non-normed data, set the min to 1 / log base,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/numpy/core/fromnumeric.pyc\u001b[0m in \u001b[0;36mamin\u001b[0;34m(a, axis, out, keepdims)\u001b[0m\n\u001b[1;32m 2350\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2351\u001b[0m return _methods._amin(a, axis=axis,\n\u001b[0;32m-> 2352\u001b[0;31m out=out, **kwargs)\n\u001b[0m\u001b[1;32m 2353\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2354\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/numpy/core/_methods.pyc\u001b[0m in \u001b[0;36m_amin\u001b[0;34m(a, axis, out, keepdims)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_amin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mumr_minimum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 30\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_sum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: zero-size array to reduction operation minimum which has no identity" - ] - }, - { - "ename": "ValueError", - "evalue": "Data has no positive values, and therefore can not be log-scaled.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/IPython/core/formatters.pyc\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 334\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mprinter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 335\u001b[0m \u001b[0;31m# Finally look for special method names\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 336\u001b[0m \u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_real_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_method\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/IPython/core/pylabtools.pyc\u001b[0m in \u001b[0;36m\u001b[0;34m(fig)\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'png'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 240\u001b[0;31m \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'png'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 241\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'retina'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m'png2x'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformats\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[0mpng_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfor_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mFigure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mretina_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/IPython/core/pylabtools.pyc\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, **kwargs)\u001b[0m\n\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0mbytes_io\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBytesIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 124\u001b[0;31m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbytes_io\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 125\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbytes_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetvalue\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 126\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfmt\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'svg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/backend_bases.pyc\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2190\u001b[0m \u001b[0morientation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morientation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2191\u001b[0m \u001b[0mdryrun\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2192\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 2193\u001b[0m \u001b[0mrenderer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_cachedRenderer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2194\u001b[0m \u001b[0mbbox_inches\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_tightbbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/backends/backend_agg.pyc\u001b[0m in \u001b[0;36mprint_png\u001b[0;34m(self, filename_or_obj, *args, **kwargs)\u001b[0m\n\u001b[1;32m 543\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 544\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprint_png\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename_or_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 545\u001b[0;31m \u001b[0mFigureCanvasAgg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 546\u001b[0m \u001b[0mrenderer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_renderer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 547\u001b[0m \u001b[0moriginal_dpi\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdpi\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/backends/backend_agg.pyc\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 463\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 464\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 465\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 466\u001b[0m \u001b[0mRendererAgg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrelease\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/artist.pyc\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdraw_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mbefore\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mafter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/figure.pyc\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1141\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1142\u001b[0m mimage._draw_list_compositing_images(\n\u001b[0;32m-> 1143\u001b[0;31m renderer, self, dsu, self.suppressComposite)\n\u001b[0m\u001b[1;32m 1144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1145\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figure'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/image.pyc\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, dsu, suppress_composite)\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mzorder\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdsu\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 139\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 140\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/artist.pyc\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdraw_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mbefore\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mafter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, inframe)\u001b[0m\n\u001b[1;32m 2407\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstop_rasterizing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2408\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2409\u001b[0;31m \u001b[0mmimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_draw_list_compositing_images\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdsu\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2410\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2411\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'axes'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/image.pyc\u001b[0m in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, dsu, suppress_composite)\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnot_composite\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhas_images\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mzorder\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdsu\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 139\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 140\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0;31m# Composite any adjacent images together\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/artist.pyc\u001b[0m in \u001b[0;36mdraw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdraw_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mbefore\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mafter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0martist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/axis.pyc\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1134\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_group\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1135\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1136\u001b[0;31m \u001b[0mticks_to_draw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1137\u001b[0m ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,\n\u001b[1;32m 1138\u001b[0m renderer)\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/axis.pyc\u001b[0m in \u001b[0;36m_update_ticks\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 967\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 968\u001b[0m \u001b[0minterval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_view_interval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 969\u001b[0;31m \u001b[0mtick_tups\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mt\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miter_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 970\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_smart_bounds\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 971\u001b[0m \u001b[0;31m# handle inverted limits\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/axis.pyc\u001b[0m in \u001b[0;36miter_ticks\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 910\u001b[0m \u001b[0mIterate\u001b[0m \u001b[0mthrough\u001b[0m \u001b[0mall\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mmajor\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mminor\u001b[0m \u001b[0mticks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 911\u001b[0m \"\"\"\n\u001b[0;32m--> 912\u001b[0;31m \u001b[0mmajorLocs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmajor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlocator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 913\u001b[0m \u001b[0mmajorTicks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_major_ticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmajorLocs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 914\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmajor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_locs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmajorLocs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/ticker.pyc\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1936\u001b[0m \u001b[0;34m'Return the locations of the ticks'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1937\u001b[0m \u001b[0mvmin\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvmax\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_view_interval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1938\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtick_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvmin\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvmax\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1939\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1940\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtick_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvmin\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvmax\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/home/daniel/.virtualenvs/IGRlaptop21/grbeaming/lib/python2.7/site-packages/matplotlib/ticker.pyc\u001b[0m in \u001b[0;36mtick_values\u001b[0;34m(self, vmin, vmax)\u001b[0m\n\u001b[1;32m 1962\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvmin\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0;36m0.0\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misfinite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvmin\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1963\u001b[0m raise ValueError(\n\u001b[0;32m-> 1964\u001b[0;31m \u001b[0;34m\"Data has no positive values, and therefore can not be \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1965\u001b[0m \"log-scaled.\")\n\u001b[1;32m 1966\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: Data has no positive values, and therefore can not be log-scaled." - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "priors = [\"U(0,1)\", \"jeffreys\",]# \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - "width = 3.487 #* 2\n", - "height = width / 1.618\n", - "f, ax = plt.subplots(1,1, figsize = (width, height), sharey=True, sharex=True)\n", - "for i in range(len(priors)):\n", - "\n", - " o1_trace = back_traces[i]\n", - " ax.hist(np.rad2deg(o1_trace[2000:]['cos_angle'][np.isfinite(o1_trace[2000:]['cos_angle'])]),\n", - " histtype=\"step\", bins = 50, lw=2, label=priors[i], log=True, normed=True);\n", - " #ax.hist(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]),\n", - " # histtype=\"step\", lw=2, label=\"O2 Angle\", log=True);\n", - " #ax[3,i].vlines(np.percentile(np.rad2deg(o1_trace[2000:]['angle'][np.isfinite(o1_trace[2000:]['angle'])]), 90), 0, 3e5,\n", - " # label = \"90\\% lower limit, O1\");\n", - " #ax[3,i].vlines(np.percentile(np.rad2deg(o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]), 90), 0, 3e5,\n", - " # label = \"90\\% lower limit, O2\");\n", - " #ax[1,0].set_xlabel(u\"$s$ /Gpc³/yr\")\n", - " if i==3: ax.legend()\n", - " #if i > 0: \n", - " # ax[i].set_yticklabels([]), ax[2,i].set_yticklabels([])\n", - " # ax[i].set_yticklabels([]), ax[1,i].set_yticklabels([])\n", - "ax.set_xlabel(\"Beaming angle [deg]\") \n", - "ax.set_ylabel(r\"$p(\\theta | D,I)$\")\n", - "f.subplots_adjust(0.07, 0.05, .99, .95, wspace=0.05)\n", - "f.savefig(\"O1_beaming_posteriors.pdf\")\n", - "#f.savefig(\"/home/daniel/papers/thesis/figures/grbbeamingpymc.pdf\")" - ] - }, - { - "cell_type": "code", - "execution_count": 292, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "11.062123598063081" - ] - }, - "execution_count": 292, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.mean(trace['cbc_rate'])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/notebooks/GRB Beaming estimation O1 + O2.ipynb b/notebooks/GRB Beaming estimation O1 + O2.ipynb deleted file mode 100644 index 0739aa3..0000000 --- a/notebooks/GRB Beaming estimation O1 + O2.ipynb +++ /dev/null @@ -1,706 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pymc3 as pm\n", - "import numpy as np\n", - "import theano\n", - "\n", - "from theano.compile.ops import as_op\n", - "\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "plt.style.use(\"/home/daniel/papers/thesis/thesis-style.mpl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import matplotlib\n", - "font = {'family' : 'normal',\n", - " 'weight' : 'bold',\n", - " 'size' : 16}\n", - "\n", - "matplotlib.rc('font', **font)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def background_rate_f(b, T, n):\n", - " \"\"\"\n", - " \n", - " \"\"\"\n", - " out = 0\n", - " #n = int(n)\n", - " for i in range(n+1):\n", - " out += ((b*T)**i * np.exp(- b*T)) / np.math.factorial(i)\n", - " return out\n", - "\n", - "def log_background_rate(b, T, n):\n", - " return np.log(background_rate_f(b, T, n))\n", - "\n", - "def signal_rate_part(s, n, b, T):\n", - " top_a = T * ((s + b) * T)**n \n", - " top_b = np.exp(-(s + b)*T)\n", - " p = (top_a * top_b) / np.math.factorial(n)\n", - " return theano.tensor.switch(theano.tensor.le(s, 0), 0, p)\n", - "\n", - "#@as_op(itypes=[T.dscalar, T.dscalar, T.dscalar, T.dscalar], otypes=[T.dscalar])\n", - "def log_signal_rate(s,n,b,T):\n", - " #if theano.tensor.lt(0, s): return np.array([[0.0]])\n", - " p = -log_background_rate(b,T,n) + np.log(signal_rate_part(s,n,b,T))\n", - " \n", - " return p" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def beaming_violins(traces, priors):\n", - "\n", - " width = 3.487 #* 2\n", - " height = width / 1.618\n", - "\n", - "\n", - " f, ax = plt.subplots(1,1, sharex=True, figsize = (width, height))\n", - " priors = [\"U(0,1)\", \"Jeffreys\", \"$\\delta(1)$\", \"$\\delta(0.5)$\"]\n", - " print \"|\\t\\t\\t| Lower\\t| MAP\\t| Median\\t| Upper\\t|\"\n", - " print \"|----------|\"\n", - " matplotlib.rcParams.update({'font.size': 10})\n", - " pos = [.5, 1, 1.5, 2]\n", - "\n", - " for i in range(len(priors)):\n", - "\n", - " o2_trace = traces[i]\n", - " #o2_trace = o2_traces[i]\n", - "\n", - " #i = i/2.0\n", - " t_data = o2_trace[2000:]['angle'][np.isfinite(o2_trace[2000:]['angle'])]\n", - " data = np.rad2deg(t_data)\n", - "\n", - " parts = ax.violinplot(data, [pos[i]], points=100, widths=0.3, vert= False,\n", - " #showmeans = True, showmedians=True, \n", - " showmeans=False, showextrema=False, showmedians=False)\n", - "\n", - " lower_p, medians, upper_p = np.percentile(data, [2.5, 50, 97.50])\n", - " lower, upper = pymc3.stats.hpd(t_data, alpha=0.05, transform=np.rad2deg)\n", - " hist = np.histogram(data, bins = 90)\n", - " MAP = hist[1][np.argmax(hist[0])]\n", - "\n", - "\n", - "\n", - " ax.hlines(pos[i], lower, upper, color='#333333', linestyle='-', lw=2, alpha = 0.5)\n", - "\n", - " ax.scatter( [lower, upper], [pos[i]]*2, marker='|', color='k', s=15, zorder=3)\n", - " ax.scatter( [MAP], pos[i], marker='D', color='k', s=15, zorder=3)\n", - " ax.scatter( [medians], pos[i], marker='s', color='k', s=15, zorder=3)\n", - " #ax2.vlines(inds, whiskersMin, whiskersMax, color='k', linestyle='-', lw=1)\n", - "\n", - " print \"| {} \\t| {:.2f}\\t| {:.2f}\\t| {:.2f}\\t| {:.2f}\\t|\".format(priors[i], lower, MAP, medians, upper)\n", - "\n", - " axis = ax\n", - " axis.set_yticks(pos)\n", - " axis.set_yticklabels(priors)\n", - " axis.set_xlim([0, 52])\n", - " ax.get_xaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.get_yaxis().set_minor_locator(matplotlib.ticker.AutoMinorLocator())\n", - " ax.grid(b=True, axis='x', which='major', linewidth=0.5)\n", - " ax.grid(b=True, axis='y', which='major', linewidth=0)\n", - " #ax.grid(b=True, which='minor', linewidth=0.5)\n", - " ax.set_xlabel(r\"Beaming Angle [$\\theta$]\")\n", - " ax.set_ylabel(r\"Prior Distribution on efficiency\")\n", - " ax.tick_params(axis='y',which='both',left='off')\n", - " f.subplots_adjust(0.20, 0.15, .98, .95, wspace=0.05)\n", - " #f.savefig(\"O2a_beaming_posteriors_violin.pdf\")\n", - " #f.savefig(\"O2a_beaming_posteriors_violin.png\", dpi=300)\n", - " return f" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Assuming VT is known perfectly\n", - "I start with a model in which VT is known perfectly, and where we do not account for the number of galaxies in the observed volume, and assume that sources can be distributed isotropically, in the same way that the other rates estimates do." - ] - }, - { - "cell_type": "code", - "execution_count": 224, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import theano.tensor as T\n", - "from pymc3 import DensityDist, Uniform, Normal\n", - "from pymc3 import Model\n", - "from pymc3 import distributions\n", - "\n", - "def grb_model_non_galaxy(number_events, background_rate, \n", - " observation_time, volume, grb_rate,\n", - " efficiency_prior = \"uniform\"):\n", - " with Model() as model:\n", - " signal_rate = pm.DensityDist('signal_rate', \n", - " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time),\n", - " testval=50)\n", - "\n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate / volume * 1e9) \n", - " \n", - " # Allow the efficiency prior to be switched-out\n", - " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", - " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", - " elif isinstance(efficiency_prior, float):\n", - " efficiency = efficiency_prior\n", - " \n", - " def cosangle(cbc_rate, efficiency, grb_rate):\n", - " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", - " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", - "\n", - " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", - " \n", - " return model\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 225, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the actual O1 + O2 scenario we had a total VT of 1502060.62853 Mpc^3yr with a sigma of 118341.996612 Mpc^3yr. This is based off a total observation time of 99.0 + 49.8 days (according to Tom Dents notebook for the rates estimate)." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "O1_analysis_time = 49.8/365.25\n", - "O2_analysis_time = 99.0/365.25" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "total_time = O1_analysis_time + O2_analysis_time" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "total_vt = 1502060.62853 \n", - "total_v = total_vt / total_time" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3687013.74039\n" - ] - } - ], - "source": [ - "print total_v" - ] - }, - { - "cell_type": "code", - "execution_count": 229, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Actual O2\n", - "\n", - "number_events = 1 # There were no BNS detections in O1\n", - "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - "grb_rate = 10.0 \n", - "o2a_models = []\n", - "for prior in priors:\n", - " o2a_models.append( grb_model_non_galaxy(number_events, background_rate, total_time, total_v, grb_rate, prior))" - ] - }, - { - "cell_type": "code", - "execution_count": 316, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 1000000/1000000 [03:46<00:00, 4412.35it/s]\n", - "100%|██████████| 1000000/1000000 [03:42<00:00, 4496.96it/s]\n", - "100%|██████████| 1000000/1000000 [02:15<00:00, 7390.61it/s]\n", - "100%|██████████| 1000000/1000000 [02:13<00:00, 7477.37it/s]\n" - ] - } - ], - "source": [ - "samples = 1000000\n", - "o2a_traces = []\n", - "for model in o2a_models:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " o2a_traces.append(pm.sample(samples, step))" - ] - }, - { - "cell_type": "code", - "execution_count": 317, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", - "|----------|\n", - "| U(0,1) \t| 3.64\t| 7.48\t| 11.83\t| 39.72\t|\n", - "| Jeffreys \t| 3.43\t| 7.49\t| 11.81\t| 51.13\t|\n", - "| $\\delta(1)$ \t| 3.40\t| 6.23\t| 7.67\t| 17.04\t|\n", - "| $\\delta(0.5)$ \t| 4.77\t| 9.01\t| 10.85\t| 24.20\t|\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 317, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "beaming_violins(o2a_traces, priors)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Assuming VT is distributed\n", - "We can also incorporate the uncertainty in VT." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "sigma_vt = 118342" - ] - }, - { - "cell_type": "code", - "execution_count": 319, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import theano.tensor as T\n", - "from pymc3 import DensityDist, Uniform, Normal\n", - "from pymc3 import Model\n", - "from pymc3 import distributions\n", - "\n", - "def grb_model_non_galaxy_sigma(number_events, background_rate, \n", - " observation_time, volume, sigma_volume, grb_rate,\n", - " efficiency_prior = \"uniform\"):\n", - " with Model() as model:\n", - " signal_rate = pm.DensityDist('signal_rate', \n", - " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time),\n", - " testval=50)\n", - "\n", - " volume = pm.Normal(\"volume\", volume, sigma_volume)\n", - " \n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate / volume * 1e9) \n", - " \n", - " # Allow the efficiency prior to be switched-out\n", - " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", - " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", - " elif isinstance(efficiency_prior, float):\n", - " efficiency = efficiency_prior\n", - " \n", - " def cosangle(cbc_rate, efficiency, grb_rate):\n", - " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", - " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", - "\n", - " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", - " \n", - " return model\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 320, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Actual O2\n", - "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]\n", - "number_events = 1 # There were no BNS detections in O1\n", - "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - "grb_rate = 10.0 \n", - "o2a_models_u = []\n", - "for prior in priors:\n", - " o2a_models_u.append( grb_model_non_galaxy_sigma(number_events, background_rate, total_time, total_v, sigma_vt/total_time, grb_rate, prior))" - ] - }, - { - "cell_type": "code", - "execution_count": 321, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 1000000/1000000 [03:37<00:00, 4607.29it/s]\n", - "100%|██████████| 1000000/1000000 [03:43<00:00, 4465.80it/s]\n", - "100%|██████████| 1000000/1000000 [02:31<00:00, 6610.55it/s]\n", - "100%|██████████| 1000000/1000000 [02:26<00:00, 6843.46it/s]\n" - ] - } - ], - "source": [ - "samples = 1000000\n", - "o2a_traces_u = []\n", - "for model in o2a_models_u:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " o2a_traces_u.append(pm.sample(samples, step))" - ] - }, - { - "cell_type": "code", - "execution_count": 322, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", - "|----------|\n", - "| U(0,1) \t| 3.67\t| 7.21\t| 11.83\t| 39.75\t|\n", - "| Jeffreys \t| 3.42\t| 7.45\t| 11.77\t| 50.89\t|\n", - "| $\\delta(1)$ \t| 3.44\t| 6.26\t| 7.67\t| 17.07\t|\n", - "| $\\delta(0.5)$ \t| 4.88\t| 8.02\t| 10.86\t| 24.20\t|\n" - ] - }, - { - "data": { - "image/png": "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\nxP8HtV9n+WXRFwcAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "distributed_vt_plot = beaming_violins(o2a_traces_u, priors)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Assuming an event must originate in an MWEG" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def number_mweg(volume):\n", - " \"\"\"\n", - " Calculates the number of MWEGs in a volume, given in units of Mpc^3\n", - " \"\"\"\n", - " return volume * (0.0116) " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "42769.35938856692" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "number_mweg(total_v)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import theano.tensor as T\n", - "from pymc3 import DensityDist, Uniform, Normal\n", - "from pymc3 import Model\n", - "from pymc3 import distributions\n", - "\n", - "def grb_model_sigma(number_events, background_rate, \n", - " observation_time, volume, sigma_volume, grb_rate,\n", - " efficiency_prior = \"uniform\"):\n", - " with Model() as model:\n", - " signal_rate = pm.DensityDist('signal_rate', \n", - " logp=lambda value: log_signal_rate(value, number_events, background_rate, observation_time),\n", - " testval=50)\n", - "\n", - " volume = pm.Normal(\"volume\", volume, sigma_volume)\n", - " \n", - " n_galaxy = number_mweg(volume)\n", - " \n", - " cbc_rate = pm.Deterministic('cbc_rate', signal_rate / n_galaxy)\n", - " \n", - " grb_rate = (grb_rate / number_mweg(1e9)) #/ n_galaxy\n", - " \n", - " # Allow the efficiency prior to be switched-out\n", - " if efficiency_prior == \"uniform\":\n", - " efficiency = pm.Uniform('efficiency', 0,1)\n", - " elif efficiency_prior == \"jeffreys\":\n", - " efficiency = pm.Beta('efficiency', 0.5, 0.5)\n", - " elif isinstance(efficiency_prior, float):\n", - " efficiency = efficiency_prior\n", - " \n", - " def cosangle(cbc_rate, efficiency, grb_rate):\n", - " return T.switch((grb_rate >= cbc_rate*efficiency), -np.Inf, \n", - " (1.0 - ((grb_rate/(cbc_rate*efficiency)))))\n", - " \n", - " costheta = pm.Deterministic('cos_angle', cosangle(cbc_rate, efficiency, grb_rate)\n", - " \n", - " )\n", - "\n", - " angle = pm.Deterministic(\"angle\", theano.tensor.arccos(costheta))\n", - " \n", - " return model\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# Actual O2\n", - "priors = [\"uniform\", \"jeffreys\", 1.0, 0.5]\n", - "number_events = 1 # There were no BNS detections in O1\n", - "background_rate = 0.01 # We take the FAR to be 1/100 yr\n", - "grb_rate = 10.0 \n", - "o2a_models_mweg = []\n", - "for prior in priors:\n", - " o2a_models_mweg.append( grb_model_sigma(number_events, background_rate, total_time, total_v, sigma_vt/total_time, grb_rate, prior))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 100000/100000 [00:18<00:00, 5272.37it/s]\n", - "100%|██████████| 100000/100000 [00:18<00:00, 5399.02it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7945.84it/s]\n", - "100%|██████████| 100000/100000 [00:12<00:00, 7861.60it/s]\n" - ] - } - ], - "source": [ - "samples = 100000\n", - "o2a_traces_mweg = []\n", - "for model in o2a_models_mweg:\n", - " with model:\n", - " step = pm.Metropolis()\n", - " o2a_traces_mweg.append(pm.sample(samples, step))" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pymc3" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "|\t\t\t| Lower\t| MAP\t| Median\t| Upper\t|\n", - "|----------|\n", - "| U(0,1) \t| 3.69\t| 8.64\t| 11.66\t| 40.01\t|\n", - "| Jeffreys \t| 3.51\t| 7.53\t| 11.85\t| 51.54\t|\n", - "| $\\delta(1)$ \t| 3.43\t| 5.42\t| 7.66\t| 16.82\t|\n", - "| $\\delta(0.5)$ \t| 4.79\t| 8.37\t| 10.88\t| 23.83\t|\n" - ] - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "mweg_viols = beaming_violins(o2a_traces_mweg, priors)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python (grbeaming)", - "language": "python", - "name": "venv-grbeaming" - }, - "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.12" - }, - "latex_envs": { - "bibliofile": "biblio.bib", - "cite_by": "apalike", - "current_citInitial": 1, - "eqLabelWithNumbers": true, - "eqNumInitial": 0 - } - }, - "nbformat": 4, - "nbformat_minor": 1 -}