{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Handicapping pub trivia\n", "\n", "Allen B. Downey\n", "\n", "[MIT License](https://en.wikipedia.org/wiki/MIT_License)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# If we're running in Colab, install empiricaldist\n", "\n", "import sys\n", "IN_COLAB = 'google.colab' in sys.modules\n", "\n", "if IN_COLAB:\n", " !pip install empiricaldist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Introduction\n", "\n", "This notebook is inspired by [this question on Reddit's statistics forum](https://www.reddit.com/r/statistics/comments/e7bqbr/q_normalize_trivia_results_with_different_team/)\n", "\n", "> If there is a quiz of `x` questions with varying results between teams of different sizes, how could you logically handicap the larger teams to bring some sort of equivalence in performance measure?\n", "\n", "> [Suppose there are] 25 questions and a team of two scores 11/25. A team of 4 scores 17/25. Who did better in terms of average performance of each member?\n", "\n", "One respondent suggested a binomial model, in which every player has the same probability of answering any question correctly.\n", "\n", "I suggested a model based on item response theory, in which each question has a different level of difficulty, `d`, each player has a different level of efficacy `e`, and the probability that a player answers a question is\n", "\n", "```\n", "expit(e-d+c)\n", "```\n", "\n", "where `c` is a constant offset for all players and questions, and `expit` is the inverse of the logit function.\n", "\n", "Another respondent pointed out that group dynamics will come into play. On a given team, it is not enough if one player knows the answer; they also have to persuade their teammates.\n", "\n", "So let's explore these models and see how far we get. Among other things, this will be a good exercise in using NumPy n-dimensional arrays." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The binomial model\n", "\n", "I'll start with an array with dimensions for `k` players, `n` questions, and `m=1000` simulations." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4, 25, 10000)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "k = 4 # number of players\n", "n = 25 # number of questions\n", "m = 10000 # number of iterations\n", "\n", "a = np.random.random((k, n, m))\n", "a.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now suppose each player has a 30% chance of answer each question. We can compute a Boolean array that indicates which questions each player got." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4, 25, 10000)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = 0.3\n", "\n", "b = (a < p)\n", "b.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's assume for now that a team gets the question right if any of the players gets it.\n", "\n", "If you like, you can think of \"gets it\" as a combination of \"knows the answer\" and \"successfuly convinces teammates\".\n", "\n", "With this assumption, we can use the logical OR operator to reduce the answers along the player axis." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(25, 10000)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = np.logical_or.reduce(b, axis=0)\n", "c.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is an array with one dimension for questions and one for iterations.\n", "\n", "Now we can compute the sum along the questions." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10000,)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d = np.sum(c, axis=0)\n", "d.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is one-dimensional array of iterations that approximates the distribution of scores for a team of `k=4` players.\n", "\n", "Here's what the distribution looks like." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from empiricaldist import Cdf" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cdf = Cdf.from_seq(d)\n", "cdf.plot()\n", "\n", "plt.xlabel('Number of correct responses')\n", "plt.ylabel('CDF');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function encapsulates the code we have so far, so we can run it with different values of `k`:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def simulate(p, k, n=25, m=10000):\n", " a = np.random.random((k, n, m))\n", " b = (a < p)\n", " c = np.logical_or.reduce(b, axis=0)\n", " d = np.sum(c, axis=0)\n", " return d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the distribution of correct responses looks like for a range of values of `k`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7.0\n", "13.0\n", "16.0\n", "19.0\n", "21.0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "p = 0.3\n", "\n", "for k in range(1, 6):\n", " d = simulate(p, k)\n", " cdf = Cdf.from_seq(d)\n", " cdf.plot(label=k)\n", " print(cdf.median())\n", "\n", "plt.xlabel('Number of correct responses')\n", "plt.ylabel('CDF');\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use these CDFs to compare scores between teams with different sizes.\n", "\n", "A team of two that scores 11/25 is in the 31nd percentile. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.309)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d = simulate(p=0.3, k=2)\n", "cdf = Cdf.from_seq(d)\n", "cdf(11)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A team of 4 that scores 17/25 is in the 22nd percentile." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.2415)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d = simulate(p=0.3, k=4)\n", "cdf = Cdf.from_seq(d)\n", "cdf(17)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So I would say the team of two out-performed the team of 4." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Item response theory\n", "\n", "Now suppose we have players with different levels of efficacy, drawn from a standard normal distribution." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5, 1, 10000)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "players = np.random.normal(size=(k, 1, m))\n", "players.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And questions with different levels of difficulty, also drawn from a standard normal distribution." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1, 25, 10000)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "questions = np.random.normal(size=(1, n, m))\n", "questions.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the `expit` function to compute the probability that each player answers each question." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5, 25, 10000)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.special import expit\n", "\n", "c = -1\n", "p = expit(players - questions + c)\n", "p.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I chose `c=-1` so that the average probability is about the same as in the binomial model." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3237610597780847" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the same `simulate` function with the new model; the difference is that `p` is an array now, rather than a constant." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "d = simulate(p, k)\n", "cdf = Cdf.from_seq(d)\n", "cdf.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the distributions with a range of values for `k`:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8.0\n", "13.0\n", "16.0\n", "18.0\n", "20.0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "questions = np.random.normal(size=(1, n, m))\n", "\n", "for k in range(1, 6):\n", " players = np.random.normal(size=(k, 1, m))\n", " p = expit(players - questions + c)\n", " d = simulate(p, k)\n", " cdf = Cdf.from_seq(d)\n", " cdf.plot(label=k)\n", " print(cdf.median())\n", " \n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, we can use these CDFs to compare scores between teams with different sizes.\n", "\n", "A team of two that scores 11/25 is in the 39th percentile. " ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.3921)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 2\n", "players = np.random.normal(size=(k, 1, m))\n", "p = expit(players - questions + c)\n", "d = simulate(p, k)\n", "cdf = Cdf.from_seq(d)\n", "cdf(11)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A team of 4 that scores 17/25 is in the 40th percentile." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.4097)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = 4\n", "players = np.random.normal(size=(k, 1, m))\n", "p = expit(players - questions + c)\n", "d = simulate(p, k)\n", "cdf = Cdf.from_seq(d)\n", "cdf(17)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So under this model we would say the team of 4 out-performed the team of 2, which is the opposite of our conclusion under the multinomial model!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }