Skip to content

Instantly share code, notes, and snippets.

@wiso
Created March 23, 2018 10:42
Show Gist options
  • Save wiso/42e10edb3104551ef69ef6238929fdaa to your computer and use it in GitHub Desktop.
Save wiso/42e10edb3104551ef69ef6238929fdaa to your computer and use it in GitHub Desktop.
Bootstrap with weights
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## True distribution\n",
"Consider a uniform distribution between 0 and 1"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"true_distribution = stats.uniform(0, 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate some random data\n",
"Let keep the number of events quite small"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.59502129 0.46140994 0.35384407 0.23431477 0.50221633 0.27691475\n",
" 0.11555432 0.17305155 0.2286434 0.66328823 0.70525071 0.07090432\n",
" 0.02530707 0.84574249 0.98512045 0.1777759 0.97085257 0.88052571\n",
" 0.48684881 0.79963338 0.09663999 0.3437495 0.23289351 0.49167888\n",
" 0.27974784 0.83093749 0.53186401 0.87734998 0.84806406 0.78856879\n",
" 0.54867884 0.62818708 0.3351214 0.61151167 0.94606897 0.31617096\n",
" 0.05578489 0.8653497 0.29667908 0.15878473 0.80508433 0.85533968\n",
" 0.2671313 0.55259029 0.09998479 0.70407866 0.31996603 0.22224115\n",
" 0.75289567 0.01387067]\n"
]
}
],
"source": [
"NEVENTS = 50\n",
"data = true_distribution.rvs(NEVENTS)\n",
"\n",
"print data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Number of different possible bootstrapped sample"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8881784197001252323389053344726562500000000000000000000000000000000000000000000000000L"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"NEVENTS ** NEVENTS"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set a reasonable number of bootstrap samples to be sampled"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"NBOOTSTRAP = 10000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# First example: compute the efficiency of a cut"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define a cut\n",
"The predicate is true (event accepted) when the quantity is large than 0.9"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"predicate = lambda x: x > 0.9 # the expected efficiency is 0.1 (data is uniform [0, 1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compute the efficiency on data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.06\n"
]
}
],
"source": [
"def efficiency(data, predicate, weights=None):\n",
" \"\"\"\n",
" both weighted and non-weighted version\n",
" \"\"\"\n",
" if weights is None:\n",
" return np.sum(predicate(data)) / float(len(data))\n",
" return np.sum(predicate(data) * weights) / float(np.sum(weights))\n",
"\n",
"eff = efficiency(data, predicate)\n",
"print eff"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We want to know the errors on it. The classical approach is $\\sqrt{\\hat\\varepsilon (1 - \\hat\\varepsilon)/ N}$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.03358571124749333"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sqrt(eff * (1 - eff) / NEVENTS)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Classical boostrap (resample with repetition)\n",
"A \"bootstrap\" is defined as a bootstrapped sample in the \"resample with repetition\" approach. In the \"bootstrapd with weighting\" is defined as a different repetition using different a set of weights."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0599 ± 0.0333\n"
]
}
],
"source": [
"bootstrapped_results = [efficiency(np.random.choice(data, size=len(data), replace=True), predicate)\n",
" for _ in range(NBOOTSTRAP)]\n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Boostrap with weighting (Poissonian)\n",
"For each bootstrap compute the weighted efficiency. Weights are random numbers from a signal Poissonian with mean 1. The weights are independent between events inside the same bootstrap and between differenet bootstrap of the same event."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0601 ± 0.0339\n"
]
}
],
"source": [
"bootstrapped_results = []\n",
"for b in range(NBOOTSTRAP):\n",
" w = stats.poisson(1).rvs(len(data))\n",
" br = efficiency(data, predicate, weights=w)\n",
" bootstrapped_results.append(br)\n",
" \n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bootstrap with weighting ([Multinomial](https://en.wikipedia.org/wiki/Multinomial_distribution))\n",
"Similar but using a multinomial with NEVENTS repetition and probabilities (1/NEVETS, ..., 1/NEVENTS). This is more similar to the classical bootstrap with resampling, since for each bootstrap the sum of weights is equal to NEVENTS. This last statement is true for the Poissian case only on average. The weights are not independet between events inside the same bootstrap, since the sum is always equal to NEVENTS, so each weights is a anticollerate with the others (the anticorrelation is small since NEVENTS is large). The weights are independet between bootstrap for the same event."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0598 ± 0.0336\n"
]
}
],
"source": [
"bootstrapped_results = []\n",
"for b in range(NBOOTSTRAP):\n",
" w = stats.multinomial(NEVENTS, np.ones(NEVENTS) / float(NEVENTS)).rvs(size=1)\n",
" br = efficiency(data, predicate, weights=w)\n",
" bootstrapped_results.append(br)\n",
" \n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Vectorized version (20x faster)\n",
"Using vectorization, as suggested here (https://arxiv.org/pdf/1412.1735.pdf). Code is faster (as expected Python is not fast with for-loops). Time is dominated by the generation of random weights (98%). 20x faster than the non-vectorized version, 3x time faster than the bootstrap with repetition."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0605 ± 0.0338\n"
]
}
],
"source": [
"w = stats.multinomial(NEVENTS, np.ones(NEVENTS) / float(NEVENTS)).rvs(size=NBOOTSTRAP) # shape: NBOOTSTRAP x NEVENT\n",
"r = (predicate(data)).astype(np.float) # shape: NEVENTS\n",
"bootstrapped_results = np.matmul(w, r) / NEVENTS # shape: NBOOTSTRAP\n",
"\n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0599 ± 0.0343\n"
]
}
],
"source": [
"w = np.random.poisson(1, size=(NBOOTSTRAP, NEVENTS))\n",
"r = (predicate(data)).astype(np.float)\n",
"# note the different denominator since the sum of weights is not NEVENTS (true on average)\n",
"bootstrapped_results = np.sum(w * r, axis=1) / np.sum(w, axis=1) \n",
"\n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Second example (compute a function of data which is not a predicate)\n",
"Compute the mean of the events and its error. Using only the vectorized version"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"function = np.mean"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Expected result"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.5000 ± 0.0408\n"
]
}
],
"source": [
"true_mean = true_distribution.mean()\n",
"true_std = true_distribution.std()\n",
"print \"%.4f ± %.4f\" % (true_mean, true_std / np.sqrt(NEVENTS))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Result from the sample"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4846 ± 0.0419\n"
]
}
],
"source": [
"print \"%.4f ± %.4f\" % (function(data), stats.sem(data)) # sem is standard error of the mean (Bessel corrected)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Classical boostrap (resample with repetition)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4845 ± 0.0415\n"
]
}
],
"source": [
"bootstrapped_results = [function(np.random.choice(data, size=len(data), replace=True))\n",
" for _ in range(NBOOTSTRAP)]\n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Boostrap with weighting (Poissonian)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4852 ± 0.0417\n"
]
}
],
"source": [
"w = np.random.poisson(1, size=(NBOOTSTRAP, NEVENTS))\n",
"# note the last correction since the sum of weights is no NEVENTS\n",
"bootstrapped_results = function(data * w, axis=1) / w.sum(axis=1) * NEVENTS \n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bootstrap with weighting (Multinomial)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.4848 ± 0.0410\n"
]
}
],
"source": [
"w = stats.multinomial(NEVENTS, np.ones(NEVENTS) / float(NEVENTS)).rvs(size=NBOOTSTRAP)\n",
"bootstrapped_results = function(data * w, axis=1)\n",
"bmean = np.mean(bootstrapped_results)\n",
"bstd = np.std(bootstrapped_results)\n",
"\n",
"print \"%.4f ± %.4f\" % (bmean, bstd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Why poissonian weighting works\n",
"Classical bootrap (with resampling) is equivalent to a bootstraping with multinominal(N, 1/N, ..., 1/N) reweighting. Also poissonian(1) works, since each single element of the multinomial tends to a poisson when the NEVENTS x NBOOSTRAP (?) is large and also because the anticorrelation of weights inside the same bootstrap tends to 0 when NEVENTS is large.\n",
"\n",
"In the plots the multinomial distribution is from an histogram (one signle histogram for all the NEVENTS and NBOOTSTRAP) of all the weights, while the Poissonian is the pdf."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc5f472b850>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"w = stats.multinomial(NEVENTS, np.ones(NEVENTS) / float(NEVENTS)).rvs(size=NBOOTSTRAP)\n",
"range_x = np.arange(0, 10, 1)\n",
"plt.hist(w.flatten(), bins=range_x, normed=True, align='left', label='multinomial empirical')\n",
"plt.plot(range_x, stats.poisson(1).pmf(range_x), 'o', label='poisson(1)')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Conside much less events (5) (but many bootstraps). As expected poissonian doesn't work, while binomial does."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc5ebf73190>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"w = stats.multinomial(5, np.ones(5) / float(5)).rvs(size=NBOOTSTRAP)\n",
"range_x = np.arange(0, 10, 1)\n",
"plt.hist(w.flatten(), bins=range_x, normed=True, align='left', label='multinomial empirical')\n",
"plt.plot(range_x, stats.poisson(1).pmf(range_x), 'o', label='posson(1)')\n",
"plt.plot(range_x, stats.binom(5, 1/5.).pmf(range_x), 'o', label='binomial(5, 1/5)')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Anticorrelation\n",
"There is one caveat, the histogram before doesn't show the correlation.\n",
"In the multinomial case the sum of weights is equal to the number of events. For the other distribution this is true only on average. We know more: the sum of binomial is binomial, the sum of poisson is poissonian."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nsuoeq506XeWjuFu0aLHPY7lbtGiRmH7+/Pm89NJLLFy4kHbt2jFkyBB27dqV/Qo1ALUcRKTZq/rI\n7lNOOaVW033ta1/j8ccfB2DWrFm1nq6qHTt20KlTJ9q1a8fq1atZtGhRVvNpSGo5iEiDqc2tp/Wh\n6iO7r7rqKp555pkap5s+fToTJkzg1ltvpUuXLjz44INZLX/YsGHcfffdDBgwgN69e1NUVJTVfBqS\nHtktTYYe2d30NIZHdh+o8vrIbjO7wcxWmtlbZvaYmbU1sx5mttjM1pjZE2Z2UKzbJg6XxvEFKfP5\nYSx/x8zOziUmERHJXdbJwcy6AtcBg929P9ASGAX8HJjm7r2AbcDlcZLLgW3ufjQwLdbDzPrG6foB\nw4A7zaxltnGJiEjucr0g3Qr4gpm1AtoBG4AzgKfi+JnAyPh6RBwmjh9q4dL/COBxd//M3d8DSoET\nc4xLRBqJptp13ZTVxTbPOjm4+3rgNmAtISnsAJYA29298j6ucqBrfN0VWBenrYj1D08tTzPNPsxs\nkpkVm1nxpk2bsg1dRBpI27Zt2bJlixJEA3J3tmzZQtu2bXOaT9Z3K5lZJ8JZfw9gO/CfwDlpqlbu\nFZZhXKbyZKH7vcC9EC5I72fIItLAunXrRnl5OTqZa1ht27alW7duOc0jl1tZzwTec/dNAGb2W+Br\nQEczaxVbB92AD2L9cqA7UB67oQ4FtqaUV0qdRkSasNatW9OjR498hyFZyOWaw1qgyMzaxWsHQ4G3\ngT8CF8U6Y4Gn4+s5cZg4/mUPbc05wKh4N1MPoBfweg5xiYhIjrJuObj7YjN7ClgKVADLCF0+zwGP\nm9lPY9kDcZIHgEfMrJTQYhgV57PSzJ4kJJYK4Gp3351tXCIikrucviHt7lOAKVWK3yXN3Ubuvgu4\nOMN8bgJuyiUWERGpO3q2koiIJCg5iIhIgpKDiIgkKDmIiEiCkoOIiCQoOYiISIKSg4iIJCg5iIhI\ngpKDiIgkKDmIiEiCkoOIiCQoOYiISIKSg4iIJCg5iIhIgpKDiIgkKDmIiEiCkoOIiCQoOYiISIKS\ng4iIJCg5iIhIgpKDiIgkKDmIiEiCkoOIiCQoOYiISIKSg4iIJCg5iIhIgpKDiIgkKDmIiEiCkoOI\niCQoOYiISIKSg4iIJCg5iIhIQk7Jwcw6mtlTZrbazFaZ2d+b2WFmNtfM1sT/nWJdM7PpZlZqZiVm\n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\n4/0AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc5ebf95410>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum_multinomial = stats.multinomial(5, np.ones(5) / float(5)).rvs(size=NBOOTSTRAP).sum(axis=1)\n",
"sum_poisson = stats.poisson(1).rvs(size=(5, NBOOTSTRAP)).sum(axis=0) \n",
"sum_binomial = stats.binom(5, 1./5).rvs(size=(5, NBOOTSTRAP)).sum(axis=0) \n",
"bins = np.arange(0, 15)\n",
"plt.hist((sum_multinomial, sum_poisson, sum_binomial), bins=bins, label=['multinomial', 'poisson', 'binomial'])\n",
"plt.title('sum of weights for each bootstrap (5 events)')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute the covariance between different weights (multinomial) inside the same bootstrapped sample. Weights are negatively correlated since the sum is constant to NEVENTS. Using data with 5 events (tons of bootstrap). Poisson(1) weights are generated independetly, so correlation is 0."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAATAAAAD8CAYAAADwpviIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XtYVWX+9/H3zUEQkI2YaINZ6Zhp\nkwEe8iyVZWoglzpPZQIiRmn1C0hTtEYwzylloTVc2empyUnAQ/1+80xpSvM8I+OYVqB5IGUkSUBB\nNwpYwv38sTc7dDgKsljN93Vd+5K91mKvD7fsL99177XXVlprhBDCjJyMDiCEENdKCpgQwrSkgAkh\nTEsKmBDCtKSACSFMSwqYEMK0pIAJIUxLCpgQwrSkgAkhTMvluu/hYLppTvUfGrXV6AjN4uTkZnSE\nJquuvmR0hGZRytnoCM2y5x/vqhY9QHOep3dMadm+WpF0YEII07r+HZgQot3TVVVN3rbdtF9IARNC\nAPrnyiZvKwVMCNG+NKMDa0+kgAkh0FWXjY5wTaSACSFACpgQwqx0tRQwIYRZyRyYEMKs9E9NfxWy\nPZECJoRAV0sHJoQwKXkVUghhXlLAhBBmJYeQQgjTkkl8IYR5ySGkEMKs5BCylSWkpLN732G6WDz5\ndF0sAOfKyolbu4lTxaX4d+3Mq3MfxeLVEa01yzZ+Sub+I7i7dWDl01O4o7e/YdnHjRtOeMREAMor\nLrF61bvkHjvpWO/kpHjnvSUUF5cyNz7ZqJgAPDDubqaHjwegorySl1d/QG7uDwB4eXUkYWEkvXr5\no4HlS98hJ+e4gWkbHtstW5O5WF5JdXU1VVVVREUuNjIqD4wbRnj4BAAqKipZvfp9co/lA+Dl5UHC\noih69+ph+/1dupGcnO+NCysdWOuafE8Q08cPZf5rmx3LUrdkMmxAb2ImjyE1I5PUjEzmRTzIl/uP\nkvfjWT5b/xzfHM0nMXUbm1fNMSx7QUExs59cRllZOcOGDSAhYSbRMxMd6x9+ZBx5eQV4enY0LGON\ngoIzPDV7NWVl5Qwd9jvmJ0TwePRyAGLjHiUr6yCLFr6Ji4sz7u4dDE7b+Ng+NXs5589fMC5gLT8W\nFDNn9gr72N7JggUzmBX9EgBx8dPI2pPNooT19rE19uq6zbkeWFMopeKAWYAGsoEo4EZgE+AL7AfC\ntdY/tWQ/7faKrIPvuBVLJ48rlu3c+x1hwYEAhAUHsmPvIfvyQ4QFB6KUIqBvT6wXKykqsbZ55hrZ\n2ccoKysHICcnl65+nR3ruvp1ZviIALZvyzQq3hVysr93ZD2Ycxy/rrasHh7uBAT24ZPtfwPg8uUq\nLlyoMCxnjYbGtr3Jzs6tNbbf4+fnC4CHpzsBgX35ZPuXQM3YlhuWE2zngTX11hillD/wX8AgrfXv\nAGfgEWAV8IrWug9QCkS3NHejHZhS6nZgEuCPrZoWANu11t+1dOfNdfbcBfx8vQHw8/WmxP6XtrDE\nSvcbLI7tunfxprDE6tjWSCGhwWTt+dZxPy5uOimvb8LTw93AVHV7KGQke7JyAPD378q50gssejGK\nPr+9icNH/sWryR9RWdmiP5it6uqx1cBrr89Ha82WLbvYtnWXceGuEhI6mj32rP6/8eNcaRkvvDiL\nPn1u4vDhPF5J/tDQsdU/t/pnFrgAHZVSPwMewI/AvcA0+/r3gETgjZbspMEOTCk1H1vLp4C9wD/t\nX3+klFrQkh23Jl3HxxEoZfx1I4MG9iM0dDQpKX8GYMTIAEpLrRw5nGdssDoEBfUlJHQUG1LSAHB2\nduK2vj3ZkrGbGZFLqKy4RHjEeINT/uLqsQWImbWEyIgXiYtdw9TfjyUgsK+BCX8RNPB2QkJGsz7l\nY6BmbG8mI+MLIiMWU1F5iYjIh4wNWVXV9FsjtNangDXASWyF6zzwFXBOa13Twv2ArSlqkcY6sGjg\nDq31z7UXKqWSgYPAyrq+SSkVA8QA/HHxE8T8/v6W5gSgi48XRfbOqqjEiq/FC7B1XKfPnHdsd/qs\nFb/OnVpln001ZepYJoUFAxAfuwYfn04sXBRNXOwarPZOccCA2xg1Kojhw++ig5srnp4dSUx6ksTF\nb7Zp1slT7iF00igA5savw+LTiYSFkcTHrcNqvQhAUVEpxcWlHDp4AoBdX3xlWAFrytgCnDlzDoDS\nUiuZu/fRv39vvj5wpI2z3kfopDEAPBeXjMXHi4SFM4mPXXvl2BaVcuig7QWRXV/sc7wwYZTmvJWo\n9vPbLlVrnVprfWdsR223AueAzUBdvzwt/sSyxgpYNfAb4F9XLb/Rvq5O9h/G9gO14seq3Tu4H1t3\nHyBm8hi27j7AfUP6OZZ/8JcsJo4cwDdH8+nk4d7mh4/paTtIT9sBQLduXVix6lmSFv+R/JOnHdu8\nseFj3thg+yscFHQ706ZPaPPiBZCRvouM9F32rL6sWDGHpKSN5OcXOrYpKbFSWFhCz57dOHmykEGD\n+3HiREGbZ4Wmja27uxtOTory8krc3d0YcvedvP3WFgOy7iQ9bac9qy8rVz7DksTUq8b2PIVFZ+nZ\nszsnT55m0KD+5Bk0tg7NmMS/4vldt7HACa11MYBSKgMYDvgopVzsXVgPbNNRLdJYAYsFdiqljgH5\n9mU9gd8CT7d05w2JT97E3pwTlJZdZPSslTzzyFhiJo8hds2fSNu5jxtvsLBuru1weszAvmTuP8L9\nc9bS0c2V5U9PuZ7RGhU9KwyLxYt58yMB2sVL+vWJig7B2+LJ3HmPAVBVVU101FIAXln7EYuTHsfV\n1YWCU8UsW/qOkVGB+sfW19ebVS/bTrdxdnbis7/uISsr28iozIyehLfFi7nPRwC2rDNnJAGQvOZD\nEpc8gauLC6cKiln20ltGRm3tVyFPAkOVUh5ABXAfsA/YBUzFNi0VCWxr6Y6UrmsCqfYGSjkBQ7Ad\nrypsx67/1Fo37SeWD7a9buSDba+f/7QPtj237IEmP099Fn3W6L6UUknAw8Bl4AC2Uyr8+eU0igPA\ndK11i34xGn0VUmtdDWS1ZCdCiPattc8D01ovBq4+7DiOrRlqNe32RFYhRNvRVfVOabdrUsCEECAF\nTAhhVq19CNlWpIAJIdBVpnmt7QpSwIQQVP8kV6MQQpiUrpYOTAhhUnIIKYQwrSaelt7uSAETQkgH\nJoQwr2pzngYmBUwIAdXt5zqVzSIFTAghHZgQwrxkEl8IYVrV1cZfgv1aSAETQsghpBDCvKp+lg6s\nTma6ymnWO2FGR2gWM42t2a5wqtR/1t/2apkDE0KYlcyBCSFMS0sBE0KYlUziCyFMSw4hhRCm9fNl\nJ6MjXBMpYEII6cCEEOZVraWACSFMSibxhRCmVSUdmBDCrGQOTAhhWj9Xy6uQQgiTkkNIIYRpmfQz\nPaSACSHkNAohhInJIaQQwrR+kgImhDArmQO7jsaNG054xEQAyisusXrVu+QeO+lY7+SkeOe9JRQX\nlzI3PrnN8yWkpLN732G6WDz5dF0sAOfKyolbu4lTxaX4d+3Mq3MfxeLVEa01yzZ+Sub+I7i7dWDl\n01O4o7d/m2eu0dDYbtmazMXySqqrq6mqqiIqcrFhOWs8MG4Y4eETAKioqGT16vfJPZYPgJeXBwmL\noujdq4dtnJduJCfnewOz3s308PG2rOWVvLz6A3Jzf7Bn7UjCwkh69fJHA8uXvkNOznHDspr0gqzm\nKGAFBcXMfnIZZWXlDBs2gISEmUTPTHSsf/iRceTlFeDp2dGQfJPvCWL6+KHMf22zY1nqlkyGDehN\nzOQxpGZkkpqRybyIB/ly/1HyfjzLZ+uf45uj+SSmbmPzqjmG5IbGx/ap2cs5f/6CYfmu9mNBMXNm\nr6CsrJyhw+5kwYIZzIp+CYC4+Glk7clmUcJ6XFyccXd3MzRrQcEZnpq92p71d8xPiODx6OUAxMY9\nSlbWQRYtfNOetYOhWa9HAVO264jvA05prR9SSt0KbAJ8gf1AuNa6RR+pa4qz17Kzj1FWVg5ATk4u\nXf06O9Z19evM8BEBbN+WaVQ8Bt9xK5ZOHlcs27n3O8KCAwEICw5kx95D9uWHCAsORClFQN+eWC9W\nUlRibfPMNRoa2/YoOzvXkfdgzvf4+fkC4OHpTkBgXz7Z/iUAly9XceFCuWE5AXKyv6+V9Th+XW1j\n6+HhTkBgHz7Z/jegJmuFYTkBqlBNvjXDs8B3te6vAl7RWvcBSoHolua+5gKmlIpq6c6vRUhoMFl7\nvnXcj4ubTsrrm9Dt7N2oZ89dwM/XGwA/X29K7F1MYYmV7jdYHNt17+JNoYEFrLarx1YDr70+n3ff\nW8KksHuMC1aPkNDR7LHn9f+NH+dKy3jhxVm8934SCQujDO9qansoZCR7snIA8PfvyrnSCyx6MYp3\n3/sDCxZGGp61Susm35pCKdUDmAi8Zb+vgHuBNPsm7wEt/hSdlnRgSS3deXMFDexHaOhoUlL+DMCI\nkQGUllo5cjivraNcs7r+/23/t8a6emwBYmYtITLiReJi1zD192MJCOxrYMIrBQ28nZCQ0axP+RgA\nZ2cnbut7MxkZXxAZsZiKyktERD5kcEqboKC+hISOYkOK7blry9qTLRm7mRG5hMqKS4RHjDc040/N\nuDXRq8DzQE1n0QU4p7W+bL//A9Diyd8G58CUUt/Wtwro1sD3xQAxALfefDd+fn2aHWzK1LFMCgsG\nID52DT4+nVi4KJq42DVY7d3MgAG3MWpUEMOH30UHN1c8PTuSmPQkiYvfbPb+WlsXHy+KSqz4+XpT\nVGLF1+IF2Dqu02fOO7Y7fdaKX+dObZqtKWMLcObMOQBKS61k7t5H//69+frAkTbNast7H6GTxgDw\nXFwyFh8vEhbOJD52LVbrRQCKikopLirl0EHbRPiuL/Y5XpxoS5On3EPopFEAzI1fh8WnEwkLI4mP\nW3dl1uJSDh08Yc/6leEFrDlzYLWf33apWuvUWusfAoq01l8ppYJrFtfxUC1+7bOxSfxuwDhsx6u1\nKeDv9X2T/YdJBRg6JPyaQqan7SA9bYctRLcurFj1LEmL/0j+ydOObd7Y8DFvbLD9BQ4Kup1p0ye0\ni+IFcO/gfmzdfYCYyWPYuvsA9w3p51j+wV+ymDhyAN8czaeTh7vjULOtNGVs3d3dcHJSlJdX4u7u\nxpC77+Ttt7a0ac5f8u4kPW2nPa8vK1c+w5LEVPLzCx3blJScp7DoLD17dufkydMMGtSfvBMFbZ41\nI30XGem7HFlXrJhDUtLGq7JaKSwsoWfPbpw8Wcigwf04YUDW2qqaUUtqP7/rMQIIVUpNANwBb2wd\nmY9SysXehfUAWvxDN1bAPgW8tNZfX71CKbW7pTtvquhZYVgsXsybHwnQbl7SrxGfvIm9OScoLbvI\n6FkreeaRscRMHkPsmj+RtnMfN95gYd3caQCMGdiXzP1HuH/OWjq6ubL86SmGZq9vbH19vVn1su2U\nEGdnJz776x6ysrKNjArAzOhJeFu8mPt8BGDLO3OGbTYjec2HJC55AlcXF04VFLPspbeMjEpUdAje\nFk/mznsMgKqqaqKjlgLwytqPWJz0OK6uLhScKmbZ0neMjNqqr0JqrROABAB7BzZXa/2YUmozMBXb\nK5GRwLaW7kvpJk7KXatr7cCMIJ/Mff3IJ3NfX3/PeqtFE6krB9zX5Ofpgm93NnlftQrYQ0qpXvxy\nGsUBYLrW+lJzs9Zmrv8lIcR1cb1OZNVa7wZ2278+DgxpzceXAiaE4Cfa12lITSUFTAghbyUSQphX\nU09QbW+kgAkhmnUaRXsiBUwIIQVMCGFeP2uZxBdCmJR0YEII05JJfCGEaUkHJoQwrWrpwIQQZiUd\nmBDCtORVSCGEaUkHJoQwLXkVUghhWtXSgQkhzEo6sHo4ORn74aLNYaYrnIK5riBrtrGtrm7R562a\njkziCyFMq1oKmBDCrGQOTAhhWjIHJoQwLenAhBCmJe+FFEKY1mUpYEIIs5JDSCGEackhpBDCtKQD\nE0KYlhQwIYRpVZuzfkkBE0LAZeStREIIkzLpHL4UMCGEzIEJIUzMnOVLCpgQAunArqsHxt3N9PDx\nAFSUV/Ly6g/Izf0BAC+vjiQsjKRXL380sHzpO+TkHDcwLYwbN5zwiIkAlFdcYvWqd8k9dhKALVuT\nuVheSXV1NVVVVURFLm7zfAkp6ezed5guFk8+XRcLwLmycuLWbuJUcSn+XTvz6txHsXh1RGvNso2f\nkrn/CO5uHVj59BTu6O3f5plrtPexrW3cgyMIjwgBoKKiktUr3+aYPSuAk5Pi3feXUVxUwnPxa4yK\nCWDSKXyTFLCCgjM8NXs1ZWXlDB32O+YnRPB49HIAYuMeJSvrIIsWvomLizPu7h0MTgsFBcXMfnIZ\nZWXlDBs2gISEmUTPTHSsf2r2cs6fv2BYvsn3BDF9/FDmv7bZsSx1SybDBvQmZvIYUjMySc3IZF7E\ng3y5/yh5P57ls/XP8c3RfBJTt7F51RzDsrf3sa2toKCI2U+8RFnZRYYNv4sFC2cRHfUHx/qHHxlP\n3olTeHp2NDClTWt3YEqpB4F1gDPwltZ6ZavuwM7pejxoa8vJ/p6ysnIADuYcx69rZwA8PNwJCOzD\nJ9v/BsDly1VcuFBhWM4a2dnHHHlzcnLp6tfZ4ERXGnzHrVg6eVyxbOfe7wgLDgQgLDiQHXsP2Zcf\nIiw4EKUUAX17Yr1YSVGJtc0z12jvY1tb9rfHKCu7CEBOdi5+fr6OdX5+vowYGcC2bbuMincF3Yxb\nY5RSzsB6YDzQH3hUKdX/OsRuvANTSt0O+AP/0FpfqLX8Qa31/7keoRryUMhI9mTlAODv35VzpRdY\n9GIUfX57E4eP/ItXkz+isrL9XM88JDSYrD3fOu5r4LXX56O1ZsuWXWzb2j5+gc+eu4CfrzcAfr7e\nlNi7mMISK91vsDi2697Fm8ISq2NbI5llbAFCJwWz5+/fOO7HxYeT8tpHeHi4G5jqF608AzYEyNVa\nHwdQSm0CJgGHWnc3jXRgSqn/ArYBzwA5SqlJtVYvb+0wjQkK6ktI6Cg2pKQB4OzsxG19e7IlYzcz\nIpdQWXGJ8IjxbR2rXkED+xEaOpqUlD87lsXMWkJkxIvExa5h6u/HEhDY18CEjavr/CClVNsHuYqZ\nxnbgwP6EhAaTkvIRACNGBlJSauXw4RMGJ/tFa3Zg2Bqe/Fr3f7Ava3WNdWCPAwO11heUUrcAaUqp\nW7TW64B6f4uVUjFADECvW0fQze/2ZgebPOUeQieNAmBu/DosPp1IWBhJfNw6rFZbW15UVEpxcSmH\nDtp+EXZ98ZVhBWzK1LFMCgsGID52DT4+nVi4KJq42DVYa83JnDlzDoDSUiuZu/fRv39vvj5wxIjI\nV+ji40WRvbMqKrHia/ECbB3X6TPnHdudPmvFr3OnNs1mprGd+vv7mRR2DwBxz662ZX3hcWKfXeXI\netddtzF6VBDDhwfg5uaKp2dHEpfMIfEPG9o0a23N6cBqP7/tUrXWqbU3aeEumqyxAuZcc9iotc5T\nSgVjK2I300ABs/8wqQDDh866puAZ6bvISLcdAnTr5suKFXNIStpIfn6hY5uSEiuFhSX07NmNkycL\nGTS4HydOFFzL7losPW0H6Wk77Hm7sGLVsyQt/iP5J087tnF3d8PJSVFeXom7uxtD7r6Tt9/aYkje\nq907uB9bdx8gZvIYtu4+wH1D+jmWf/CXLCaOHMA3R/Pp5OHe5oePZhrbtM2fk7b5c0fWlavjSFy8\n4YqsG9b/mQ3rbZ1jUFA/Hps+0dDiZdP0rrr287sePwA31brfA7guT8zGCthppVSA1vprAHsn9hDw\nNnDn9QhUl6joELwtnsyd9xgAVVXVREctBeCVtR+xOOlxXF1dKDhVzLKl77RVrHpFzwrDYvFi3vxI\nAMdL+r6+3qx62XbagrOzE5/9dQ9ZWdltni8+eRN7c05QWnaR0bNW8swjY4mZPIbYNX8ibec+brzB\nwrq50wAYM7AvmfuPcP+ctXR0c2X501PaPG9t7X1sa4ueNRmLpRPPz48CoOpyNTMiXzA0U/1adVrg\nn0AfpdStwCngEWBaa+6ghtINvAlKKdUDuKy1Pl3HuhFa6//X2A6utQMzQnX1JaMjNIt8sO31o3WV\n0RGa5R///FOLKtAtN/dq8vM071/HG92XUmoC8Cq20yje1lova0G8ejXYgWmtf2hgXaPFSwhhEq38\nuozW+n+A/2ndR/13pjiRVQhxvZnilNB/IwVMCIFq7RasjUgBE0KglHRgQgjTkgImhDCp9vDuimsh\nBUwIAXIIKYQwKyWHkEIIs1JOzkZHuCZSwIQQ8iqkEMK85BBSCGFa0oEJIUzLdhVo85ECJoSQDkwI\nYV5OTq5GR7gmUsCEENKBCSHMS+bA6mGmq5ya7T/RTFc5NdPVY8FcY9sazPa7X0M6MCEETnIIKYQw\nK+nAhBCm5eTUwegI10QKmBBC3swthDAvJzmEFEKYlcyBCSFMSwqYEMK0nJ3cjI5wTaSACSFkEl8I\nYV5KmbMUmDO1EKJVyRyYEMK0pAMTQpiWnAcmhDAtJ2d3oyNcEylgQgiZAxNCmJfMgQkhTEs5mbMU\nmCL1uHHDCY+YCEB5xSVWr3qX3GMnAdiyNZmL5ZVUV1dTVVVFVORiI6MC8MC4YYSHTwCgoqKS1avf\nJ/dYPgBeXh4kLIqid68eaK1ZtnQjOTnfG5a1vY9tQko6u/cdpovFk0/XxQJwrqycuLWbOFVcin/X\nzrw691EsXh1t47nxUzL3H8HdrQMrn57CHb392zxzjYbGFsDJSfHOe0soLi5lbnyyUTEB6cCuq4KC\nYmY/uYyysnKGDRtAQsJMomcmOtY/NXs5589fMC7gVX4sKGbO7BWUlZUzdNidLFgwg1nRLwEQFz+N\nrD3ZLEpYj4uLM+7uxr6Fo72P7eR7gpg+fijzX9vsWJa6JZNhA3oTM3kMqRmZpGZkMi/iQb7cf5S8\nH8/y2frn+OZoPomp29i8ao5h2Rsb24cfGUdeXgGenh0Ny1hDtfEkvlJqLvAy0FVrfUYppYB1wASg\nHJihtd7f2OM0eh1ZpdQQpdRg+9f9lVLxSqkJLYvfPNnZxygrKwcgJyeXrn6d23L3zZadnevIezDn\ne/z8fAHw8HQnILAvn2z/EoDLl6u4cKHcsJzQ/sd28B23YunkccWynXu/Iyw4EICw4EB27D1kX36I\nsOBAlFIE9O2J9WIlRSXWNs9co6Gx7erXmeEjAti+LdOoeFdQyqXJt5bvS90E3A+crLV4PNDHfosB\n3mjKYzWYRim12P7ALkqpz4G7gd3AAqVUoNZ6WbPTt1BIaDBZe7513NfAa6/PR2vNli272LZ1V1tH\nalBI6Gj22PP6/8aPc6VlvPDiLPr0uYnDh/N4JflDKit/MjiljVnG9uy5C/j5egPg5+tNib1DLCyx\n0v0Gi2O77l28KSyxOrY10tVjGxc3nZTXN+Hp0U5OX2jbObBXgOeBbbWWTQLe11prIEsp5aOUulFr\n/WNDD9RY6qlAAOAGnAZ6aK2tSqmXgX8AbVrAggb2IzR0NDExSx3LYmYt4cyZc3Tu7M1rKfP5178K\n+PrAkbaMVa+ggbcTEjKaJ2Jsw+Ts7MRtfW9m7doPOHTwOLHx04iIfIjUP2YYnNR8Y1sXrf99me3I\nxFhXj+2IkQGUllo5cjiPoKDbDU5n10anUSilQoFTWutvrvq/8Qfya93/wb6sRQXssta6CihXSn2v\ntbYCaK0rlFLVDYSMwdYGcuvNd+Pn16eR3fy7KVPHMiksGID42DX4+HRi4aJo4mLXYK01J3PmzDkA\nSkutZO7eR//+vQ15kk2Zeh+hk8YA8FxcMhYfLxIWziQ+di1W60UAiopKKS4q5dDB4wDs+mKfY5K3\nbbOaa2yv1sXHiyJ7Z1VUYsXX4gXYOq7TZ847tjt91opf505tmq0pYztgwG2MGhXE8OF30cHNFU/P\njiQmPUni4jfbNGttzXkVsvbz2y5Va51aa/0OoHsd37oIWAg8UNfD1rGsjj9JV2os9U9KKQ+tdTkw\nsFZAC1BvAbP/MKkAQ4eENxqiLulpO0hP2wFAt25dWLHqWZIW/5H8k6cd27i7u+HkpCgvr8Td3Y0h\nd9/J229tuZbdtVh62k7S03ba8/qycuUzLElMJT+/0LFNScl5CovO0rNnd06ePM2gQf3JO1FgQFZz\nje3V7h3cj627DxAzeQxbdx/gviH9HMs/+EsWE0cO4Juj+XTycG/zw8emjO0bGz7mjQ0fAxAUdDvT\npk8wtHgB0Iy5rdrP73rWj61zF0rdCdwK1HRfPYD9Sqkh2Dqum2pt3gNo9MnRWOrRWutL9lC1C5Yr\nENnYg7eW6FlhWCxezJtv22XNS/q+vt6setn20rqzsxOf/XUPWVnZbRWrXjOjJ+Ft8WLu8xGALe/M\nGUkAJK/5kMQlT+Dq4sKpgmKWvfSWkVHb/djGJ29ib84JSssuMnrWSp55ZCwxk8cQu+ZPpO3cx403\nWFg3dxoAYwb2JXP/Ee6fs5aObq4sf3pKm+etrb6xbY+0y/V/NVxrnQ341dxXSuUBg+yvQm4HnlZK\nbcI2136+sfkvAKXrmjhoRdfagRnBbG+nsB3dm4N8Mvf1lbX3f7dosm/Cw582+Xn6P39+qFUmFq8q\nYApIAR7EdhpFlNZ6X2OPYYrzwIQQ15c24IqsWutban2tgaea+xhSwIQQhhSw1iAFTAgBUsCEEGal\nnRp9U067JAVMCEGVq6vREa6JFDAhhHRgQgjzkgImhDCtailgQgiz0s5SwIQQJlXlKgVMCGFS2sn4\nyw5dCylgQggpYEII89LmPBFfCpgQQjowIYSZmXMOXwqYEALbJUpNSAqYEEI6sPqY6SqnZvt04urq\n9vFxbE1huiucmuwKsi2lpIAJIcxKOZnmyu9XkAImhJAOTAhhXia9IKsUMCEEOLvIIaQQwqRMejUd\nKWBCCClgQggTkwImhDAtKWBCCNNylUl8IYRZSQcmhDAtKWBCCNMy6Wd6SAETQoBJr2coBUwIIR2Y\nEMLEXE1aCUwaWwjRmqQDu44eGDeM8PAJAFRUVLJ69fvkHssHwMvLg4RFUfTu1QOtNcuWbiQn53sj\n4/LAuLuZHj4egIrySl5e/QHX43bwAAAKSElEQVS5uT8A4OXVkYSFkfTq5Y8Gli99h5yc44ZlHffg\nCMIjQmxZKypZvfJtjh076Vjv5KR49/1lFBeV8Fz8GqNiOowbN5zwiIkAlFdcYvWqd8m9Ku877y2h\nuLiUufHJbZ4vISWd3fsO08XiyafrYgE4V1ZO3NpNnCouxb9rZ16d+ygWr46239eNn5K5/wjubh1Y\n+fQU7ujt3+aZQQrYdfVjQTFzZq+grKycocPuZMGCGcyKfgmAuPhpZO3JZlHCelxcnHF3dzM4LRQU\nnOGp2avteX/H/IQIHo9eDkBs3KNkZR1k0cI37Xk7GJy1iNlPvERZ2UWGDb+LBQtnER31B8f6hx8Z\nT96JU3h6djQw5S8KCoqZ/eQyysrKGTZsAAkJM4memehY//Aj48jLKzAs7+R7gpg+fijzX9vsWJa6\nJZNhA3oTM3kMqRmZpGZkMi/iQb7cf5S8H8/y2frn+OZoPomp29i8ao4hudvqNAqlVADwJuAOXAbm\naK33KqUUsA6YAJQDM7TW+xt7PFPU3ezsXMrKygE4mPM9fn6+AHh4uhMQ2JdPtn8JwOXLVVy4UG5Y\nzho52d/Xynscv66dAfDwcCcgsA+fbP8bUJO3wrCcANnfHqOs7CIAOdm5jrEF8PPzZcTIALZt22VU\nvH+TnX3MMbY5Obl09evsWNfVrzPDRwSwfVumUfEYfMetWDp5XLFs597vCAsOBCAsOJAdew/Zlx8i\nLDgQpRQBfXtivVhJUYm1zTMDOKum31poNZCktQ4A/mC/DzAe6GO/xQBvNOXBmt2BKaXe11pHNPf7\nWktI6Gj27PkWAP/f+HGutIwXXpxFnz43cfhwHq8kf0hlZfu5VvxDISPZk5UDgL9/V86VXmDRi1H0\n+e1NHD7yL15N/qjd5A2dFMyev3/juB8XH07Kax/h4eFuYKr6hYQGk2X/XQCIi5tOyuub8Gxnec+e\nu4CfrzcAfr7elJy/AEBhiZXuN1gc23Xv4k1hidWxbVtqw0NIDdT8gBagwP71JOB9rbUGspRSPkqp\nG7XWPzb0YA3GVkptv+r2CTC55n4Lf5BmCxp4OyEho1mf8jEAzs5O3Nb3ZjIyviAyYjEVlZeIiHyo\nrWPVKyioLyGho9iQkgbU5O3JlozdzIhcQmXFJcIjxhuc0mbgwP6EhAaTkvIRACNGBlJSauXw4RMG\nJ6tb0MB+hIaOJiXlzwCMGBlAaamVI4fzjA3WDLqOtx/ajqTanpuLavKthWKBl5VS+cAaIMG+3B/I\nr7XdD/ZlDWqsA+sBHALewlY5FTAIWNvQNymlYrC1gdx6yzC6+d3WWI5/M2XqfYROGgPAc3HJWHy8\nSFg4k/jYtVittkOeoqJSiotKOXTQNgm+64t9jgnetjZ5yj2EThoFwNz4dVh8OpGwMJL4uHVX5i0u\n5dDBE/a8XxlSwKb+/n4mhd0DQNyzq/Hx6cTCFx4n9tlVWO3dwV133cboUUEMHx6Am5srnp4dSVwy\nh8Q/bGjzvFOmjmVSWDAA8bFrbHkXRRMXu8aRd8CA2xg1Kojhw++iQ03epCdJXPxmm+e9WhcfL4rs\nnVVRiRVfixdg67hOnznv2O70WSt+nTsZkrE5HVjt57ddqtY6tdb6HUD3Or51EXAfEKe1TldK/S9g\nIzAWW225WqPvMG+sgA0CnrXveJ7W+mulVIXWusFJBvsPkwow7O4Z1/Q29/S0naSn7QSgWzdfVq58\nhiWJqeTnFzq2KSk5T2HRWXr27M7Jk6cZNKg/eScK6nvI6yojfRcZ6bsceVesmENS0sar8lopLCyh\nZ89unDxZyKDB/ThhQN60zZ+Ttvlze9YurFwdR+LiDeSfPO3YZsP6P7Nhva27CQrqx2PTJxpSvADS\n03aQnrbDkXfFqmdJWvzHK/K+seFj3tjwsT3v7UybPqFdFC+Aewf3Y+vuA8RMHsPW3Qe4b0g/x/IP\n/pLFxJED+OZoPp083A05fITmzW3Vfn7Xs35sfeuUUu9jqykAm7E1R2DruG6qtWkPfjm8rFeDBUxr\nXQ28opTabP+3sLHvuR5mRk/C2+LF3OdtU29VVVXMnJEEQPKaD0lc8gSuLi6cKihm2UtvNfRQbSIq\nOgRviydz5z0GQFVVNdFRSwF4Ze1HLE56HFdXFwpOFbNs6TtGRiV61mQslk48Pz8KgKrL1cyIfMHQ\nTA2JnhWGxeLFvPmRgO13ISpyscGpfhGfvIm9OScoLbvI6FkreeaRscRMHkPsmj+RtnMfN95gYd3c\naQCMGdiXzP1HuH/OWjq6ubL86SmG5W7DObACYAywG7gXOGZfvh14Wim1CbgbON/Y/BeA0nUdiNe3\nsVITgRFa64VN/Z5r7cCMYLYPtq2qMv4V16Yy0wccgwk/2PaOKS2anFr8xYEmP0+T7g285n0ppUZi\nO13CBajEdhrFV/bTKFKAB7GdRhGltd7X2OM16xmrtf5v4L+bnVoI0a51aPnkfJNorf8vMLCO5Rp4\nqrmPZ66WQwhxXbTC+V2GkAImhMDZpNfTkQImhJD3QgohzEs6MCGEaUkHJoQwLVeTzuJLARNCyCGk\nEMK85BBSCGFa0oEJIUxLCpgQwrTkEFIIYVquLuasYFLAhBDSgQkhzEvmwIQQpuUkBUwIYVZyCCmE\nMK0OJp3Eb9YlpdsTpVRM7U9Cac/MlBXMlddMWcF8eds7c5Zdm5jGN2k3zJQVzJXXTFnBfHnbNTMX\nMCHEfzgpYEII0zJzATPTPIKZsoK58popK5gvb7tm2kl8IYQwcwcmhPgPZ7oCppR6UCl1RCmVq5Ra\nYHSehiil3lZKFSmlcozO0hil1E1KqV1Kqe+UUgeVUs8anakhSil3pdRepdQ39rxJRmdqjFLKWSl1\nQCn1qdFZfi1MVcCU7fPp1wPjgf7Ao0qp/samatC72D4q3QwuA89prfsBQ4Gn2vnYXgLu1VrfBQQA\nDyqlhhqcqTHPAt8ZHeLXxFQFDBgC5Gqtj2utfwI2AZMMzlQvrfWXQInROZpCa/2j1nq//esybE80\nf2NT1U/bXLDfdbXf2u2ErlKqBzAReMvoLL8mZitg/kB+rfs/0I6fZGallLoFCAT+YWyShtkPyb4G\nioDPtdbtOe+rwPNAtdFBfk3MVsDqest8u/2ra0ZKKS8gHYjVWluNztMQrXWV1joA6AEMUUr9zuhM\ndVFKPQQUaa2/MjrLr43ZCtgPwE217vcACgzK8qujlHLFVrw+1FpnGJ2nqbTW54DdtN/5xhFAqFIq\nD9u0x71KqQ+MjfTrYLYC9k+gj1LqVqVUB+ARYLvBmX4VlFIK2Ah8p7VONjpPY5RSXZVSPvavOwJj\ngcPGpqqb1jpBa91Da30Ltt/ZL7TW0w2O9atgqgKmtb4MPA38Fdsk88da64PGpqqfUuojYA/QVyn1\ng1Iq2uhMDRgBhGPrDr623yYYHaoBNwK7lFLfYvvD9rnWWk5P+A8jZ+ILIUzLVB2YEELUJgVMCGFa\nUsCEEKYlBUwIYVpSwIQQpiUFTAhhWlLAhBCmJQVMCGFa/x8VvXnOGVl4bgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc5eba0b410>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def correlation_from_covariance(covariance):\n",
" v = np.sqrt(np.diag(covariance))\n",
" outer_v = np.outer(v, v)\n",
" correlation = covariance / outer_v\n",
" correlation[covariance == 0] = 0\n",
" return correlation\n",
"\n",
"w = stats.multinomial(5, np.ones(5) / float(5)).rvs(size=NBOOTSTRAP)\n",
"cov_multinomial = np.cov(w.T)\n",
"corr_multinomial = correlation_from_covariance(cov_multinomial)\n",
"sns.heatmap(corr_multinomial * 100, square=True, annot=True, vmax=100, vmin=-100, center=0, fmt=\".0f\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Repeat with more events (data with 20 entries), anticorrelation is much smaller (should be 1 / (NEVENTS - 1)). So using uncorrelated Poissonian is ok."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc5ebd64cd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"w = stats.multinomial(20, np.ones(20) / float(20)).rvs(size=NBOOTSTRAP)\n",
"cov_multinomial = np.cov(w.T)\n",
"corr_multinomial = correlation_from_covariance(cov_multinomial)\n",
"fig, ax = plt.subplots(figsize=(10, 8))\n",
"sns.heatmap(corr_multinomial * 100, square=True, annot=True, vmax=100, vmin=-100, center=0, fmt=\".0f\", ax=ax)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python2",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment