Skip to content

Instantly share code, notes, and snippets.

@pilipolio
Last active December 16, 2015 13:28
Show Gist options
  • Save pilipolio/5441354 to your computer and use it in GitHub Desktop.
Save pilipolio/5441354 to your computer and use it in GitHub Desktop.
Illustrating the Chance to beat probability and its empirical calculation
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "C2B_Estimation"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"\"Chance to beat\" or C2B empirical estimation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We define two and independent random variables $A$ and $B$ and their probability density, respectively $f_A :\\mathbb{R} \\mapsto [0;1]$ and $f_B: \\mathbb{R} \\mapsto [0;1]$. The \"chance to beat\" probability, or $C2B$, is the probability that a sample from $B$ is greater than a sample from $A$, i.e.\n",
"\n",
"\n",
"<center>$C2B(A,B) = \\Pr[A > B]$.</center> "
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"First example with known gaussian variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's draw the two pdfs fron an example where $A\\sim\\mathcal{N}(\\mu_A,\\sigma_A)$ and $B\\sim\\mathcal{N}(\\mu_B,\\sigma_B)$ with $\\mu_A = 3$, $\\mu_B = 2$ and $\\sigma_A = 0.4$ and $\\sigma_B = 0.6$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mu_a = 3; mu_b = 2\n",
"sigma_a = .4\n",
"sigma_b = .6\n",
"n = 100\n",
"xs = np.linspace(0, 6, num=n)\n",
"from scipy.stats import distributions\n",
"from scipy.stats.distributions import norm\n",
"\n",
"pdf_a_xs = norm.pdf(xs, loc = mu_a, scale=sigma_a)\n",
"pdf_b_xs = norm.pdf(xs, loc = mu_b, scale=sigma_b)\n",
"\n",
"plt.plot(xs, pdf_a_xs, xs, pdf_b_xs, lw=3, alpha=.75);\n",
"plt.figsize(12,6)\n",
"plt.legend(['$f_a$', '$f_b$']);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x33bf890>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For a fixed value $a$ drawn from $A$ with a probability $f_A(a)$, the chance to beat a sample $b$ from $B$ is $ \\Pr[b \\le a] = \\Pr[B \\le a] = F_B(a) $ where $F_B$ is the cumulative distribution function of $B$. Let's illustrate this with arbitrary value for $a$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Initialize figure and maine axe\n",
"f, ax = plt.subplots(1, 1)\n",
"f.set_size_inches(12,6)\n",
"ax.plot(xs, pdf_a_xs, xs, pdf_b_xs, lw=3, alpha=.75);\n",
"plt.legend(['$f_a$', '$f_b$'], prop={'size':20});\n",
"\n",
"# Estimate pdf of A and B at a.\n",
"a = 2.75\n",
"f_A_a = norm.pdf(a, loc = mu_a, scale=sigma_a)\n",
"f_B_a = norm.pdf(a, loc = mu_b, scale=sigma_b)\n",
"\n",
"ax.vlines(a, 0, f_A_a, color='blue', linestyles='dashed');\n",
"ax.hlines(f_A_a, 0, a, color='blue', linestyles='dashed');\n",
"ax.fill_between(xs[xs<=a], y1=0, y2=pdf_b_xs[xs<=a], color='green', alpha=.25);\n",
"ax.text(a/2, f_A_a, s='$f_A(a)$', color='blue', size=20, ha='center',va='bottom');\n",
"ax.text(a, 0, s='$a$', color='blue', size=20, ha='center',va='top');\n",
"ax.text(mu_b, norm.pdf(mu_b, loc = mu_b, scale=sigma_b)/2, s='$F_B(a)$',color='green', size=20, ha='center',va='bottom');"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nEAHn/wOvCuHp2I4bMAAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x6239910>"
]
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The probability $\\\\Pr[A > B] $ is the integral of $ F_B(a) $ for every possible value of $ a \\in \\mathrm{R} $ with a pointwise density $f_A(a)$ :\n",
"\n",
"<center> $$C2B(A,B) = \\Pr[A > B] = \\int\\limits_{a \\in \\mathrm{R}} F_B(a) f_A(a) da$$ </center>\n",
"\n",
"Empirically (and for the purpose of plotting), we have defined a grid $ (x_i)_{i=1, \\cdots,n} $ of $ n = 100 $ equi-distant points between $ x_1 = 0 $ and $ x_n = 6 $. The value $ F_B(x_i) $ of the cumulative distribution of $B$ at a point $x_i$ can be numerically approximated by the cumulated sums of $ f_B(x_j) $ from $j$ up to $i$ :\n",
"\n",
"<center> $$F_B(x_i) \\approx \\sum \\limits_{j=1}^{i} f_B(x_j) \\frac{x_i - x_1}{i - 1} $$ </center>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"approx_FB_xs = np.cumsum(pdf_b_xs * (xs - xs[0]) / np.arange(0, n))\n",
"\n",
"plt.plot(xs, norm.cdf(xs, loc = mu_b, scale=sigma_b), 'k-')\n",
"plt.figsize(12, 6)\n",
"plt.bar(xs, approx_FB_xs, 1.0/len(xs), color='black', alpha=.1)\n",
"plt.legend(['$F_B(a)$', r'$\\approx F_B(a)$'],'upper left',prop={'size':20});"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:1: RuntimeWarning: invalid value encountered in divide\n"
]
},
{
"output_type": "display_data",
"png": "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\nAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x3329ed0>"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And then apply the same scheme to approximate $C2B(A,B)$ :\n",
"<center> $$ C2B(A,B) \\approx \\sum \\limits_{i=1}^{n} F_B(x_i) f_A(x_i) \\approx \\sum \\limits_{i=1}^{n} \\Big( \\sum \\limits_{j=1}^{i} f_B(x_i) \\frac{x_i - x_1}{i - 1} \\Big) f_A(x_i) \\frac{x_n - x_1}{n - 1} $$</center> "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"C2B = np.sum(approx_FB_xs * pdf_a_xs * (xs[-1] - xs[0]) / len(xs))\n",
"print 'The C2B is {:.3f}'.format(C2B)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The C2B is 0.905\n"
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Approximations of Normal and beta cumulative distribution functions are available in the [`scipy.stats.distributions`](http://docs.scipy.org/doc/scipy/reference/stats.htm) package. The normal distribution implementation is based on approximations of the [error functions](http://en.wikipedia.org/wiki/Error_function) through [continued-fraction expansion](http://ab-initio.mit.edu/wiki/index.php/Faddeeva_Package#Algorithms). We also rely on the [`scipy.integrate`](http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html) package to integrate the $F_B(x) f_A(x)$ product over $\\mathbb{R}$. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from scipy.stats.distributions import norm, beta\n",
"from scipy.integrate import quad, trapz\n",
"\n",
"def calculate_C2B_quad(mu_a, sigma_a, mu_b, sigma_b):\n",
" norm_a = norm(loc=mu_a, scale=sigma_a)\n",
" norm_b = norm(loc=mu_b, scale=sigma_a)\n",
" start = 0\n",
" stop = 6\n",
" return quad(lambda x : norm_a.pdf(x) * norm_b.cdf(x), start, stop)[0]\n",
"\n",
"print calculate_C2B_quad(mu_a, sigma_a, mu_b, sigma_b)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0.961450064128\n"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def calculate_C2B_trapz(mu_a, sigma_a, mu_b, sigma_b):\n",
" norm_a = norm(loc=mu_a, scale=sigma_a)\n",
" norm_b = norm(loc=mu_b, scale=sigma_a)\n",
" start = 0\n",
" stop = 6\n",
" n = 100\n",
" x_n = np.linspace(start, stop, num = n)\n",
" return trapz(x=x_n, y=norm_a.pdf(x_n) * norm_b.cdf(x_n), dx=None)\n",
"\n",
"print calculate_C2B_trapz(mu_a, sigma_a, mu_b, sigma_b)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0.961450064128\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Samples from two unknown discrete distributions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In a more realistic context, we observe finite samples $n_a$ and $n_b$ of unknown variables $A$ and $B$. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from scipy.stats import distributions\n",
"n_a = 20\n",
"n_b = 15\n",
"a_samples = np.random.binomial(n=20,p=.7,size=n_a)\n",
"b_samples = np.random.binomial(n=30,p=.4,size=n_b)\n",
"#plt.plot(a_samples, np.repeat(0, n_a), 'xb', b_samples, np.repeat(0, n_b), 'og')\n",
"#plt.plot(np.arange(n_a), a_samples, 'xb', np.arange(n_b), b_samples, 'og')\n",
"plt.plot(a_samples, 'ob', b_samples, 'og', alpha=0.9)\n",
"plt.ylim([0, np.max(np.concatenate((a_samples, b_samples))) + 5])\n",
"plt.legend([r'$(A_i)_{i=1,\\ldots,n_A}$', r'$(B_i)_{i=1,\\ldots,n_B}$'], prop={'size':20});"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The $C2B(A,B)$ or $Pr[A > B]$ can actually be computed in a combinatorial way :\n",
"\n",
"\"For all every sample $a$ drawn from $A$, enumerate all the smaller or equal samples from $B$.\"\n",
"\"The probability $Pr[A > B]$ is the sum of those case where $A$ was actually greater than $B$ divided by the number of all possibilities\" "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"C2B = np.sum([np.sum(b_samples<=a) for a in a_samples], dtype='float') / (n_a * n_b)\n",
"print 'With the combinatorial method, we found that the C2B is {:.3f}'.format(C2B)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"With the combinatorial method, we found that the C2B is 0.773\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But we can apply the same reasoning as before, with $A$ and $B$ probability measures as sums of Dirac indicator functions of weight resp. $1 / n_a$ and $1 / n_b$.\n",
"\n",
"<center> $$ Pr[A>B] = \\int\\limits_{x \\in \\mathcal{R}} F_B(x) f_A(x) dx $$ </center>\n",
"\n",
"<center> $$ Pr[A>B] = \\int\\limits_{x \\in \\mathrm{R}} F_B(x) \\sum \\limits_{i=1}^{n_a} \\mathbb{1}(a_i = x) = \\frac{1}{n_a} \\sum \\limits_{i=1}^{n_a} F_B(a_i) $$ </center>\n",
"\n",
"<center> $$ Pr[A>B] = \\frac{1}{n_a n_b} \\sum \\limits_{i=1}^{n_a} \\sum \\limits_{j=1}^{n_b} \\mathbb{1}(b_i \\le a_i) $$ </center>\n",
"\n",
"This can be visualize in a similar fashion to the before mentionned gaussian example :"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"grid = np.linspace(0, np.max(np.concatenate((a_samples, b_samples))), 1000)\n",
"FB_on_A_samples = np.array([np.sum(b_samples<=a) for a in a_samples],dtype='float')\n",
"FB_on_grid = np.array([np.sum(b_samples<=x) for x in grid])\n",
"\n",
"plt.plot(grid, FB_on_grid, '-g')\n",
"plt.plot(a_samples, FB_on_A_samples, 'ob', alpha=.5)\n",
"plt.legend(['$F_B$', '$(A_i)_{i=1,\\cdots,n_A}$'], 'upper left', prop={'size':20});"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nQmCC\n"
}
],
"prompt_number": 8
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment