{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove_input" ] }, "outputs": [], "source": [ "path_data = '../../../../data/'\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import pylab as pl\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Properties of the Mean ###\n", "\n", "In this course, we have used the words \"average\" and \"mean\" interchangeably, and will continue to do so. The definition of the mean will be familiar to you from your school days or even earlier.\n", "\n", "**Definition.** The *average* or *mean* of a collection of numbers is the sum of all the elements of the collection, divided by the number of elements in the collection.\n", "\n", "The methods `np.average` and `np.mean` return the mean of an array.\n", "\n", "[Numpy average](https://numpy.org/doc/stable/reference/generated/numpy.average.html)\n", "\n", "[Numpy mean](https://numpy.org/doc/stable/reference/generated/numpy.mean.html)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "not_symmetric = np.array([2, 3, 3, 9])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.25" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.average(not_symmetric)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.25" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(not_symmetric)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Basic Properties ###\n", "\n", "The definition and the example above point to some properties of the mean.\n", "\n", "- It need not be an element of the collection.\n", "- It need not be an integer even if all the elements of the collection are integers.\n", "- It is somewhere between the smallest and largest values in the collection.\n", "- It need not be halfway between the two extremes; it is not in general true that half the elements in a collection are above the mean.\n", "- If the collection consists of values of a variable measured in specified units, then the mean has the same units too.\n", "\n", "We will now study some other properties that are helpful in understanding the mean and its relation to other statistics." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Mean is a \"Smoother\" ##\n", "\n", "You can think of taking the mean as an \"equalizing\" or \"smoothing\" operation. For example, imagine the entries in `not_symmetric` above as the dollars in the pockets of four different people. To get the mean, you first put all of the money into one big pot and then divide it evenly among the four people. They had started out with different amounts of money in their pockets (\\$2, \\$3, \\$3, and \\$9), but now each person has \\$4.25, the mean amount." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Proportions are Means ###\n", "If a collection consists only of ones and zeroes, then the sum of the collection is the number of ones in it, and the mean of the collection is the proportion of ones." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zero_one = np.array([1, 1, 1, 0])\n", "sum(zero_one)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.75" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(zero_one)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can replace 1 by the Boolean `True` and 0 by `False`:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.75" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(np.array([True, True, True, False]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because proportions are a special case of means, results about random sample means apply to random sample proportions as well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Mean and the Histogram ###\n", "The mean of the collection {2, 3, 3, 9} is 4.25, which is not the \"halfway point\" of the data. So then what does the mean measure?\n", "\n", "To see this, notice that the mean can be calculated in different ways.\n", "\n", "$$\\begin{align*}\n", "\\mbox{mean} ~ &=~ 4.25 \\\\ \\\\\n", "&=~ \\frac{2 + 3 + 3 + 9}{4} \\\\ \\\\\n", "&=~ 2 \\cdot \\frac{1}{4} ~~ + ~~ 3 \\cdot \\frac{1}{4} ~~ + ~~ 3 \\cdot \\frac{1}{4} ~~ + ~~ 9 \\cdot \\frac{1}{4} \\\\ \\\\\n", "&=~ 2 \\cdot \\frac{1}{4} ~~ + ~~ 3 \\cdot \\frac{2}{4} ~~ + ~~ 9 \\cdot \\frac{1}{4} \\\\ \\\\\n", "&=~ 2 \\cdot 0.25 ~~ + ~~ 3 \\cdot 0.5 ~~ + ~~ 9 \\cdot 0.25\n", "\\end{align*}$$\n", "\n", "The last expression is an example of a general fact: when we calculate the mean, each distinct value in the collection is *weighted* by the proportion of times it appears in the collection.\n", "\n", "This has an important consequence. The mean of a collection depends only on the distinct values and their proportions, not on the number of elements in the collection. In other words, the mean of a collection depends only on the distribution of values in the collection.\n", "\n", "Therefore, **if two collections have the same distribution, then they have the same mean.**\n", "\n", "For example, here is another collection that has the same distribution as `not_symmetric` and hence the same mean." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2, 3, 3, 9])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "not_symmetric" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.25" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "same_distribution = np.array([2, 2, 3, 3, 3, 3, 9, 9])\n", "np.mean(same_distribution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The mean is a physical attribute of the histogram of the distribution. Here is the histogram of the distribution of `not_symmetric` or equivalently the distribution of `same_distribution`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "remove_input" ] }, "outputs": [ { "data": { "image/png": "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evYs17vv+mw6jxo0yOgKAABXYua/M75Wq8+4XGKxWFweOxyOKm0AAODnr1YHl+bNm8vPz6/K2ZXCwsIqZ2EAAMDPX60OLg0bNlS3bt2Uk5Pj0p6Tk6PevXsbVBUAADBKrd7jIkm///3vNW3aNMXGxqp379564YUXdOrUKU2aNMno0gAAgI/V6jMukjRq1CilpqZqyZIluvnmm7V7925lZmaqbdu2Xp33iSee0O23367w8HBFRkZq3LhxOnjwoFfnrG2ef/559e3bV+Hh4QoPD9eAAQP01ltvGV2WoZYuXarg4GAlJycbXYrPpKamKjg42OWnQ4cORpflc6dOndIDDzygyMhIhYaGqnfv3tq+fbvRZflM586dq7wPgoODNXbsWKNL85mKigo99thjzhuidunSRY899pguXLhgdGk+debMGc2ePVu//OUv1apVKw0cOFB79+712fy1/oyLJE2ePFmTJ0/26Zzbt2/X/fffrx49esjhcOhvf/ubRowYodzcXDVr1syntRildevWmj9/viIjI1VZWal//OMfmjBhgt5991398pe/NLo8n9uzZ49Wr16tTp06GV2Kz1mtVm3YsMH52M/Pz8BqfK+4uFiDBg1Snz59lJmZqebNmys/P79O7bXLyclRRUWF8/GpU6d02223acSIEcYV5WNPPfWUVq1apYyMDMXExOjAgQNKSEhQw4YN9ec//9no8nzmD3/4gw4cOKCMjAy1adNGr7zyikaMGKHdu3erdevWXp/fFMHFCNnZ2S6PV6xYobZt22r37t266667DKrKt4YOHeryeO7cufr73/+uPXv21LngUlJSoilTpuiZZ57R4sWLjS7H5+rXr6/Q0FCjyzDM008/rVatWmnFihXOtoiICOMKMkCLFi1cHr/44osKCgqqU8Hlgw8+0ODBg51/A9q1a6e77rpLH374ocGV+U5ZWZnWr1+vNWvW6Oabb5YkpaSkaPPmzXrhhRc0Z84cr9dQ6y8V1RZnz55VZWWlgoODjS7FEBUVFVq3bp3OnTunXr16GV2OzyUlJSkuLk633nqr0aUYIi8vTx07dlSXLl103333KS8vz+iSfGrjxo2KjY3VpEmTFBUVpZtuukkrV66Uw+EwujRDOBwOvfjiixo3bpwaN25sdDk+06dPH23fvl2ff/65JOnQoUPatm2bBgwYYHBlvnPhwgVVVFSoUaNGLu0BAQHatWuXT2rgjIubZs+erc6dO9e5P9oHDhzQwIEDVV5ersDAQL300kt17lLJ6tWrdeTIEZd/bdclPXv21PLly2W1WlVYWKglS5Zo4MCB2r17t6677jqjy/OJvLw8/f3vf1diYqKSkpK0f/9+zZo1S5I0depUg6vzvZycHOXn5+vee+81uhSfSkpK0tmzZ9W7d2/5+fnpwoULmjlzps+3MhgpKChIvXr1Ulpamjp27KjQ0FBlZWXpgw8+0A033OCTGggubnj44Ye1e/dubd68uc5d27dardq2bZtKSkq0fv16JSQkaMOGDYqJiTG6NJ+w2WxasGCB3nzzTTVs2NDocgzx439N9uzZU926ddPatWs1ffp0g6ryrcrKSnXv3l3z5s2TJHXt2lVHjhzRqlWr6mRwWb16tXr06KEuXboYXYpPZWdn65///KdWrVql6Oho7d+/X7Nnz1bbtm31u9/9zujyfGbFihX6/e9/r5iYGPn5+alr166Kj4/XRx995JP5CS5XkJKSouzsbL3xxht17pq2dPFeOpdSdPfu3bV3714tX75czz77rMGV+cYHH3ygoqIi/frXv3a2VVRUaOfOnXrhhRd04sSJOvc9Tk2aNFF0dLSOHDlidCk+ExoaqhtvvNGlrUOHDjp27JhBFRnn66+/1qZNm5SWlmZ0KT736KOPavr06Ro9erQkqVOnTjp69KiefPLJOhVc2rdvr02bNuncuXM6c+aMWrVqpUmTJqldu3Y+mZ/gUoNZs2YpOztbGzZsqJMf/7ycyspKnT9/3ugyfGbo0KHq3r27S9vvf/97RUZG6o9//GOdPAtTXl4um83m3JhXF/Tp00eHDx92aTt8+LDCw8MNqsg4a9eulb+/v0aNGmV0KT733XffVTnr7ufnp8rKSoMqMlZgYKACAwNVXFysd955RwsWLPDJvASXasycOVOvvPKKXnrpJQUHB6ugoEDSxV9UkyZNDK7ON/7yl79o4MCBatOmjc6ePausrCxt375dmZmZRpfmM5fuVfFDjRs3VrNmzerM5bI5c+Zo8ODBCgsLc+5x+e677zR+/HijS/OZxMREDRw4UGlpaRo1apQ+/vhjrVy5UnPnzjW6NJ9yOBxas2aNRo0apaAg338rsNEGDx6sp556Su3atVN0dLQ+/vhjpaen6+677za6NJ965513VFlZKavVqi+//FJz586V1WrVhAkTfDI/waUaq1atkiTFxcW5tM+aNUspKSlGlORzBQUFmjp1qk6fPq2mTZuqU6dOysrK0h133GF0afChEydOaPLkySoqKlKLFi3Us2dPbdmyxes3gaxNevTooZdfflkLFizQkiVLFBYWpocffrhObcqUpG3btumLL77QypUrjS7FEIsXL9bjjz+uP/3pTyosLFRoaKgmTpxYp+7hIkmlpaWaP3++Tpw4oWbNmmn48OGaM2eOGjRo4JP5LcXFxXXz83wAAMB0uI8LAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAHjQyy+/rODgYOXn5xtdCvCzRHABcNU2b96s1NRUo8vwqrNnzyo1NVXbtm0zuhQAP0BwAXDV3nrrLS1atMjoMrzq3LlzWrRokbZv335Vz7v77rt16tSpOnVnYcCXCC4A4AHfffedpItfuteoUSNZLBaDKwJ+ngguwM9camqqgoOD9cUXX+ihhx5S+/bt1aZNG02cOFHffPNNlePXrFmjvn37KjQ0VFFRUZo2bZpOnjzp7E9ISNB//dd/Sfr/L6G80p6O06dP68EHH1SnTp3UsmVLRUdHa9y4cTpw4IAkacqUKbrhhhv0/fffV3nuxIkT1aFDB124cEGS1LlzZ40ePVq7du3SHXfcoVatWqlPnz7KycmRJL399tu65ZZbFBoaqr59+yo3N7fKmKdOndKMGTMUHR2tli1bqkePHlq2bJkcjovfgJKfn68bb7xRkrRo0SLna0xISHBZ00OHDumBBx5Q+/bt1adPH0nV73H5z3/+o3HjxikiIkLXX3+9fv3rX+uJJ56ods0AXB5fsgjUEffff79CQ0P1yCOPOL8or0GDBs4vFJWkJ598UvPnz1ffvn21YMECHTt2TM8//7x27dql999/X8HBwZo0aZKOHz+u999/XytWrHA+t0WLFtXOPXHiRB04cEBTp05V27ZtVVRUpJ07d+rw4cPq1KmT7rnnHr366qvasmWLhgwZ4nxeSUmJ3nrrLU2aNEn16////67y8/M1adIk3XvvvYqPj9fy5cs1fvx4LV++XHPmzNF9990nf39/LVu2TPfee6/2798vf39/SdLXX3+tO++8UxcuXNDEiRPVqlUr7dq1S/PmzdPJkye1cOFCtWjRQkuWLFFycrJ+85vfaNiwYZKk9u3bu7yuSZMmqW3btnrkkUd0/vz5al//e++9p7Fjx+q6667TlClT1Lp1a9lsNr355pv64x//6OZvEIBEcAHqjA4dOrh8q6/D4dDzzz+vpUuX6he/+IWKioq0cOFC3XTTTfrXv/7lDAp9+vTRhAkT9Oyzz2rOnDnq1auXIiMj9f7772vcuHFXnLekpES7du3SX//6Vz344IPO9oceesj537feeqvatGmjzMxMl+Dy+uuvq7y8vMo8hw8f1saNG9WvXz9JUpcuXTR06FBNmzZNO3fulNVqlSSFhYVp0qRJ2rx5s/Ob3h977DHZ7Xbt2LFDLVu2lHQxgLRq1UrPPvusEhIS1K5dOw0fPlzJycnq1KlTta8zKipKL774Yo2vv7KyUjNmzFCzZs20bds2l4B36QwPAPdxqQioI+6//36Xx/369VNFRYWOHTsmSXr33Xdlt9uVmJjocnZj6NChslqteuutt65p3kaNGqlBgwbavn27vv3228seU69ePY0dO1abN29WSUmJs/2VV15RdHS0unXr5nJ8VFSUM7RIUs+ePSVJvXr1coYWSYqNjZUk5eXlSboYFF5//XUNGjRIfn5+Kioqcv7ccccdqqys1I4dO9x+bT9e08v56KOPlJeXp4SEhCpnpdgHA1w9ggtQR4SHh7s8Dg4OliRnmPjqq68kXTwz82MdOnRw9l8tf39/zZs3T2+//basVqsGDx6spUuX6ujRoy7HjR8/XuXl5Xr99dclSceOHdPOnTsve7YjLCysyhz+/v5q06aNS3vTpk0lScXFxZKkwsJCFRcX66WXXlJkZKTLz6UzMoWFhW6/toiIiCse8+WXX0qSYmJi3B4XQPW4VATUEX5+fpdtd+dyxU+9pDF9+nT95je/0aZNm/Tuu+9qyZIleuKJJ7R27Vrdeuutki6Go9jYWGVmZup3v/udXn31VUnSmDFjqoxX3Wu50musrKyUJMXHx+u3v/3tZY+94YYb3H5dAQEBVzzm0tycXQE8g+ACQJKc9x35/PPPFRUV5dJns9lc7ktyLX+EIyIilJiYqMTERB07dky33HKLnnzySWdwkS6edUlOTtaxY8eUmZmpm266qcrZlZ+iRYsWatq0qS5cuKDbbrutxmM9FTQuBaGDBw/qzjvv9MiYQF3GpSIAkqTbbrtN/v7+eu6551RRUeFsf/PNN2Wz2TRo0CBnW+PGjSX9/yWYmnz33XcqKytzaQsLC1NISEiV548ePVoNGjTQ3Llz9emnn+ruu+++9hd0GX5+fho+fLg2bNigffv2VekvKSlxfiT7al5jTbp27aqIiAhlZGRU+fg5m3OBq8cZFwCSpObNm2v27NmaP3++4uLiNGzYMB0/flwrV65U27ZtNX36dOex3bt3lyQlJyfrzjvvVP369TV48GAFBgZWGffw4cMaPny4RowYoejoaPn7++t//ud/9Nlnn+mvf/2ry7HNmjXT4MGD9dprrykgIEDDhw/3+Ov8y1/+oh07dmjw4MG69957FRMTozNnzujgwYN64403tHfvXoWGhqpJkyayWq3Kzs5WVFSUrrvuOrVr1865Edhd9erV05NPPqmxY8fq5ptv1oQJE9S6dWsdOXJEubm517zpGairCC4AnB566CE1b95czz33nObOnasmTZooLi5O8+bNc27mlaQRI0bogw8+0GuvvaasrCw5HA599NFHlw0uYWFhGjNmjN5//31lZWXJYrEoMjJSzzzzjO69994qx48fP17r16/X0KFDFRQU5PHX2KJFC73zzjtasmSJNm7cqP/+7//WL37xC0VFRWn27Nlq1qyZ89j09HSlpKRozpw5stvtGj9+/FUHF0m6/fbbtXHjRi1atEgZGRmqqKhQRESExo4d68mXBtQJluLiYs5VAqg13nnnHY0ePVqvvvqqBgwYYHQ5AGoZ9rgAqFVWr16tVq1aqX///kaXAqAW4lIRgFph3bp1OnTokN544w3Nmzev2o82A6jbuFQEoFYIDg5WYGCghg0bpqeffloNGzY0uiQAtRBnXADUCj/1Y8cA6gb2uAAAANMguAAAANMguAAAANMguAAAANMguAAAANMguAAAANP4X+1/iINBjAwNAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t1 = pd.DataFrame({'not symmetric':not_symmetric})\n", "\n", "unit = ''\n", "\n", "fig, ax = plt.subplots(figsize=(8,5))\n", "\n", "ax.hist(t1, density=True, color='blue', alpha=0.8, ec='white', zorder=5)\n", "\n", "y_vals = ax.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'not symetric'\n", "\n", "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.title('');\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Imagine the histogram as a figure made out of cardboard attached to a wire that runs along the horizontal axis, and imagine the bars as weights attached at the values 2, 3, and 9. Suppose you try to balance this figure on a point on the wire. If the point is near 2, the figure will tip over to the right. If the point is near 9, the figure will tip over to the left. Somewhere in between is the point where the figure will balance; that point is the 4.25, the mean.\n", "\n", "**The mean is the *center of gravity* or balance point of the histogram.**\n", "\n", "To understand why that is, it helps to know some physics. The center of gravity is calculated exactly as we calculated the mean, by using the distinct values weighted by their proportions.\n", "\n", "Because the mean is a balance point, it is sometimes displayed as a *fulcrum* or triangle at the base of the histogram." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "tags": [ "remove_input" ] }, "outputs": [ { "data": { "image/png": "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KEiJiYl67733FBoaqn379unee+91djy7iI+P18cff6yRI0cqLCxMR44c0bhx4yRJw4YNc3I6+4uNjdXp06f1zDPPODuKXYWFhSktLU0tW7aUi4uLbt68qTFjxmjIkCHOjmY3np6eeuCBBzRz5kzVq1dPPj4+WrNmjQ4cOKD777/f2fEcguJSDE2YMEH79u3Tli1bSty5A0FBQdq5c6dSUlK0YcMGjRgxQps2bVJwcLCzo9lFXFycpk6dqv/85z9ydXV1dhyHuP2v1ebNm6tJkyZauXKlRo8e7aRU9pWdna2mTZvqjTfekCQ1btxYJ0+e1MKFC0tkcVmyZImaNWumRo0aOTuKXcXExOjTTz/VwoULVbduXR05ckTjx4+Xn5+f/vGPfzg7nt3Mnz9fo0aNUnBwsFxcXNS4cWP17t1b33//vbOjOQTFpZgJDw9XTEyMNm7cWOKOqUuSq6ur5a+Apk2b6tChQ5o3b57mzp3r5GT2ceDAASUlJelvf/ubZVlWVpb27NmjRYsW6fz583Jzc3NiQvsrX7686tatq5MnTzo7it34+PioTp06Vstq166tc+fOOSmR4/z+++/avHmzZs6c6ewodvf6669r9OjR6tWrlySpfv36Onv2rN5///0SVVxq1aqlzZs369q1a7p69aqqVq2qgQMHyt/f39nRHILiUoyMGzdOMTEx2rRpU4m8vDQv2dnZun79urNj2E2XLl3UtGlTq2WjRo1SQECAXnnllRK5FyYjI0NxcXGWEwNLglatWunEiRNWy06cOCFfX18nJXKclStXys3NTT179nR2FLv7448/cu21dnFxUXZ2tpMSOZaHh4c8PDyUnJysr776SlOnTnV2JIeguBQTY8aM0apVq7R8+XJ5eXkpISFB0p8/iOXLl3dyOvt48803FRoaqvvuu09paWlas2aNdu3apejoaGdHs5uce2Hcqly5cqpYsWKJORw2adIkdezYUTVq1LCc4/LHH3+of//+zo5mNyNHjlRoaKhmzpypnj176ocfftCCBQs0efJkZ0ezK7PZrKVLl6pnz57y9PR0dhy769ixoz744AP5+/urbt26+uGHHxQZGaknn3zS2dHs6quvvlJ2draCgoJ06tQpTZ48WUFBQRowYICzozkExaWYWLhwoSSpW7duVsvHjRun8PBwZ0Syu4SEBA0bNkyXLl1ShQoV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6+DBg5ZzcNq2batu3bpp7ty5ev311/P9N33mmWcUGRmpF198UXPmzNGDDz6oVq1aKTQ01FLScgwePFgvvPCC1bKOHTuqU6dO2rhxo/r27Wu1rlKlSoqJiZHJZJL0516khQsXqk+fPpbXZvDgwWrZsqWWL1+eq1D8/PPP2rp1q1q2bClJGjBggJo1a6YpU6YU+KY7fvx4+fj4KDY21nLYbfDgwRo4cKAiIiL07LPPWl7vgvj5+alVq1aKjo5W586ddePGDa1fv16jRo3Kc/t58+YpLi5OO3bssOxpk6R69eppzJgx2rNnj1q3bq2ffvpJK1eu1NNPP625c+datps6dapmz559x1yFfR3KlSunTZs2qVSpP3fiV6xYURMmTNDRo0dVr169O44HFAaHioBbTJ8+XevXr9f69eu1YMECPfroo3r11VetzjXIOZTw4osvWn3voEGDVKFCBcv6w4cPKyEhQYMHD7Z6E2vcuLEeeeQRffHFF3leUXIrT09PSdKWLVusDicU1uDBg3Mtu/U8lz/++EOXL1/WPffco4CAAB0+fDjX9k8++aTVicMPP/yw6tWrd8e/qitXrqzY2FgNGjRIaWlpWrJkiUaMGKHatWsrPDzcsgfo9kxpaWm6fPmyateurXvuuSfPTE8//bSltEhS8+bNZTab9cwzz1htFxISolOnTuX6/qZNm1pKiyTde++96tOnjw4cOJDvFV7JycnasWOHunfvrvT0dCUlJVm+/v73v+vq1av67rvvCvw3uVWfPn20ZcsWpaamatu2bbpy5Uq+51OtW7dOLVu2VOXKla3GfeSRRyRJ33zzjaT/+xm99bJnSTbvCSrs6zBw4EBLaZFk2VvF4SI4AntcgFs0a9bM6uTc3r176+GHH9Zrr72mTp06ydXVVWfOnJHJZFJQUJDV97q5ucnf319nzpyRJMv/1q5dO9c4derU0fbt25Wammp1jsft2rZtq65du2r69OmaN2+eWrdurU6dOql3794qX768zfOqWbNmrmUZGRl69913FR0drYsXL1qtu31PiCQFBATkucyWy7B9fX01e/ZszZ49W/Hx8dqxY4fmzp2rqKgoeXp6WvYgJScn680339Rnn32mK1euWD1HXucP1ahRw+pxhQoV8l2enp6uzMxMubm53XFOknT27Nk8r/D69ddfZTabNX36dMvVXLdLTEzM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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mean_ns = np.mean(not_symmetric)\n", "\n", "unit = ''\n", "\n", "fig, ax = plt.subplots(figsize=(8,5))\n", "\n", "ax.hist(t1, bins=np.arange(1.5, 9.6, 1), density=True, color='blue', alpha=0.8, ec='white', zorder=5)\n", "\n", "ax.plot([1.5, 9.5], [0, 0], color='grey', lw=8, zorder=10)\n", "\n", "ax.scatter(mean_ns, -0.009, marker='^', color='darkblue', s=60, zorder=15).set_clip_on(False)\n", "\n", "y_vals = ax.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Bootstrap Sample Median'\n", "\n", "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylim(-0.05, 0.5)\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.title('');\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Mean and the Median ###\n", "\n", "If a student's score on a test is below average, does that imply that the student is in the bottom half of the class on that test?\n", "\n", "Happily for the student, the answer is, \"Not necessarily.\" The reason has to do with the relation between the average, which is the balance point of the histogram, and the median, which is the \"half-way point\" of the data.\n", "\n", "The relationship is easy to see in a simple example. Here is a histogram of the collection {2, 3, 3, 4} which is in the array `symmetric`. The distribution is symmetric about 3. The mean and the median are both equal to 3." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "symmetric = np.array([2, 3, 3, 4])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [ "remove_input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfkAAAFfCAYAAABN87UXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAuDUlEQVR4nO3dfVgVdeL//9cRAxE1TBFvwJvgFOJ94M3q7tfWPpLJen8XuX1a71LMyjVNKcs0W7zBNksky+1KtyxJsTWz/FhS4W2Wa7qphSnepGGogBgcVzi/P7o8vwjRAc5xONPzcV38cWaG97zmILycmzNjy83NdQoAAFhODbMDAAAAz6DkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAizKt5BMTExUYGFjq67bbbnPNdzqdSkxMVEREhBo3bqzY2FgdPHjQrLgAAHgdU/fk7Xa7vvnmG9fX9u3bXfMWL16s5ORkzZ8/X1u2bFFQUJAGDRqkCxcumJgYAADvYWrJ16xZU8HBwa6vhg0bSvp5Lz4lJUWTJ0/WgAEDFBkZqZSUFBUUFGjNmjVmRgYAwGuYWvJZWVlq3bq12rdvr9GjRysrK0uSdOzYMWVnZ6tXr16uZf39/dW9e3ft2rXLpLQAAHiXmmatODo6WkuXLpXdbldOTo4WLlyomJgY7dy5U9nZ2ZKkoKCgUt8TFBSk06dPmxEXAACvY1rJ9+7du9Tr6OhodezYUatWrVLnzp0lSTabrdQyTqezzDRUzOnTvvr+e+/9UEWzZiVq0uSS2TEAwCuYVvK/VqdOHUVEROjIkSP605/+JEk6c+aMQkJCXMvk5OSU2btHxXz/fQ1NnepjdoxKS0qSmjQxOwUAeIdqs0tXVFSkzMxMBQcHq0WLFgoODlZ6enqp+Tt27FDXrl1NTOlZmZmZZkeoMofDYXaEKvP2n4O355fYhurA2/NL1tiGqjJtT37mzJnq06ePQkJCXOfkf/rpJ8XFxclmsyk+Pl6LFi2S3W5XeHi4kpKSFBAQoKFDh5oVGQAAr2JayZ86dUpjx47V2bNn1bBhQ0VHR2vz5s1q3ry5JOnRRx9VYWGhpk2bptzcXEVFRSktLU1169Y1KzIAAF7FtJJ/7bXXrjnfZrMpISFBCQkJNygRAADWUm3OyQMAAPei5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALCoalPyixYtUmBgoKZNm+aa5nQ6lZiYqIiICDVu3FixsbE6ePCgiSkBAPAe1aLkd+/erRUrVqhNmzalpi9evFjJycmaP3++tmzZoqCgIA0aNEgXLlwwKSkAAN7D9JLPy8vTuHHj9NJLLykwMNA13el0KiUlRZMnT9aAAQMUGRmplJQUFRQUaM2aNeYFBgDAS5he8ldKvGfPnqWmHzt2TNnZ2erVq5drmr+/v7p3765du3bd6JgAAHidmmaufMWKFTpy5IiWLVtWZl52drYkKSgoqNT0oKAgnT59+obkAwDAm5lW8pmZmZozZ44++OAD+fr6lruczWYr9drpdJaZ9utxvZmn8+fnt5TD4e/RdTgcDo+NnZ9fqMzMLI+NfwX/jszHNpjP2/NL3r0Ndru9ymOYVvKff/65zp49q9/97neuacXFxdq+fbtee+017dy5U5J05swZhYSEuJbJyckps3f/S+54U8ySmZnp8fx5ebXk5+fjsfEdDof8/Pw8Nn69ejU9/h7diJ+DJ3l7foltqA68Pb9kjW2oKtNKPjY2Vp06dSo17aGHHlJYWJimTJmi8PBwBQcHKz09XXfccYckqaioSDt27NCcOXPMiAwAgFcxreQDAwNLXU0vSbVr11b9+vUVGRkpSYqPj9eiRYtkt9sVHh6upKQkBQQEaOjQoSYkBgDAu5h64d31PProoyosLNS0adOUm5urqKgopaWlqW7dumZHAwCg2qtWJf/++++Xem2z2ZSQkKCEhASTEgEA4L1M/5w8AADwDEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLMlzy27ZtU05OTrnz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pP3790uSfvjhB3300Ufq37+/jh49qscee8xjQQEAQMUYvhnOH//4Ry1btkzTpk3TqlWrJEnx8fFyOp26+eabtXz5cnXu3NljQQEAQMUYLnlJGjp0qPr27av09HR99913KikpUatWrXTXXXepTp06nsoIAAAqoUIlL0m1a9dWbGysJ7IAAAA3MnxOfuPGjZo2bVq586dNm1buhXkAAODGM1zyL730kn766ady5xcVFWnx4sVuCQUAAKrOcMkfOHBAHTt2LHd+hw4ddOjQIXdkAgAAbmC45C9fvqzCwsJy5xcWFsrhcLglFAAAqDrDJR8ZGan169erpKSkzLySkhKtX79eERERbg0HAAAqz3DJT5gwQV9++aXi4uK0d+9eORwOORwO7d27V/fdd5++/PJLjR8/3pNZAQBABRj+CN2QIUN09OhRJSYmavPmzZIkm80mp9Mpm82m6dOna8SIER4LCgAAKqZCn5OfOnWqhg4dqvfee09ZWVlyOp1q1aqV+vXrp5YtW3ooIgAAqAxDJV9YWKjhw4drxIgR+vOf/6yHH37Y07kAAEAVGTon7+/vr6+++krFxcWezgMAANzE8IV3v//977V9+3ZPZgEAAG5kuOTnz5+vPXv26KmnnlJWVtZVP0oHAACqD8MX3nXu3FlOp1PJyclKTk5WjRo1dNNNN5Vaxmaz6dSpU24PCQAAKs5wyQ8aNEg2m82TWQAAgBsZLvmUlBRP5gAAAG5m+Jw8AADwLhUq+ePHj+uRRx5Rx44dFRoaqq1bt0qSzp49q8cee0x79+71REYAAFAJhg/Xf/PNN+rTp49KSkoUHR2t48ePuz4336BBA+3evVsOh0NLlizxWFgAAGCc4ZKfNWuW6tatq48++kg+Pj4KDw8vNT8mJkbvvvuuu/MBAIBKMny4fvv27Ro7dqwaNWp01avsQ0NDdfr0abeGAwAAlWe45C9fvqyAgIBy558/f14+Pj5uCQUAAKrOcMlHRkYqIyPjqvOcTqfee+89dezY0V25AABAFRku+fj4eP3rX//SggULdO7cOUlSSUmJvv32W40ePVr//ve/eTodAADViOEL74YMGaITJ07oueee07x581zTJMnHx0dz585V7969PZMSAABUmOGSl6TJkydr6NChWr9+vY4cOaKSkhK1atVK/fv3V4sWLTyVEQAAVMJ1S97hcGjjxo3KysrSLbfcorvvvlsTJ068EdkAAEAVXLPks7Oz1bdvXx09elROp1OSFBAQoNWrV6tHjx43JCAAAKica154N3fuXGVlZWnixIlavXq1EhMT5efnp8cff/xG5QMAAJV0zZLfsmWL4uLiNHfuXMXExGjChAlauHChDh48qO+//77KK9+2bZvuvfdetW7dWoGBgXrzzTdLzXc6nUpMTFRERIQaN26s2NhYHTx4sMrrBQDgt+CaJZ+dna2uXbuWmtatWzc5nU6dPHmyyiu/ePGiIiMjNW/ePPn7+5eZv3jxYiUnJ2v+/PnasmWLgoKCNGjQIF24cKHK6wYAwOquWfLFxcWqVatWqWlXXhcVFVV55TExMXr66ac1YMAA1ahROorT6VRKSoomT56sAQMGKDIyUikpKSooKNCaNWuqvG4AAKzuulfXZ2Vl6csvv3S9zs/PlyRlZmaqTp06ZZaPiopyS7Bjx44pOztbvXr1ck3z9/dX9+7dtWvXLo0aNcot6wEAwKquW/KJiYlKTEwsM/3XF985nU7ZbDbX3fCqKjs7W5IUFBRUanpQUBAPwgEAwIBrlnxycvKNylGuXz/x7sp/JsqTmZnpsSz5+S3lcJS9dsCdHA6HR8f/73995HAUe3QdntyGG5Ff8uw25OcXKjMzy2PjS579PbhR2AbzeXt+ybu3wW63V3mMa5b8fffdV+UVVFZwcLAk6cyZMwoJCXFNz8nJKbN3/0vueFPKk5dXS35+nnvSnsPhkJ+fn8fGl6SbbpL8/Cp0o8MK8fQ2eDq/5PltqFevpkf/nWZmZnp0/BuBbTCft+eXrLENVWX4ATU3WosWLRQcHKz09HTXtKKiIu3YsaPMFf8AAKAsz+4SXUdBQYGOHDki6ecn2p08eVL79u1T/fr1FRoaqvj4eC1atEh2u13h4eFKSkpSQECAhg4damZsAAC8gqkl/+9//1v9+vVzvb5ykV9cXJxSUlL06KOPqrCwUNOmTVNubq6ioqKUlpamunXrmpgaAADvYGrJ/+EPf1Bubm658202mxISEpSQkHDjQgEAYBHV9pw8AACoGkoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi6LkAQCwKEoeAACLouQBALAoSh4AAIui5AEAsChKHgAAi/KKkl++fLnat2+v4OBg9ezZU9u3bzc7EgAA1V61L/m0tDTNmDFDjz32mD777DN16dJFw4YN04kTJ8yOBgBAtVbtSz45OVn33XefHnjgAd1+++1auHChgoOD9dprr5kdDQCAaq1al/ylS5e0d+9e9erVq9T0Xr16adeuXSalAgDAO1Trkj979qyKi4sVFBRUanpQUJDOnDljUioAALxDTbMDGGGz2Uq9djqdZaZdkZmZ6bEctWo10dNP+3ls/J8VenT0Bg189fTTlzy6Dk9uw43JL3lyG2rVcigz87THxpc8+3two7AN5vP2/JJ3b4Pdbq/yGNW65Bs0aCAfH58ye+05OTll9u6vcMebYpbMzMwbkN8p6SaPjZ6Y+IkSEu702Piezi/diJ/DTZI8N/6N+XfkWWyD+bw9v2SNbaiqan243tfXVx07dlR6enqp6enp6eratatJqVCejIxTWrr0iLZtO2V2FACAqnnJS9JDDz2kVatWaeXKlfrmm280ffp0/fDDDxo1apTZ0fAr8+fv0YULxUpM3GN2FACAqvnhekkaPHiwzp07p4ULFyo7O1utW7dWamqqmjdvbnY0/EJGxint358jSdq//6y2bTulHj2ampwKAH7bqn3JS9LYsWM1duxYs2PgGubP36O8vP9KkvLyLikxcY82bKDkAcBM1f5wPaq/X+7FX3Flbx4AYB5KHlX2y734K67szQMAzEPJo0quthd/BXvzAGAurzgnj+rr229z1b17E9fNiS5eLFBAQB1JP9+06NChXC7AAwCTUPKokjFjIjVmTKTrNTefAIDqg8P1AABYFCUPAIBFUfIAAFgUJQ8AgEVR8gAAWBQlDwCARVHyAABYFCUPAIBFUfIAAFgUJQ8AgEVR8gAAWBQlDwCARVHyAABYFCUPAIBF2XJzc51mhwAAAO7HnjwAABZFyQMAYFGUPAAAFkXJAwBgUZQ8AAAW5fUlv23bNt17771q3bq1AgMD9eabb5odqUKef/55/fGPf1RoaKjCwsI0YsQIHThwwOxYhr366qvq3r27QkNDFRoaqt69e2vTpk1mx6qSRYsWKTAwUNOmTTM7imGJiYkKDAws9XXbbbeZHavCfvjhB02YMEFhYWEKDg5W165dtXXrVrNjGdKuXbsyP4PAwEANHz7c7GiGFRcXa+7cuWrfvr2Cg4PVvn17zZ07V5cvXzY7WoVcuHBBM2bMUNu2bdW4cWPFxMRoz549Zscq1/V6zOl0KjExUREREWrcuLFiY2N18OBBQ2PX9ETgG+nixYuKjIxUXFycJkyYYHacCtu6davGjBmjO+64Q06nU3/72980cOBA7dq1S/Xr1zc73nU1bdpUs2fPVlhYmEpKSvTWW29p5MiR+uSTT9S2bVuz41XY7t27tWLFCrVp08bsKBVmt9u1YcMG12sfHx8T01Rcbm6u7r77bnXr1k2pqalq0KCBjh07pqCgILOjGZKenq7i4mLX6x9++EF33nmnBg4caF6oCnrhhRe0fPlypaSkKDIyUl9//bXi4+Pl6+urxx9/3Ox4hj3yyCP6+uuvlZKSombNmmn16tUaOHCgdu7cqaZNm5odr4zr9djixYuVnJys5ORk2e12LViwQIMGDdLu3btVt27da45tqc/JN2vWTAsWLNDIkSPNjlJpBQUFat68ud58803dc889ZseplJYtW2rWrFkaNWqU2VEqJC8vTz179tTixYu1YMECRUZGauHChWbHMiQxMVHr16/Xjh07zI5SaXPmzNG2bdu8/kjQFUlJSXrxxRd16NAh1a5d2+w4howYMUL169fXyy+/7Jo2YcIEnT9/XqtXrzYxmXGFhYUKCQnRypUrFRsb65res2dP9e7dWzNnzjQx3fX9usecTqciIiI0btw4TZ06VdLP22i32/Xss89e9++s1x+ut5qCggKVlJQoMDDQ7CgVVlxcrLVr1+rixYvq0qWL2XEqbPLkyRowYIB69uxpdpRKycrKUuvWrdW+fXuNHj1aWVlZZkeqkPfff19RUVEaNWqUwsPD9fvf/16vvPKKnE7v2w9xOp365z//qREjRnhNwUtSt27dtHXrVn377beSpEOHDikjI0O9e/c2OZlxly9fVnFxsWrVqlVqur+/v1f+J/jYsWPKzs5Wr169XNP8/f3VvXt37dq167rf7/WH661mxowZateunVeV5Ndff62YmBgVFRUpICBAb7zxhtcd7l6xYoWOHDmiZcuW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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t2 = pd.DataFrame({'symmetric':symmetric})\n", "\n", "mean_s = np.mean(symmetric)\n", "\n", "unit = ''\n", "\n", "fig, ax = plt.subplots(figsize=(7,5))\n", "\n", "ax.hist(t2, bins=np.arange(1.5, 4.6, 1), density=True, color='blue', alpha=0.8, ec='white', zorder=5)\n", "\n", "ax.scatter(mean_s, -0.009, marker='^', color='darkblue', s=60, zorder=15).set_clip_on(False)\n", "\n", "y_vals = ax.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'symetric'\n", "\n", "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.xlim(1, 10)\n", "\n", "plt.ylim(-0.05, 0.5)\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.title('');\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(symmetric)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.percentile(symmetric, 50, interpolation='nearest')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, **for symmetric distributions, the mean and the median are equal.**\n", "\n", "What if the distribution is not symmetric? Let's compare `symmetric` and `not_symmetric`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "tags": [ "remove_input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApUAAAFJCAYAAADKRdZuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA1TElEQVR4nO3de1xUdeL/8fcAchHRcRXxhjeYVFzvrhrWt1aLvHyLvKdu+fUuaRulqJRWai6p2GaJrK32XUxtvdFmdlsrMrxmuRZbariK9yBUUFBAmPn90df5hYgOzgzD4Ov5ePDIOedwPu8PF313zpxzDDk5ORYBAAAAdvBwdQAAAAC4P0olAAAA7EapBAAAgN0olQAAALAbpRIAAAB2o1QCAADAbpRKAAAA2M1lpTIuLk5Go7HUx1133WVdb7FYFBcXpzZt2qhhw4YaMGCADh486Kq4AAAAuAmXHqk0mUw6fPiw9WPXrl3WdUuXLlVCQoIWLlyozz//XIGBgRo4cKAuXbrkwsQAAAC4EZeWSi8vLwUFBVk/6tevL+mXo5SJiYmKjo5WZGSkwsLClJiYqLy8PG3atMmVkQEAAHADLi2VGRkZatu2rTp06KCxY8cqIyNDknT8+HFlZmaqd+/e1m39/PwUHh6uvXv3uigtAAAAyuPlqoG7deum5cuXy2QyKTs7W4sXL1ZERIT27NmjzMxMSVJgYGCpzwkMDNTZs2ddERcAAAA34bJS+eCDD5Z63a1bN3Xq1Enr1q3T7373O0mSwWAotY3FYimzDDdXdPmkii+fcHUMu3nVbCbvmsGujgEAAMrhslJ5vVq1aqlNmzY6evSo/vu//1uSlJWVpaZNm1q3yc7OLnP0EjdXfPmELhye4uoYdqvbOoFSCQBAFVZl7lNZUFCg9PR0BQUFqXnz5goKClJKSkqp9bt371aPHj1cmNKx0tPTXR3BIcxms6sjOER1+X4wj6qjOsxBYh4AbOOyI5WzZ89W37591bRpU+t7Ki9fvqwRI0bIYDAoKipKS5YskclkUmhoqOLj4+Xv768hQ4a4KjIAAADK4bJSeebMGY0fP17nzp1T/fr11a1bN23btk3NmjWTJD399NO6cuWKYmJilJOTo65duyo5OVkBAQGuigwAAIByuKxUvvXWWzddbzAYFBsbq9jY2EpKBAAAgNtVZd5TCQAAAPdVZa7+BgAAla+4uFj5+fmujgE34OXlJX9///LXV2IWAABQhRQXF+vSpUsyGo3cBxq3lJ+fr8LCQvn4+NxwPae/AQC4Q+Xn51MoYbOaNWuqoKCg3PWUSgAA7mAUStjqVj8rlEoAAADYjVIJAABQyeLi4nT33Xe7OoZDcaEOAAAo5ezZAp0+XXlXhDdp4q9GjXwrbTxnad++vSZOnKinnnrqlts+9dRTmjRpUiWkqjyUSgAAUMrp0/maPv3LShsvPv6/qkWptIXZbJbFYlGtWrVcHcXhOP0NAADczs6dO/XAAw+oSZMmatasmfr06aO0tDQFBwfrvffeK7VtSkqK6tevr6ysLB0/flxGo1GbN29W//791bBhQ917773697//rR9++EERERFq3Lix+vbtq4yMjFL7+eijj3TfffcpKChIHTp00Pz581VUVCRJGjBggE6ePKk5c+bIaDTKaDRKktauXasmTZron//8p+6++24FBgbq8OHDNzz9vW7dOoWHh6tBgwYymUyKiopy2tfPGSiVAADArRQXF2vkyJHq2bOnduzYoU8//VSTJ0+Wt7e3Bg8erDVr1pTafs2aNXrooYfUoEED67K4uDhFR0fryy+/VJ06dTRhwgTNmDFDs2fP1meffaaCggLNnDnTuv1nn32miRMnasKECdqzZ4+WLVum9957T/PmzbOO0aRJE82YMUOHDx/W4cOHrZ9bUFCg+Ph4/fnPf9bevXsVHBxcZk7/+7//q2eeeUYjR47Uzp07tXHjRrVt29bRXzqn4vQ3AABwK5cuXVJubq769u2rli1bSpLuuusuSdLo0aP1wAMP6MyZM2rcuLFycnL0wQcf6G9/+1upfUyZMkURERGSpKlTp+qxxx7T6tWr9V//9V+SZC2Z18THx+upp57SH/7wB0lSy5Yt9dJLL2nSpEmaP3++6tatKw8PDwUEBCgoKKjUWCUlJVq0aJE6depU7pwWL16sqKgoTZ061brsZttXRRypBAAAbqVu3boaOXKkBg8erGHDhmnZsmU6deqUJKlz584KCwvTO++8I0nauHGjjEajHnzwwVL7aNeunfXP145gXr8sPz9fly9fliR9++23WrJkiZo0aWL9mDBhgvLz85WZmXnTvF5eXmrfvn2563/++WedOXNG9913XwW+ClUPpRIAALid5cuX69NPP1V4eLg++ugjdevWTZ999pkk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21slJSUV2q/BYFD37t01a9YspaSkqFGjRnr33Xet60ePHq3U1FStXLlSeXl5GjRokF3zaNCggRo3bqxjx46pVatWZT6uqVGjRoXnIv3y9gEfHx9t377drpzX8J5KAABQrYSEhKh///565pln9Nprr6lOnTqaP3++AgICNHToUElSs2bNVFBQoJSUFHXo0EF+fn6qWbNmufvct2+fvvjiC/Xp00eBgYH67rvvdPr0aWtJlX55X2fPnj31wgsvaNCgQapdu7bdc5k1a5ZmzJihOnXqKCIiQlevXtW3336rs2fP6tlnn7XOZfv27erVq5d8fHxkNBpt2ndAQIAmT56suXPnytvbW7169dL58+d14MABjRs3rsJZOVIJAACqneXLl6tLly4aMWKE+vTpoytXrmjTpk3y8/OTJPXo0UNjx47VuHHjFBISUuaCmuvVrl1be/fu1fDhw9W1a1fNnj1bMTExZZ5O8/jjj6uoqOiGp75vxxNPPKFly5Zp/fr1uueee9SvXz8lJSWpefPm1m1efvllpaamql27drr33nsrtP8XX3xR0dHRWrx4sbp3764nnnhCZ86cua2shpycHOfcVh23lJ6eLpPJ5NQxLmfv1IXDU5w6htlsloeHc///pG7rBNWs38upY1TG96MyMI+qozrMQWIe1Vlubu4Nb4Z9JzxRx1lee+01vf322/rmm29cHcUpyvuZkTj9DQAArlNkblS5T7gxV95QzpKXl6f09HT95S9/0bRp01wdxyUolQAA4I63a9cu6/stb+RWzwiPiYnR5s2b1a9fP40ZM8bR8dwCpRIAANzxOnfurNTU1Nv+/MTERCUmJjowkfupMhfqLFmyREajUTExMdZlFotFcXFxatOmjRo2bKgBAwZYn9sJAADgKH5+fje8bc/1t+9B+apEqdy3b5+SkpLK3Bl/6dKlSkhI0MKFC/X5558rMDBQAwcO1KVLl1yUFAAAADfi8lKZm5urCRMm6I033ih1XyWLxaLExERFR0crMjJSYWFhSkxMVF5enjZt2uS6wAAAACjD5aXyWmm8/rmTx48fV2Zmpnr37m1d5ufnp/DwcO3du7eyYwIAUC05+lF9qL5u9bPi0gt1kpKSdPToUa1YsaLMuszMTElSYGBgqeWBgYE6e/ZspeQDAKA68/f3V05OjoxG420/Ext3jsuXL8vX17fc9S4r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gN0olQAAALAbpRIAAAB2o1QCAADAbpRKAAAA2I1SCQAAALtRKgEAAGA3SiUAAADsRqkEAACA3SiVAAAAsBulEgAAAHajVAIAAMBulEoAAADYjVIJAAAAuxlycnIsrg4BAAAA98aRSgAAANiNUgkAAAC7USoBAABgN0olAAAA7EapBAAAgN0olZXs1Vdf1e9//3sFBwcrJCREw4cP1w8//ODqWBX217/+VeHh4QoODlZwcLAefPBBffLJJ66OZZclS5bIaDQqJibG1VEqJC4uTkajsdTHXXfd5epYt+Wnn37S5MmTFRISoqCgIPXo0UM7duxwdawKad++fZnvh9Fo1LBhw1wdrUJKSkr08ssvq0OHDgoKClKHDh308ssvq7i42NXRKuzSpUuaNWuWfvvb36phw4aKiIjQ/v37XR0LqHa8XB3gTrNjxw6NGzdOXbp0kcVi0Z/+9Cc9+uij2rt3r+rWrevqeDZr3Lix5s6dq5CQEJnNZr3zzjsaNWqUvvjiC/32t791dbwK27dvn5KSktSuXTtXR7ktJpNJW7dutb729PR0YZrbk5OTo4ceekg9e/bUhg0bVK9ePR0/flyBgYGujlYhKSkpKikpsb7+6aefdP/99+vRRx91Xajb8Nprr2nlypVKTExUWFiYvv/+e0VFRcnb21szZsxwdbwK+eMf/6jvv/9eiYmJatKkidavX69HH31Ue/bsUePGjV0dD6g2KJWVLDk5udTrFStWqFmzZtqzZ4/69evnolQVN2DAgFKv58yZo1WrVmnfvn1uVypzc3M1YcIEvfHGG1q0aJGr49wWLy8vBQUFuTqGXV5//XU1bNhQK1assC5r0aKF6wLdpvr165d6/fbbbysgIMDtSuVXX32lvn37Wv9eat68ufr166dvvvnGxckq5sqVK9qyZYtWr16te++9V5IUGxurjz/+WG+99ZZmz57t4oRA9cHpbxfLy8uT2WyW0Wh0dZTbVlJSos2bNys/P1/du3d3dZwKi46OVmRkpO677z5XR7ltGRkZatu2rTp06KCxY8cqIyPD1ZEq7IMPPlDXrl01ZswYhYaG6p577tGbb74pi8V9n89gsVj09ttva/jw4apZs6ar41RIz549tWPHDv3444+SpEOHDik1NVUPPvigi5NVTHFxsUpKSuTr61tquZ+fn3bv3u2iVED1xJFKF5s1a5bat2/vlmXs+++/V0REhAoKCuTv7681a9a43enjpKQkHT16tNTRMXfTrVs3LV++XCaTSdnZ2Vq8eLEiIiK0Z88e/eY3v3F1PJtlZGRo1apVevLJJxUdHa20tDTNnDlTkjRx4kQXp7s9KSkpOn78uB5//HFXR6mw6Oho5eXlqUePHvL09FRxcbGmT5+u8ePHuzpahQQEBKh79+6Kj49X27ZtFRQUpE2bNumrr75Sq1atXB0PqFYolS703HPPac+ePfr444/d8j1wJpNJqampys3N1ZYtWxQVFaWtW7cqLCzM1dFskp6ernnz5umjjz6St7e3q+PctuuPHHXr1k2dOnXSunXrNHXqVBelqjiz2azOnTvrxRdflCR17NhRR48e1cqVK922VCYlJalLly7q0KGDq6NUWHJysv7+979r5cqVatOmjdLS0jRr1iw1a9ZMTzzxhKvjVciKFSs0ZcoUhYWFydPTUx07dtSQIUP07bffujoaUK1QKl0kNjZWycnJev/9993yfWOS5O3tbf0//c6dO2v//v1avny5li1b5uJktvnqq6907tw53X333dZlJSUl2rVrl9566y2dOXNGPj4+Lkx4e2rVqqU2bdro6NGjro5SIUFBQWrdunWpZXfddZdOnTrlokT2+fnnn/Xhhx8qPj7e1VFuywsvvKCpU6dq8ODBkqR27drp5MmT+vOf/+x2pbJly5b68MMPlZ+fr0uXLqlhw4YaM2aMmjdv7upoQLVCqXSBmTNnKjk5WVu3bnXbW7/ciNlsVlFRkatj2GzAgAHq3LlzqWVTpkxRSEiInn32Wbc9ellQUKD09HTrRQnuomfPnjpy5EipZUeOHFFwcLCLEtln3bp18vHx0aBBg1wd5bZcvny5zBkUT09Pmc1mFyWyn7+/v/z9/ZWTk6PPPvtM8+bNc3UkoFqhVFay6dOna/369VqzZo2MRqMyMzMl/fKXXa1atVycznYvvfSSIiIi1KRJE+Xl5WnTpk3asWOHNmzY4OpoNrt2/8Bfq1mzpurWres2p/Alafbs2erbt6+aNm1qfU/l5cuXNWLECFdHq5Ann3xSERERio+P16BBg/Tdd9/pzTff1Jw5c1wdrcIsFotWr16tQYMGKSAgwNVxbkvfvn312muvqXnz5mrTpo2+++47JSQk6LHHHnN1tAr77LPPZDabZTKZdOzYMc2ZM0cmk0mjRo1ydTSgWqFUVrKVK1dKkiIjI0stnzlzpmJjY10R6bZkZmZq4sSJysrKUu3atdWuXTtt2rRJffr0cXW0O86ZM2c0fvx4nTt3TvXr11e3bt20bds2NWvWzNXRKqRLly5au3at5s2bp8WLF6tp06Z67rnn3O7CEElKTU3Vf/7zH7355puujnLbFi1apAULFmjatGnKzs5WUFCQRo8e7Xb3qJSkixcvau7cuTpz5ozq1q2rRx55RLNnz1aNGjVcHQ2oVgw5OTnue78OAAAAVAncpxIAAAB2o1QCAADAbpRKAAAA2I1SCQAAALtRKgEAAGA3SiUAAADsRqkEAACA3SiVAAAAsBulEgAAAHb7f+sAFi6tvfq3AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t3 = pd.DataFrame({'not_symemtric':not_symmetric})\n", "\n", "mean_s = np.mean(symmetric)\n", "\n", "unit = ''\n", "\n", "fig, ax = plt.subplots(figsize=(7,5))\n", "\n", "ax.hist(t2, bins=np.arange(1.5, 9.6, 1), density=True, \n", " color=('darkblue'), \n", " label='symetric', \n", " alpha=0.8, \n", " ec='white', \n", " zorder=5)\n", "\n", "ax.hist(t3, bins=np.arange(1.5, 9.6, 1), density=True, \n", " color=('gold'), \n", " label='not_symetric', \n", " alpha=0.8, ec='white', \n", " zorder=5)\n", "\n", "ax.legend()\n", "\n", "ax.scatter(mean_s, -0.009, marker='^', color='darkblue', \n", " s=60, \n", " zorder=15).set_clip_on(False)\n", "\n", "ax.scatter(mean_ns, -0.009, marker='^', color='gold', \n", " s=60, \n", " zorder=15).set_clip_on(False)\n", "\n", "y_vals = ax.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = ''\n", "\n", "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylim(-0.05, 0.5)\n", "\n", "plt.ylabel(y_label)\n", "\n", "ax.legend(bbox_to_anchor=(1.04,1), loc=\"upper left\")\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.title('');\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The blue histogram represents the original `symmetric` distribution. The gold histogram of `not_symmetric` starts out the same as the blue at the left end, but its rightmost bar has slid over to the value 9. The darker-gold part is where the two histograms overlap.\n", "\n", "The median and mean of the blue distribution are both equal to 3. The median of the gold distribution is also equal to 3, though the right half is distributed differently from the left. \n", "\n", "But the mean of the gold distribution is not 3: the gold histogram would not balance at 3. The balance point has shifted to the right, to 4.25." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the gold distribution, 3 out of 4 entries (75%) are below average. The student with a below average score can therefore take heart. He or she might be in the majority of the class." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, **if the histogram has a tail on one side (the formal term is \"skewed\"), then the mean is pulled away from the median in the direction of the tail.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example ###\n", "The table `sf2015` contains salary and benefits data for San Francisco City employees in 2015. As before, we will restrict our analysis to those who had the equivalent of at least half-time employment for the year." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "sf2015 = pd.read_csv(path_data + 'san_francisco_2015.csv')\n", "\n", "sf2015 = sf2015[sf2015['Salaries'] > 10000]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we saw earlier, the highest compensation was above \\\\$600,000 but the vast majority of employees had compensations below \\\\$300,000." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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Dmy8wRMRET2nDNo8AEBgYCACAwM1znvyuQsA0KdPHxw4cKDedQ4bNgxpaWn1xvj4+Kg0FE+zf/9+rWOJiIiMmUFPWxAREdHzh80DERERCaJ189C/f398//33dc7/4Ycf0L9/f50kRURERE2X1tc8XL16Fffu3atz/r179+p8oRU1HpGoGbKz5Q1a9v79Gh1nQ0RExkjQBZP13aJ44cIFtGnT5pkTomdTXHwfkZGa3w3yNMuWaX6+BhER0ePqbR4SEhKwc+dO5efPPvsMO3bsUIsrLS3FuXPnMGbMGN1nSERERE1Kvc3DvXv3UFhYqPxcVlaG2tpalRiRSISWLVvC398fERER+smSiIiImox6m4c333wTb775JgCgX79+WLNmDcaPH98oiRHp07NcG9KpUys4ODTshVxERMZA62seTp8+rc88iBrVs1wb8tlnI9g8EJFJE/yEyTt37uD69eu4ffu28lXXj3vllVd0khgRERE1TVo3D7dv38bSpUuxZ88e1NSo39KnUCggEolQUlKi0wSJiIioadG6eXjnnXewb98+vPnmm3jllVdgbW2tx7SIiIioqdK6efjll1+wYMECrF69Wp/5EBERUROn9eOpLSws0KNHD33mQkRERM8BrZsHHx8f/Pzzz/rMhYiIiJ4DWjcPCxcuREFBAYKCgpCVlYWCggL897//VftHRERExk3rax4GDBgAkUiEU6dOITExsc443m1BRERk3LRuHpYsWVLvi7GIiIjINGjdPCxbtkyfeRAREdFzQutrHh5XU1ODkpISPHjwQNf5EBERURMnqHn4/fffMXnyZHTs2BE9e/bEb7/9BgCQy+WYPn06fv31V70kSURERE2H1s1DZmYmxo8fj8uXL+P1119Xea+FjY0N7t69i3/+8596SZKIiIiaDq2bh08++QQ9evRARkYGPvzwQ7X5w4cPR3Z2tk6TIyIioqZH6+bh999/x1//+ldYWlpqvOuiU6dOKCws1GlyRERE1PRo3Tw0a9YMzZrVHV5YWAgrKyudJEVERERNl9bNg5ubG3744QeN86qqqrBr1y54eHjoLDEiIiJqmrRuHhYtWoS0tDSEhYXhzJkzAICCggL88ssvmDRpEi5fvozFixcLTmDr1q3o168f7O3t4enpiaNHj9Ybf/bsWYwfPx5isRiurq6IiopSuXgTAI4cOQJPT0/Y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3377Ldzc3ODs7IykpCT07dtXOf/y5csYOnSoUTwk6vG6AsChQ4ewY8cOHDhwAJaWlpg6dSr8/f2V+69QzXSYKxGAh09xk0qluH79usZ/P/zwg6FT1Jmqqiq1JunTTz/F5MmTMWHCBOTk5BgoM/1o1qyZ8r+WlpYq94m3bt0a5eXlBspMtwYNGoTDhw/j8uXLePXVV3HhwgVDp6RXj36Gq6urlb9sHrG1tUVxcbEh0tK51157DVu2bAEADB8+HN99953K/KSkJPTo0cMAmemfl5cXduzYgXPnzmHx4sVIT09/pmuU+JwH0rn+/fvj9OnTmDRpksb5IpEICoVxHPDq2bMnTp48qfbXaGRkJGprazF79mwDZaZ7Xbp0wcWLF5VXav/0008qF9LduHEDdnZ2BspO99q1a4ft27djx44dGDt2LGpraw2dkt5MmDABZmZmKCsrQ15eHnr37q2cd/36ddjY2BgwO9356KOPMGbMGIwbNw4DBgxAXFwcjh49qrzmITs7G19//bWh09SrF154AW+99RbeeustpKenN3g9bB5I5xYuXIh79+7VOb979+5Gc7HZX/7yF+zevRszZ85UmxcVFYWamhps27bNAJnpXkBAAKqqqpSfH/8FAzxsJoYNG9bYaemdv78/XnnlFWRmZqJjx46GTkfnnrwTqHXr1iqff/jhBwwZMqQxU9Ibe3t7/Prrr/j73/+O77//HgqFAidOnMD169cxePBgrF69Gu7u7oZOUye6dOkCMzOzemMev6ZHKF7zQERERILwmgciIiIShM0DERERCcLmgcgETZgwARMmTDB0GvQU1tbWiIyMNHQaRGrYPBA1Amtra63+aXOl9zfffIO4uLhGyPp/zp49i+DgYLz00kuws7ODo6Mjxo0bh02bNqGioqJRczE2hqgn0bPi3RZEjWDz5s0qn//xj38gOzsbMTExKtMlEslT15WYmIjc3FyEhIToNMe6/POf/8Q777yDDh06YMaMGXB2dsb9+/dx7NgxvP/++/jjjz/w97//vVFyMUb11bOgoADNm/N/09T08KeSqBHMmDFD5fPhw4fx+++/q01varKysvD2229jwIAB2LVrl8r7HhYsWIALFy7gp59+MmCGxk0fLzQi0gWetiBqImpra7F+/XoMGDAAdnZ2cHV1xbvvvouysjJlzIQJE3Dw4EFcu3ZN5XTH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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "unit = ''\n", "\n", "fig, ax = plt.subplots(figsize=(7,5))\n", "\n", "ax.hist(sf2015['Total Compensation'], bins=np.arange(10000, 700000, 25000), density=True, color=('darkblue'),\n", " alpha=0.8, ec='white', zorder=5)\n", "\n", "y_vals = ax.get_yticks()\n", "\n", "y_label = 'Percent per ' + (unit if unit else 'unit')\n", "\n", "x_label = 'Total Compensation'\n", "\n", "ax.set_yticklabels(['{:g}'.format(x * 100) for x in y_vals])\n", "\n", "plt.ylabel(y_label)\n", "\n", "plt.xlabel(x_label)\n", "\n", "plt.xticks(rotation=90)\n", "\n", "plt.title('');\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This histogram is skewed to the right; it has a right-hand tail. \n", "\n", "The mean gets pulled away from the median in the direction of the tail. So we expect the mean compensation to be larger than the median, and that is indeed the case." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "110305.79" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compensation = sf2015['Total Compensation']\n", "np.percentile(compensation, 50)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "114725.98411824208" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(compensation)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Distributions of incomes of large populations tend to be right skewed. When the bulk of a population has middle to low incomes, but a very small proportion has very high incomes, the histogram has a long, thin tail to the right. \n", "\n", "The mean income is affected by this tail: the farther the tail stretches to the right, the larger the mean becomes. But the median is not affected by values at the extremes of the distribution. That is why economists often summarize income distributions by the median instead of the mean." ] } ], "metadata": { "anaconda-cloud": {}, "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.6.12" } }, "nbformat": 4, "nbformat_minor": 1 }