{ "cells": [ { "cell_type": "markdown", "id": "e009309b", "metadata": {}, "source": [ "# Descriptive Statistics\n", "\n", "An arbitrary distribution function $h(x)$ can be characterized by it's \"location\" parameters, \"scale\" parameters, and \"shape\" parameters. These parameters are known as descriptive statistics. \"When these parameters are based on the distribution $h(x)$ itself, we talk about population statistics; when based on a finite-size data set sampled from $h(x)$, they are called sample statistics.\"" ] }, { "cell_type": "markdown", "id": "c05de8cf", "metadata": {}, "source": [ "## Definitions of descriptive statistics\n", "\n", "**Arithmetic mean (expectation value):** a location parameter that quantifies where most of the probability density is located.\n", "\n", " $$\\mu = E(x) = \\int_{-\\infty}^\\infty x h(x)\\:d x$$\n", "\n", "**Variance:** a scale parameter that quantifies how wide a distribution is, calculated by the average of the squared differences from the mean.\n", "\n", " $$ V = \\int_{-\\infty}^\\infty (x-\\mu)^2 h(x)d x$$\n", " \n", "**Standard deviation:** the square root of variance; it's a scale sometimes preferred over variance since it's units are the same as that of the mean rather than units$^2$.\n", "\n", " $$\\sigma = \\sqrt{V}$$\n", " \n", "**Skewness:** a shape parameter that quantifies how asymmetric a distribution is. Symmetric distributions, such as uniform, Gaussian, and Laplace distributions, have no skewness.\n", "\n", " $$ \\Sigma = \\int_{-\\infty}^\\infty \\bigg(\\frac{x-\\mu}{\\sigma}\\bigg)^3 h(x) d x$$\n", "\n", "**Kurtosis:** a shape parameter that quantifies the \"tailedness\" (the weight of a distribution's tails relative to the center) of a probability distribution. Highly peaked (“leptokurtic”) distributions have positive kurtosis, and flat-topped (“platykurtic”) distributions have negative kurtosis. The Gaussian distribution is \"mesokurtic\", meaning it has zero kurtosis.\n", "\n", " $$K = \\int_{-\\infty}^\\infty\\bigg(\\frac{x-\\mu}{\\sigma}\\bigg)^4 h(x) d x -3$$\n", " \n", "*Note: the definition that the textbook uses is sometimes called \"excess kurtosis\" in other sources.*\n", "\n", "**Absolute deviation about d:** the average distance between each data point and the mean. When taken about the median, the absolute deviation is minimized.\n", "\n", " $$\\delta = \\int_{-\\infty}^\\infty |x-d|h(x) dx$$\n", " \n", "**Mode:** a location parameter that corresponds to the most probable values, which occur where the derivative is zero (i.e. peaks). However, this isn't the most reliable location parameter; \n", "it can be misleading distributions with multiple sharp but narrow peaks. It can also be hard to estimate from samples.\n", "\n", " $$ \\bigg(\\frac{dh(x)}{dx}\\bigg)_{x_m} =0$$\n", "\n", "**Percent quantiles:** segments dividing the range of a probability distribution into continuous intervals with equal probabilities. The most often used quantiles are the median, $q_{50}$, and the first and third quartile, $q_{25}$ and $q_{75}$. The difference between the third and the first quartiles is called the interquartile range. \n", "\n", " $$\\frac{p}{100} = \\int_{-\\infty}^{q_p}h(x)dx$$" ] }, { "cell_type": "markdown", "id": "879d7054", "metadata": {}, "source": [ "---\n", "\n", "*Note: The higher a moment is, the harder it is to estimate it with small samples. Furthermore, there is more sensitivity to outliers (less robustness); for these reasons, higher-order moments, such as skewness and kurtosis, should be used with caution when samples are small.*\n", "\n", "*Additionally, some distributions, such as the Cauchy distribution, do not have finite variance. So, when the distribution’s variance is infinite (i.e., the tails of $h(x)$ do not decrease faster than $x$−3 for large $|x|$), the skewness and kurtosis will diverge as well.*\n", "\n", "-----" ] }, { "cell_type": "markdown", "id": "eb342bdf", "metadata": {}, "source": [ "In the example below, we'll show distributions with different skewness (top panel) and kurtosis (bottom panel). In the top panel, we'll plot a Gaussian, a modified Gaussian, and a log-normal distribution with $\\sigma = 1.2$. The modified Gaussian is a normal distribution multiplied by a Gram-Charlier series $ h(x) = N(\\mu,\\sigma)\\sum_{k=0}^\\infty a_k H_k(z)$ with $a_0 = 2$, $a_1 = 1$, and $a_2 = 0.5$. For the kurtosis panel, we'll plot a uniform, Laplace, cosine, and Gaussian distribution. \n", "\n", "\n", "We can find the values for skewness and kurtosis for each distribution by importing the desired distribution from`scipy.stats`. For example, we can call `from scipy.stats import uniform` and then call `uniform.stats(moments='sk')` to get the skewness and kurtosis for a uniform distribution. For the modified Gaussian however, we will hard-code $\\Sigma = -0.36.$" ] }, { "cell_type": "code", "execution_count": 1, "id": "cf954c62", "metadata": {}, "outputs": [], "source": [ "from scipy.stats import uniform, norm, laplace, cosine, lognorm\n", "\n", "uni = float(uniform.stats(moments = 'k'))\n", "lap = int(laplace.stats(moments = 'k'))\n", "cos = float(cosine.stats(moments = 'k'))\n", "log = float(lognorm.stats(1.2, moments = 's'))\n", "\n", "gauss = norm.stats(moments = 'sk')\n", "skew_gauss = int(gauss[0])\n", "kurt_gauss = int(gauss[1])" ] }, { "cell_type": "markdown", "id": "46e1924a", "metadata": {}, "source": [ "Next, we'll plot the distributions." ] }, { "cell_type": "code", "execution_count": 2, "id": "e67477ea", "metadata": {}, "outputs": [ { "data": { "image/png": "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Yn1Iz118aOLEiRrQ/fv3j/L65ZkzZ3T58uU1oD///HPprRvhn3/+0UCSX9rWEp49e6YLFCig06RJoy9dumS2dt4tcWyua/xxNWrUKJ0lSxYdHBystdZ68eLFevny5frZs2cWjszykJ67SG4WLlzId999R5s2bZg2bVqkt/xMnDiRMmXKcPv2bVasWMGGDRukt24EWRXOfNKnT8+OHTuwt7fns88+4/r162Zpx87OjsDAQLp27crUqVPN0kZcjB49mps3b2JlFZqyZs6cyZdffknGjBn59NNP+emnnzh8+LDcsRGOJHeRJC1atIju3btTt25dlixZYvhQeEdrbZhZrVixYvTo0QN3d3e++OILs933m1TJwjHmlSdPHvbs2UNgYCC1atXi9u3bZmnH2toaLy8vBg0axB9//GGWNuIi/KJOx44d47///mPUqFEA/PTTT1SpUoU0adJQr149JkyYwIULFywVasIQUXc+sT7ktLzQWutFixZppZSuU6eO9vHx+Wj/pUuXdN26dfWPP/5ogeiSnk2bNmlAZqgzs7Nnz+q0adPqXLlyme22MT8/P92gQQOtlNJLly41Sxvm4OnpqdevX6/79eunixYtqgE9ZMgQrXXoa5o8ebK+deuWhaM0D2S0vEgO5s6dG2lif/bsme7Tp4+2trbWLi4uevbs2RaKMmlZv369BvS5c+csHUqSd/LkSZ0mTRqdNWtWs12D9/Hx0bVq1dJWVlZ61apVZmnD3B4/fmwYN3Ps2DEN6L/++ktrHfolafDgwXrDhg360aNHlgzTJCS5iyQtJCREjx49WgO6YcOGHyX29evXaxcXF21tba379u0rA3FMaPXq1Row64Av8f8uXLigs2TJotOmTWu2W8W8vb113bp19T///GOW+uPbo0ePDLf6/fnnn9re3t5wy13u3Ln1F198oadOnar379+vvby8LBytcSS5iyQrMDBQ9+7d2zCrV0BAgNZa66CgIP3q1Suttdbnzp3TjRo1kgRkBsuXL9eAdnd3t3QoycbNmzd17ty5taOjo968ebNZ2gg/cv7kyZNmacNS/Pz89NGjR/WUKVN0y5YtdbZs2QzJXimlCxYsaJjF8tGjR/r169cWjjhyktxFkvTixQtdp04dDeihQ4fqkJAQHRISojdu3KiLFSumv/zyS0uHmOQtXrxYAzJDXTx78OCBLlOm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eHL6CK4g4+RewG3cuJEGDhxIjo6Osj+ovn37ElHap+vDhw9TdHS0SmP4999/adKkSRneTJKSkmjlypVUsmRJEkLQoEGD6N27d7lyvb179xKATLNwMZbfXLhwgdatW5dr9Z09e5aqVq1KAKhBgwZ06dKlDMffvXtH1apVIz09vWw7432LoKAgWrNmDfXs2ZMmT55MRGmJvVSpUtS4cWMaP3487dmzh169esV39wpwci8APn78SFevXqXVq1fTkCFDaNSoUbJjjo6OZGFhQa6urjRr1iw6deqUws41uenDhw906tSpTPuTk5Npw4YNsskxXFxccr3jm0QioYSEBL4LYEwOiURCa9eupZIlSxIAateuXYbn8VFRUdSsWTMCQPPnz1dbco2NjaXff/+d6tatS/r6+rKbkZkzZ8qO79ixgwIDAznhEyd3rZKYmEh37tyh/fv3y/YNGDCA9PT0ZH8I5ubm5O7uLjseFham9iT35MkT+u6778jCwkLWKhAREUFz586VdbSpVasWHT58mP9IGctCREQEvXjxQiV1x8bG0syZM8nS0pIAULNmzWjv3r0kkUgoMTGRunbtSgDo559/VvvwtoSEBDp//jwtX76crl27RkRpIwfS3+fMzMyoXr16NGDAALp79y4RpXUgLEjvJ5zc85mUlBR69uyZLCHv2rWLOnbsSBUrVpR1eNPV1ZU9F1+3bh1NmDCBdu7cSUFBQRr/5d6+fTuZmpqSpaUlnT59mk6fPk39+/enwoULEwBq0aIFBQQEqDTOhw8f0vTp0/mZO8v3xo0bR0ZGRiq9RlxcHC1atEi2FoStrS3NmDGDQkJCaMqUKQRA1nSuSUlJSXTt2jVas2YNDRs2jJo1a0YlSpSQtTps27aNTExMqE6dOtSnTx+aOnUqeXt752iOjPxEUXIXace0Q61atejatWuaDkMpEokEb968QfHixWFoaIhLly5h06ZNePbsGYKCghAcHAyJRILg4GCUKVMGXl5e+Pfff+Hk5JThVblyZejq6mr625GJj4/HuHHjsGrVKlStWhXNmzfHvn37EBQUBBMTE3Tr1g0jRozA999/r/JY/P390blzZ9y6dUst12NMVa5du4aHDx+iT58+Kr9WSkoK9u/fj1WrVuH48ePQ0dFBkyZNULVqVfz++++ws7NDREQELCwsIIRQeTzKIiIIIXDlyhVs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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from scipy import stats\n", "from matplotlib import pyplot as plt\n", "\n", "fig = plt.figure(figsize=(7.5, 10))\n", "fig.subplots_adjust(right=0.95, hspace=0.05, bottom=0.07, top=0.95)\n", "\n", "# First show distributions with different skeq\n", "ax = fig.add_subplot(211)\n", "x = np.linspace(-8, 8, 1000)\n", "N = stats.norm(0, 1)\n", "\n", "l1, = ax.plot(x, N.pdf(x), '-k',\n", " label='Gaussian, $\\Sigma={}$'.format(skew_gauss))\n", "l2, = ax.plot(x, 0.5 * N.pdf(x) * (2 + x + 0.5 * (x * x - 1)),\n", " '--k', label= 'mod. Gauss, $\\Sigma=-0.36$')\n", "l3, = ax.plot(x[499:], stats.lognorm(1.2).pdf(x[499:]), '-.k',\n", " label='log normal, $\\Sigma={}$'.format(round(log,1)))\n", "\n", "ax.set_xlim(-5, 5)\n", "ax.set_ylim(0, 0.7001)\n", "ax.set_ylabel('$p(x)$', fontsize = 12)\n", "ax.xaxis.set_major_formatter(plt.NullFormatter())\n", "\n", "# trick to show multiple legends\n", "leg1 = ax.legend([l1], [l1.get_label()], loc=1, fontsize = 12)\n", "leg2 = ax.legend([l2, l3], (l2.get_label(), l3.get_label()), loc=2, fontsize = 12)\n", "ax.add_artist(leg1)\n", "ax.set_title('Skew $\\Sigma$ and Kurtosis $K$', fontsize = 16)\n", "\n", "# next show distributions with different kurtosis\n", "ax = fig.add_subplot(212)\n", "x = np.linspace(-5, 5, 1000)\n", "l1, = ax.plot(x, stats.laplace(0, 1).pdf(x), '--k',\n", " label='Laplace, K={}'.format(lap))\n", "l2, = ax.plot(x, stats.norm(0, 1).pdf(x), '-k',\n", " label='Gaussian K={}'.format(kurt_gauss))\n", "l3, = ax.plot(x, stats.cosine(0, 1).pdf(x), '-.k',\n", " label='Cosine, K=-0.59'.format(round(cos,2)))\n", "l4, = ax.plot(x, stats.uniform(-2, 4).pdf(x), ':k',\n", " label='Uniform, K=-1.2'.format(uni))\n", "\n", "ax.set_xlim(-5, 5)\n", "ax.set_ylim(0, 0.55)\n", "ax.set_xlabel('$x$', fontsize = 12)\n", "ax.set_ylabel('$p(x)$', fontsize = 12)\n", "\n", "# trick to show multiple legends\n", "leg1 = ax.legend((l1, l2), (l1.get_label(), l2.get_label()), loc=2, fontsize = 12)\n", "leg2 = ax.legend((l3, l4), (l3.get_label(), l4.get_label()), loc=1,fontsize = 12)\n", "ax.add_artist(leg1)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a80c7965", "metadata": {}, "source": [ "Note that the highly peaked Laplace distribution has positive kurtosis while the flat-topped uniform distribution has negative kurtosis. As for skew, the modified distribution with a longer tail on the left has a negative skew, whereas the log-normal distribution with a longer tail on the right has a positive skew." ] }, { "cell_type": "markdown", "id": "aef1892f", "metadata": {}, "source": [ "### Useful NumPy and SciPy functions\n", "\n", "The cell below computes multiple statistical functions on a one-dimensional array **x**." ] }, { "cell_type": "code", "execution_count": 3, "id": "c38e9084", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy.stats\n", "x = np.random.random(100) # 100 random numbers \n", "\n", "q25, q50, q75 = np.percentile(x, [25, 50, 75])\n", "mean = np.mean(x)\n", "median = np.median(x) \n", "variance = np.var(x) \n", "standard_deviation = np.std(x)\n", "skew = scipy.stats.skew(x)\n", "kurtosis = scipy.stats.kurtosis(x)\n", "mode = scipy.stats.mode(x)" ] }, { "cell_type": "markdown", "id": "553c2d49", "metadata": {}, "source": [ "## Data-based estimates of descriptive statistics" ] }, { "cell_type": "markdown", "id": "ac6810f9", "metadata": {}, "source": [ "Any of these quantities can be estimated directly from data, in which case they are called sample statistics (instead of population statistics). Assume we are given $N$ measurements, $x_i$, where $i$ ranges from 1 to $N$. In general, when estimating the above quantities for a sample of N measurements, the integrals of the form $\\int_{-\\infty}^{\\infty} g(x)h(x)dx$ become $\\frac{1}{N} \\sum_{i=1}^N g(x_i)$." ] }, { "cell_type": "markdown", "id": "5e9be742", "metadata": {}, "source": [ "For example, the equation for the arithmetic mean, $\\mu = \\int_{-\\infty}^\\infty x h(x)\\:dx $ becomes\n", "\n", "$$ \\overline{x} = \\frac{1}{N} \\sum_{i=1}^{N} x_i, $$\n", "\n", "and the equation for standard deviation, $ \\sigma = \\sqrt{V} = \\sqrt{\\int_{-\\infty}^\\infty (x-\\mu)^2 h(x)d x}$ becomes\n", "\n", "$$ s = \\sqrt{\\frac{1}{N-1}\\sum_{i=1}^{N}(x_i - \\overline{x})^2} $$\n", "\n", "when working with sample statistics. The reason for the $(N-1)$ term instead of $N$ is related to the fact that $\\overline{x}$ also comes from data. By replacing $N$ with $N-1$, the sample variance $s^2$ becomes unbiased (and the sample standard deviation becomes less biased) -- this is known as Bessel's correction.\n", "\n", "When we say bias, we mean that if we drew a large number of samples and calculated the uncorrected sample standard deviation, we would notice that each sample would underestimate the population variance. The amount that it's underestimated depends on the size of $N$: 20% for $N=2$, 3% for $N = 10$, and less than 1% for $N \\gt 30$. As $N \\rightarrow \\infty$, the percentage goes to zero.\n", "\n", "We use different symbols in the above two equations ($\\overline{x}$ and $s$) rather than $\\mu$ and $\\sigma$ because the latter represents the “truth” (they are definitions based on the true $h(x)$, whatever it may be); the former are simply estimators of that truth based on a finite-size sample ($\\hat{x}$ is often used instead of $x$). These estimators have a variance and a bias, and often they are judged by comparing their mean squared errors,\n", "\n", "$$\\text{MSE} = V + \\text{bias}^2 $$\n", "\n", "where $V$ is the variance, and the **bias** is defined as **the expectation value of the difference between the estimator and its true (population) value.** Estimators whose variance and bias vanish as the sample size goes to infinity are called consistent estimators." ] }, { "cell_type": "markdown", "id": "ff0e4758", "metadata": {}, "source": [ "We can demonstrate Bessel's correction by generating a bunch of $N = 5$ samples from a standard Gaussian and calculating the uncorrected sample standard deviation for each set of 5. A histogram of the uncorrected sample standard deviations should have a mean noticeably below 1, while the corrected sample standard deviation should have a mean closer to 1. To calculate the corrected and uncorrected samples, we can use `np.std`; for the corrected sample, we can set `ddof = 1` whereas for the uncorrected sample, `numpy` defaults `ddof = 0`. The divisor used by `numpy` is $N - \\text{ddof}$, where $N$ represents the number of elements." ] }, { "cell_type": "code", "execution_count": 4, "id": "ddef003c", "metadata": {}, "outputs": [ { "data": { "image/png": "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/fp1+not5iQpW7x4MbNmzeLRRx9l8ODBjBs3jp122on6+nrq6txdvvbaa6xZs4YlS5Zw2WWX0bdvXyZMmMDkyZMZMGBArcOTJHWiVatWcc899zBnzhzWrFnD+PHjGTNmDP379++SoqW7W79+PWvWrOHll1/mgQce4Le//S0777wzEydOZOzYsZ22Xn+dSBIwb948rrnmGg444ACmTJnCNttsU+uQuq099tiDgw8+mGeeeYb777+fX/7yl5x00kkMHDiw1qFJkjrBqlWrmDFjBjvssAOHH344I0aM8MqMzZg8eTKrV69m7ty53HjjjSxfvpx99923U9ZlMSep12so5I477jhGjhxZ63BKISIYPnw4w4cP5/bbb+fCCy+0oJOkHqihkBs7diwHHXSQRVwr9e/fn7322ovRo0dz4YUXAnRKQecDUCT1as8//zy/+c1vLOSqcMABB7DXXnvxq1/9ipRSrcORJHWgyy67jDFjxljItdOgQYM46aSTuPPOO3nsscc6fPkWc5J6tYcffpg99tjDQq5K+++/P6+//jpLliypdSiSpA7y/PPP88ILL1jIVWnQoEEceOCBPPDAAx2+bIs5Sb3a7NmzmTBhQq3DKL2IYMKECcyZM6fWoUiSOsicOXMYN24cffpYMlRrt91244knnujwJ3/6yUjqtZYtW8aaNWs8K9dBxo8fz+zZs73UUpJ6CA94dpytttqKkSNH8vjjj3foci3mJPVaTz75JGPGjPHSkQ7ylre8hXXr1rFixYpahyJJqtKqVatYsWIFO+64Y61D6THGjh3LE0880aHLtJiT1GutWrXKpy92oIhgwIABrFq1qtahSJKqtGrVKrbeemsvsexAAwcO7PAc6acjqddas2YN9fX1tQ6jR+nfvz+rV6+udRiSpCqZIztefX09a9as6dBlWsxJ6rXWr1/fY484zpgxgzFjxjBmzBhmzJjR5DQPPPAA++23HxMnTmTSpEncc889AFx33XW87W1v29B+++23t3q9ffr0Yf369R2yDZKk2lm/fj19+/atdRidojU58sEHH+Qd73gHe+yxB4cffjgvvfQSAPfccw8TJ05k4sSJ7LnnnlxzzTWtXm/fvn07PEf6R8MlqYd54YUX+MpXvsKsWbOICN7+9rdzxBFHsO2222403ec//3nOOussDj30UG688UY+//nPc9tttzF16lSOOOIIIoKHHnqID37wg8ydO7dGWyNJUsdpbY487bTT+O53v8u73vUupk+fzne+8x2+9rWvsfvuuzNr1izq6upYsmQJe+65J4cffjh1dbUpq3rmIWlJ6mDz589nt91246STTmLs2LGccMIJ/PGPf2T//fdnzJgxG85qrVy5klNOOYXJkyez1157cd11122Y/53vfCd77703e++9N3fccQcAt912G1OmTOGYY45ht91244QTTqj6aZA33XQTBx98MIMHD2bbbbfl4IMP5g9/+MMm00XEhiONL774IsOGDQNgwIABGx4Ks3LlSh8QI0narJ6YIx977DEOPPBAAA4++GCuvvpqoHgqZUPhtmbNmprnSM/MSVIrzZs3jyuvvJLp06ezzz778Otf/5rbb7+d66+/nm9+85tce+21fOMb3+Cggw5i+vTprFixgsmTJ/Oe97yHN7/5zdxyyy3U19fz+OOPc/zxxzNr1iwA7r//fmbPns2wYcPYf//9+ctf/sIBBxyw0bq/853vcMkll2wS04EHHsgPfvCDjdoWL1680Z9bGDFiBIsXL95k3vPOO49p06bx2c9+lvXr129IngDXXHMNZ555JkuXLuWGG26oqt8kST1fT8uREyZM4LrrruOoo47iyiuvZOHChRvG3X333ZxyyiksWLCAiy++uGZn5aAVZ+YiYnpELI2IhyvavhMRcyPioYi4JiIGVYw7MyLmRcSjETGtov2Q3DYvIs7o8C2RpE42evRo9thjD/r06cOECROYOnUqEcEee+zB/PnzAbj55ps555xzmDhxIlOmTGHNmjU8/fTTvP7663z0ox9ljz324Nhjj93oj2tPnjyZESNG0KdPHyZOnLhhWZU+97nP8cADD2zyapyk2uInP/kJ5557LgsXLuTcc8/l1FNP3TDu6KOPZu7cuVx77bV86Utfavc6ejpzpCQVelqOnD59Oj/+8Y95+9vfzssvv0y/fv02jNt3332ZPXs2f/3rX/nWt77V4Q81aYvWlJEXAj8CLqpouwU4M6W0NiK+DZwJfCEixgPHAROAYcAfI2Jsnud/gIOBRcBfI+L6lNIcJKkkttxyyw3Dffr02fC+T58+rF27FoCUEldffTW77rrrRvOeffbZbL/99jz44IOsX79+oyeEVS63b9++G5ZVqS1HHYcPH85tt9224f2iRYuYMmXKJvPOmDGD73//+wAce+yxnHbaaU0u/8knn+S5555jyJAhm4yXOVKSoOflyN12242bb74ZKC65bOoqlXHjxjFgwAAefvhhJk2atMn4rtDimbmU0p+BFxq13ZxSaujJu4ARefhI4LKU0qsppaeAecDk/JqXUnoypfQacFmeVpJ6lGnTpvHDH/5wwzX9999/P1Dck7bDDjvQp08fLr74YtatW9em5bblqOO0adO4+eabWb58OcuXL+fmm29m2rRpm0w3bNgw/vd//xeAmTNnMmbMGKC4VKYh/vvuu49XX32V7bbbrk3x9hbmSElqvTLlyKVLlwLFUz2//vWv87GPfQyAp556akNBuWDBAubOncuoUaPaFG9H6ogHoJwC/D4PDwcWVoxblNuaa5ekHuVLX/oSr7/+Om9729uYMGHChksUP/7xjzNjxgz23HNP5s6dy9Zbb91pMQwePJgvfelL7LPPPuyzzz58+ctfZvDgwUDxdK6G+xB+/vOf85nPfIY999yTL37xi5x//vkAXH311ey+++5MnDiRT3ziE1x++eU1v8G7xMyRkpSVKUdeeumljB07lt12241hw4Zx8sknA3D77bez5557MnHiRI4++mh+/OMf1/TKlWjNE2EiYhTwu5TS7o3a/wOYBPxDSilFxI+Au1JKv8rjL+CNJHZISum03P5hYN+U0iebWNfpwOkAO+6449sXLFjQ3m1TSYw6o3s8XGH+OYfVOgR1sRtuuIGhQ4cyefLkWofSY1xyySXss88+jB07tuWJG4mIe1NKtblOpQrmSHWW7pIfwRzZGz399NP88Y9/5JRTTql1KD1Ge/t0c/mx3WfmIuIk4P3ACemNinAxMLJishG5rbn2TaSUzk8pTUopTRo6dGh7w5MkqWbMkZJ6gmr/DIA21hn92a5iLiIOAT4PHJFSWlUx6nrguIjYMiJGA2OAe4C/AmMiYnRE9KO4Afz66kKXpOr069eP1157rdZh9CivvvrqRk/86o3MkZJ6AnNkx3vttdc6PEe2+DTLiLgUmAIMiYhFwFkUT+baErgl30dxV0rpYyml2RFxBTAHWAt8IqW0Li/nk8BNQF9gekppdoduiSS1Uf/+/Vm9enWtw+hRVq9eTf/+/WsdRpcxR0rqqerr682RHawzcmSLxVxK6fgmmi/YzPTfAL7RRPuNwI1tik6SOtGQIUO4++67ax1Gj7FmzRpeeuklBg0aVOtQuow5UlJPNXDgQF5//XVefvllBg4cWOtweoRnnnmmwx+W0hFPs5SkUtp5551ZsmQJK1eurHUoPcKjjz7K6NGjN/qbQJKkcurbty9jx47lkUceqXUoPUJKiTlz5jB+/PgOXa7FnKRea4sttmCXXXYxUXWQ2bNnd3iSkiTVzvjx45k926u+O8KiRYuor6+nox9eZTEnqVebMGEC999/f5v/QKk2tmLFChYsWMCuu+5a61AkSR1k5513ZunSpSxbtqzWoZRaSol77723Uw54WsxJ6tXGjh3LgAEDuOqqqyzo2mnFihVceOGFTJ061UssJakHqaurY9q0aVx88cU899xztQ6nlFJKzJw5kyVLlnTK37W1mJPUq/Xt25cPfvCDrF+/nquuuoq1a9fWOqRSWb58ORdeeCHveMc7/OPrktQDTZw4kXe/+91cdNFFnqFro/Xr1zNz5kwee+wxTjzxRLbaaqsOX0eLT7OUpJ6uoaC79tpr+e53v8vYsWOZMGECO++8M3V17iYbW7lyJY888gizZ89myZIlTJ06lX322afWYUmSOslee+1FRHDBBRew/fbbM2HCBMaNG+dTLpuwfv16nn76aebMmcOcOXMYPHhwpxVyYDEnSUBR0H3gAx/glVdeYc6cOdx5551cffXVbL311vTv39+ijuKPna5evZpXX32VXXbZhcmTJ7PLLruwxRZb1Do0SVInmzhxIrvvvjtPPPEEc+bM4dZbb2WLLbagf//+XmJPUcStXr2alStXMmjQICZMmMDJJ5/Mdttt16nr9deJJFUYMGAAkydPZvLkyaxZs4ZVq1axevVqL78EttxyS+rr6xkwYIDFrST1QnV1dey6667suuuurFu3jldeeWXDQb7erk+fPvTv35+tttqq087CNcVsLEnNqK+vp76+vtZhSJLU7fTt25dtttmGbbbZptah9GoWc1I26owbah3CBvPPOazWIUiStEF3yZHmR2ljPs1SkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJOkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJOkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJOkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJOkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJOkiRJkkrIYk6SJEmSSshiTpIkSZJKyGJO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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "uncorrected = []\n", "corrected = []\n", "for x in range(1,5000):\n", " samples = np.random.normal(loc=5.0, scale=1.0, size = 5)\n", " uncorrected.append(np.std(samples, ddof=0))\n", " corrected.append(np.std(samples, ddof=1))\n", "\n", "fig, ax = plt.subplots(1,2)\n", "fig.set_size_inches(15,6) \n", "ax[0].hist(uncorrected);\n", "ax[1].hist(corrected);\n", "ax[0].text(1.65, 1200, f'mean = {np.mean(uncorrected):.2}',\n", " bbox={'facecolor':'white', 'alpha':0.5, 'pad':1, 'boxstyle':\"round\"})\n", "ax[1].text(1.85, 1200, f'mean = {np.mean(corrected):.2}',\n", " bbox={'facecolor':'white', 'alpha':0.5, 'pad':1, 'boxstyle':\"round\"})\n", "ax[0].set_title(\"Uncorrected Standard Deviations\");\n", "ax[1].set_title(\"Corrected Standard Deviations\");" ] }, { "cell_type": "markdown", "id": "a2d09327", "metadata": {}, "source": [ "We expect the biased sample to underestimate the population variance, which we can see in the graph on the left. Note that the shape of the histogram is the same, just shifted slightly left." ] }, { "cell_type": "markdown", "id": "d9917f71", "metadata": {}, "source": [ "### Uncertainty in our estimators $\\overline{x}$ and $s$\n", "\n", "When $N$ is large (at least ten or so), and if the variance of $h(x)$ is finite, we expect from the central limit theorem (in chapter 3.4) that $x$ and $s$ will be distributed around their values given by eqs. 1 and 2 according to Gaussian distributions with the widths (standard errors) equal to\n", "\n", "$$ \\sigma_{\\overline{x}} = \\frac{s}{\\sqrt{N}},$$\n", "\n", "which is called *the standard error of the mean*, and\n", "\n", "$$ \\sigma_s = \\frac{s}{\\sqrt{2(N-1)}} = \\frac{1}{\\sqrt{2}}\\sqrt{\\frac{N}{N-1}} \\sigma_\\overline{x},$$\n", " \n", "which is the *error of the standard deviation.*\n", "\n", "Note that for large $N$, the uncertainty of the location parameter is about 40% larger than the uncertainty of the scale parameter ($\\sigma_\\overline{x}$ $\\sim$ $\\sqrt{2}\\sigma_s$). Note also that for small $N$, $\\sigma_s$ is not much smaller than $s$ itself.\n", "\n", "### Example of standard deviation vs. standard error\n", "\n", "**Standard deviation**: Imagine we flip a coin 16 times; this will be one trial. As the number of trials goes to infinity, the number of heads flipped in one trial will yield a normal distribution with mean $\\mu$ = 8 and std $\\sigma$ = 2. No matter how many measurements we perform, the standard deviation will not reduce as its a property intrinsic to the nature of the coin.\n", "\n", "**Standard error**: The average number of heads in a 16 flip coin toss is eight since each side has a 50/50 chance of being landed on. With enough measurements, the error of that estimate of the mean number of heads can become arbitrarily small.\n", "\n", "Below is the distribution of a 16-flip coin toss for $N = 5000$ and $N = 15000$" ] }, { "cell_type": "code", "execution_count": 5, "id": "e2cdcec3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean = 8.0, Std = 2.0\n", "Mean = 8.0, Std = 2.0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "fig, ax = plt.subplots(1,2) \n", "fig.set_size_inches(10,4) \n", "np.random.seed(42)\n", "N = [5000, 15000]\n", "\n", "for m,k in enumerate (N):\n", " y = np.random.binomial(n=16, p=0.5, size=k) # N trials of 16 flip toss\n", " values = []\n", " x = np.linspace(1,16, num = 16)\n", " for i in range(1,17):\n", " values.append(np.count_nonzero(y == i))\n", " ax[m].bar(x,values)\n", " print(f'Mean = {np.mean(y):.2}, Std = {np.std(y):.2}')" ] }, { "cell_type": "markdown", "id": "528779cf", "metadata": {}, "source": [ "Thus we can see that increasing $N$ *does not* decrease the standard deviation.\n", "\n", "The standard error of the mean, on the other hand, *does* decrease with increasing $N$. We'll import `sem` from `scipy.stats`, which computes the standard error. Then we'll use `np.random.binomial` again to simulate a 16-flip coin toss and increase the size of $N$ on each iteration." ] }, { "cell_type": "code", "execution_count": 6, "id": "9ea4e7d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.88, 0.35, 0.17, 0.06]\n" ] } ], "source": [ "from scipy.stats import sem\n", "j = []\n", "for i in [3,30,100,1000]:\n", " sample = np.random.binomial(n=16, p=0.5, size= i)\n", " sample = round(sem(sample),2)\n", " j.append(sample)\n", "print(j)" ] }, { "cell_type": "markdown", "id": "998d5301", "metadata": {}, "source": [ "### Estimator efficiency\n", "Estimators can be compared in terms of their **efficiency**, which measures how large a sample is required to obtain a given accuracy. \n", "\n", "For example, the median determined from data drawn from a Gaussian distribution shows a scatter around the true location parameter, $\\mu$, larger by a factor of $\\pi/2 \\sim 1.253$ than the scatter of the mean value (see eq. 3 below). Since the scatter decreases with $1/\\sqrt{N}$, the efficiency of the mean is $\\pi/2$ times larger than the efficiency of the median. \n", "\n", "An estimator is asymptotically normal if its distribution around the true value approaches a Gaussian distribution for large sample size, with variance decreasing proportionally to $1/N$.\n", "The smallest attainable variance for an unbiased estimator is called the **minimum variance bound (MVB)** and such an estimator is called the **minimum variance unbiased estimator (MVUE).**\n", "\n", "### Robust descriptive statistics\n", "\n", "For the case of real data, which can have “outliers,” quantiles offer a more robust method for determining location and scale parameters than the mean and standard deviation.\n", "* The median is a much more robust estimator of the location than the mean\n", "* The interquartile range $(q_{75} − q_{25})$ is a more robust estimator of the scale parameter than the standard deviation.\n", "\n", "In other words, the median and interquartile range are much less affected by the presence of outliers than the mean and standard deviation.\n", "\n", "For example, if you take 25% of your measurements that are larger than $q_{75}$ and arbitrarily modify them by adding a large number to all of them (or multiply them all by a large number/different large numbers), both the mean and the standard deviation will be severely affected. However, the median and the interquartile range will remain constant.\n", "\n", "Furthermore, even in the absence of outliers, for some distributions that do not have finite variance, such as the Cauchy distribution, the median and the interquartile range are the best choices for estimating location and scale parameters. We often see the interquartile range renormalized so that the width estimator, $\\sigma_G$, becomes an unbiased estimator of $\\sigma$ for a Gaussian distribution,\n", "\n", "$$\\sigma_G = 0.7413(q_{75}-q_{25}) $$\n", "\n", "AstroML provides a convienent way to calculate $\\sigma_G$. We can import `stats` from `astroML`, define $x$ as $N$ normally distributed points, and call `stats.sigmaG(x)`." ] }, { "cell_type": "code", "execution_count": 7, "id": "0292065b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9676727191694041" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from astroML import stats\n", "np.random.seed(0)\n", "x = np.random.normal(size=1000) # 1000 normally distributed points \n", "stats.sigmaG(x)" ] }, { "cell_type": "markdown", "id": "bb46baaa", "metadata": {}, "source": [ "There are downsides to robustness; as we have already discussed, the efficiency of the median as a location parameter is worse than that of the mean in the case of a Gaussian distribution. Additionally, it's much easier to compute the mean than the median for large samples. However, to avoid the possibility of outliers severely affecting results, one might be willing to pay the price of $\\sim$ 25% larger errors.\n", "\n", "To compute the standard error, $\\sigma_{qp}$ for an arbitrary quantile $q_p$, we can use\n", "\n", "$$\\sigma_{qp} = \\frac{1}{h_p}\\sqrt{\\frac{p(1-p)}{N}} $$\n", "\n", "where $h_p$ is the value of the probability distribution function at the $p$th percentile (e.g., for the median, $p = 0.5$). For a Gaussian, the standard error for the median is \n", "\n", "$$ \\sigma_{q^{50}} = s\\sqrt{\\frac{\\pi}{2N}} $$\n", "\n", "with $h_{50} = 1/(s\\sqrt{2\\pi})$ and $s \\sim \\sigma$ in the limit of large $N$." ] }, { "cell_type": "markdown", "id": "b4f4f7ee", "metadata": {}, "source": [ "To demonstrate robust statistics, we'll sample a Gaussian with and without outliers. We expect the mean and standard deviation to be heavily affected by the outliers, but the median and $\\sigma_G$ to be less affected. To represent the Gaussian with outliers, we'll put together a sample where we'll draw 95% of the data from a normal Gaussian distribution and 5% from a Cauchy distribution. We'll draw the Gaussian samples using `np.random.normal`. For the 5% outliers, we'll import `Cauchy` from `scipy.stats` and call `cauchy.rvs` to draw five samples from a Cauchy distribution. Then we'll concatenate the 95 normal samples with five outlier data points to create a Gaussian with outliers. We'll set the location parameter $\\mu$ to eight to prevent our graph from going negative for a more readable graph." ] }, { "cell_type": "code", "execution_count": 8, "id": "2dfe29e8", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from astroML import stats\n", "from matplotlib import pyplot as plt\n", "from scipy.stats import cauchy\n", " \n", "normal = np.random.normal(loc=8.0, scale=1.0, size=100) # 100 samples from a Gaussian\n", "\n", "a = np.random.normal(loc=8.0, scale=1.0, size=95) #95 samples from a Gaussian\n", "b = cauchy.rvs(loc=8.0, scale=20, size=5) #5 samples from a Cauchy\n", "normal_with_outliers = np.concatenate([a, b]) # combine to create Gaussian with outliers" ] }, { "cell_type": "markdown", "id": "e5606e3d", "metadata": {}, "source": [ "Next, we'll plot two bar graphs: one that shows the mean and standard deviations and one with the median and $\\sigma_G$ for both the normal distribution and the normal with outliers." ] }, { "cell_type": "code", "execution_count": 9, "id": "9bf4d253", "metadata": {}, "outputs": [ { "data": { "image/png": "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tbq+Ry48slbXJ0mq3OaOcjdt2pTi4mKWL1/Occcdx7x58+jduzeTJ0/mnHPOYdWqVQwfPpymTZtWWO5vf/sbBx10kMPbJUnaSmdfvVetru+6c96s1fVtypAhQ5gwYQKFhYWMHDmSv/zlL7Rt27be3n+9bS6gS5IanpKSEqZMmcKcOXM227Zt27YMHTqUadOm0bt3bwYNGsSsWbMAePTRR3njjTcqtJ88ebLD2yVJUpmHHnoob+/tEPc6tnDhQrp3787YsWPZZ599OOWUU3jsscc46KCD2HvvvZk9ezYrV67ktNNOY//996d///7cf//9ZcsecsghDBgwgAEDBvD3v/8dgCeffJIhQ4YwatQounfvzimnnEJKKZ+bKUl16rHHHqN79+506dKl0vlLly5l+fLlAHzxxRdMnz6d7t27A/DBBx8AsGrVKq666irOPPPMsuVWrFjBzJkzOfbYY+t2AyRJUq3bmqz1xRdfcPLJJ9OjRw+OO+44vvjii7L1du3alQ8//BCAb37zmwwcOJBevXpx4403lrVp3bo1F1xwAf369ePAAw/k/fffr5VtqrOAHhE3R8QHETGv3LQ7I6I491gYEcVVLLswIl7JtSuqqxrry5tvvsm5557La6+9xmuvvcZf/vIXnn76aSZMmMD//b//l8svv5zDDjuM2bNn88QTTzBu3DhWrlxJx44dmT59Oi+++CJ33nknP/rRj8rW+dJLL3HNNdcwf/583nrrLZ555pk8bqEk1Y7Ro0czaNAgXn/9dbp06cLEiROByo9yv/vuu4wcORKA9957j6FDh9K3b1/2228/hg0bxlFHHQXA+PHj6dGjB3379uXoo4/msMMOK1vHfffdx/Dhw2nVqlU9baEkSapNW5q1fv/739OyZUsWLFjApZdeWuUovZtvvpk5c+ZQVFTEtddey7JlywBYuXIlBx54IC+//DKDBw/mj3/8Y61sT10Ocb8FuA748/oJKaWT1j+PiF8DKzax/NCU0od1Vl096tatG3369AGgV69eHH744UQEffr0YeHChSxevJipU6cyYcIEoPR2Be+88w6dOnXi7LPPpri4mKZNm1YYlrn//vuXHUkqKChg4cKFHHzwwfW/cZJUiyZNmlTp9FtuuWWjaZ06dSobgta3b19eeumlSpcdP34848ePr3Te2LFjGTt27BbVKkmS8m9Ls9ZTTz1VdgC0b9++9O3bt9L1X3vttdx3330ALFq0iH/84x/svPPONG/evOxgwMCBA5k+fXqtbE+dBfSU0lMR0bWyeVF6rfl/Aw6rbH5js/3225c9b9KkSdnrJk2aUFJSQtOmTbn33nvZd999Kyx3ySWXsMsuu/Dyyy+zbt06WrRoUek6mzZtSklJSR1vhSRJkiRly5Zmrep48skneeyxx3j22Wdp2bIlQ4YMKbun+XbbbVd2C7XazGP5Ogf9EOD9lNI/qpifgEcjYk5EnLGpFUXEGRFRFBFFS5curfVC68MRRxzB7373u7LzyNcfBVqxYgW77rorTZo04bbbbmPt2rX5LFOSJEmSGpSqstbgwYP5y1/+AsC8efOYO3fuRsuuWLGCnXbaiZYtW/Laa6/x3HPP1Xm9+bqK+2ig8nGMpQ5OKS2JiI7A9Ih4LaX0VGUNU0o3AjcCFBYWbvZKaVm8LdqFF17Ij3/8Y/r27cu6devo1q0bDzzwAD/4wQ844YQT+POf/8yIESM8R1KSJElSZtXnbdGqq6qsddZZZ3HqqafSo0cPevTowcCBAzdadsSIEdxwww306NGDfffdlwMPPLDO6426vPp3boj7Ayml3uWmNQOWAANTSoursY5LgM9SShM217awsDAVFVW8ptyCBQvo0aNHDStvPLb17ZdUS34d+a6gcTm39vveiJiTUiqs9RXXkcr6bElSw2LWqJ7KPqeq+u18DHH/OvBaVeE8IlpFRJv1z4HhwLzK2kqSJEmS1FjU5W3WJgHPAvtGxOKIOD0362Q2GN4eEZ0iYv3d4HcBno6Il4HZwIMppWl1VackSZIkSVlQl1dxH13F9LGVTHsXGJl7/hbQr67qkiRJkiQpi/J1FXdJkiRJklSOAV2SJEmSpAwwoEuSJEmSlAH5ug96/tT2rYK24FY511xzDWeccQYtW7bcaN4tt9xCUVER1113XW1UJ0mSJEn147Vazlrda561vvvd7/KTn/yEnj171m4t5ZSUlHDRRRdx991306pVKwBOPPFELrjggq1et0fQ8+Caa67h888/z3cZkiRJktSo3HTTTXUazgF++ctf8u677/LKK69QXFzMrFmzWLNmTa2s24Bex1auXMmRRx5Jv3796N27N5deeinvvvsuQ4cOZejQoQD86U9/Yp999mH//ffnmWeeyXPFkiRJkpR9G2atO++8kyFDhlBUVATAxIkTy3LW9773Pc4++2wAxo4dy1lnncWBBx7IV7/6VZ588klOO+00evTowdixY8vWf9ZZZ1FYWEivXr24+OKLAfj888/54x//yO9+9ztatGgBQJs2bbjkkktqZZu2vSHu9WzatGl06tSJBx98EIAVK1bwpz/9iSeeeIL27dvz3nvvcfHFFzNnzhx23HFHhg4dSv/+/fNctSRJkiRlW2VZ6/e//z0A7777Lr/61a948cUXadOmDYcddhj9+v3v3bw//vhjnn32WaZOncoxxxzDM888w0033cR+++1HcXExBQUFXH755bRr1461a9dy+OGHM3fuXAB233132rRpUyfb5BH0OtanTx+mT5/O+eefz6xZs9hxxx0rzH/++ecZMmQIHTp0oHnz5px00kl5qlSSJEmSGo5NZa3Zs2dz6KGH0q5dO7bbbjtOPPHECsseffTRRAR9+vRhl112oU+fPjRp0oRevXqxcOFCAO666y4GDBhA//79efXVV5k/f/5GNfzpT3+ioKCA3XbbjUWLFm31NhnQ69g+++zDiy++SJ8+ffjlL3/JZZddlu+SJEmSJKnB25qstf322wPQpEmTsufrX5eUlPD2228zYcIEHn/8cebOncuRRx7Jl19+yV577cU777zDp59+CsCpp55KcXExO+64I2vXrt3qbTKg17F3332Xli1b8u///u+MGzeubIjF+r/QAw44gJkzZ7Js2TLWrFnD3XffneeKJUmSJCn7Ksta6+23337MnDmTjz/+mJKSEu69994arfuTTz6hVatW7Ljjjrz//vs8/PDDALRs2ZLTTz+ds88+my+//BKAtWvXsnr16lrZpm3vHPQtuC3a1njllVcYN24cTZo0YbvttuP3v/89zz77LCNGjKBTp0488cQTXHLJJQwaNIi2bdtSUFBQr/VJkiRJUq3YgtuibY3KstZ5550HQOfOnfnFL37B/vvvT7t27ejevftGpxtvSr9+/ejfvz/du3dnt91246CDDiqbd/nll3PhhRfSu3dv2rRpw1e+8hXGjBlDp06dtnqbIqX6/RDrUmFhYVp/xb71FixYQI8ePfJUUf5t69svqZb8upbva7qtq4OdxRExJ6VUWOsrriOV9dmSpIYl61njs88+o3Xr1pSUlHDcccdx2mmncdxxx9V7HZV9TlX12w5xlyRJkiQ1Opdc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9KBv374cffTRHHbYYWXved999zF8+HBatWq12TqkDcWG50dV2TCiL3AScAKwOKX09bosbEsUFham9RdraCjWrl1L586def7559ljjz3Kpo8bN47WrVtz8cUX89prr/HDH/6Qxx9/nHnz5nHyyScze/ZsmjdvzogRI7jhhhvYa6+9Kqz33HPPZccdd+Siiy5i5cqVvPTSS8ybN4958+Zx3XXXlbX75JNP2GGHHUgpMWrUKE488cRKz4+TtI37dWy+jarv3Or1vTUREXNSSjU+hzxf/XtD6rOff/55TjvtNF544QW+8pWvMHbsWAoLC/mP//iPsjbXX389r7zyCjfccAOTJ09mypQp3HXXXQCsW7eO3XbbjVmzZvHVr361wrp/9rOfsf3223PppZeWTXvvvffYddddgdIf+ldddRXPPfe/1+978sknmTBhAg888EBdbrYkqQ5V1W9X+z7owAfAv4BlQMfaKmxb9/jjj7PnnntWCOdQeluH9XviunfvzsKFC3n//fdZsGABBxxwAC1btqRZs2YceuihTJkypcKyKSXuuuuusj31rVq14uCDD6ZFixYbvf8OO+wAlO7tX716dYXz3yRJ2wT7982ozhG4008/nWXLlrHXXnvxm9/8hiuvvLJs+aeeeorddttto3AOVOiv17v22mvp1asX/fr149prr+WWW24pm3fIIYdw4okn8vjjj9OlSxceeeSRutloSVJeNNtcg4j4AfBvQAfgbuB7KaX5dV3YtqKqIW/9+vVjypQpHHLIIcyePZt//vOfLF68mN69e3PBBRewbNkyvvKVr/DQQw9RWFhxx8usWbPYZZdd2HvvvatVwxFHHMHs2bP5xje+wahRo2pluyRJ2Wb/XjOXXnpphaPcAJdddlnZ8xYtWnD33XdXuuyQIUMqHAEv76233tpo2hVXXMEVV1xRaftZs2ZVt2RJUgNUnSPouwE/Tin1SildYudde1avXs3UqVM58cQTN5r3s5/9jOXLl1NQUMDvfvc7+vfvT9OmTenRowfnn38+w4cPZ8SIERQUFGx0W4dJkyZVGvqr8sgjj/Dee++xatUqZsyYsdXbJUlqEOzfJUnKmM0eQU8p/bw+CtkWPfzwwwwYMIBddtllo3k77LADf/rTn4DSIevdunUrGxp3+umnc/rppwPwi1/8gi5dupQtV1JSwpQpU2p8QZkW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fsqyZcsYNGgQQ4cOZdddd2XXXXfliCOOoEePHmXLnXrqqRQUFPCrX/2qbOh7eRMnTizro9944w3atm3L8ccfT//+/Rk3bhxr166lffv2lJSUUFRUBMA999zDokWLav1zkBqi6vzuruq38h//+EcAXnnlFaZPn865557LunXrALjrrrt4+eWXmTdvHkuXLuXuu+8GSn+nz507l+LiYo466iguu+wyANq1a8e1117LeeedV+G9G9vvbgO6GqSt2RMPcPjhh9OmTZsK7VNKzJgxg1GjRgEwZswY/vrXvwKle+8/+eQTAFasWEGnTp3KlvvrX/9Kt27d6NWrV6W1Pv744+y5557sscceW7fRkiQ1YhMmTGDmzJn079+fmTNn0rlzZ5o2bcqbb77JggULWLx4MUuWLGHGjBnMmjULKB3e/sorrzBr1ixmzZq10c7322+/naKiIsaNGwdASUkJs2bNYsKECbzwwgu89dZb3HLLLUQEkydP5pxzzmH//fenTZs2NG3atN4/AymLqvO7u6rfyuV/j3fs2JG2bduW7QjbYYcdgNLv5erVq4mICtMBVq5cWTa9Y8eO7Lfffmy33XZV1toYfncb0NUgbc2e+KosW7aMtm3b0qxZs43Weckll3D77bfTpUsXRo4cye9+9zsAPvvsM6666iouvvjiKtc7efJkRo8evWUbKklSI9C5c+cKR6QXL15M586dK7Tp1KkTU6ZM4aWXXuLyyy8HoG3bttx3330ceOCBtG7dmtatW/ONb3yDZ599tmy9AG3atOFb3/oWs2fPLlvfY489xuWXX87UqVPZfvvtgdK+vaCggK9+9as0a9aMb37zm7z44osADBo0iFmzZjF79mwGDx5cNtxd2tZV53d3Vb+V+/Xrx9SpUykpKeHtt99mzpw5Ff4vOOKII+jYsSNt2rQpO0gGcMEFF7Dbbrtxxx13lB1Br47G8LvbgK5Gq6o98Vti0qRJjB07lsWLF/PQQw/x7W9/m3Xr1nHJJZdwzjnn0Lp160qXW716NVOnTuXEE0/cmk2RJKlB22+//fjHP/7B22+/zerVq5k8eTLHHHNMhTYffvhh2dDXK664gtNOOw2A3XffnZkzZ1JSUsKaNWuYOXMmPXr0oKSkhA8//BCANWvW8MADD9C7d28AXnrpJb7//e8zderUsgvHra9j+fLlLF26FCi9cnvPnj0Byq4Av2rVKq666irOPPPMOvxEpMalqt/Kp512Gl26dKGwsJAf//jHfO1rX6vwe/yRRx7hvffeY9WqVcyYMaNs+uWXX86iRYs45ZRTuO6666pVQ2P53d0s3wVIW6Ime+Kh9Ej3vffeS9u2batc584778zy5cspKSmhWbNmFdY5ceJEpk2bBpTuYf/yyy/58MMPef7557nnnnv46U9/yvLly2nSpAktWrTg7LPPBuDhhx9mwIABm72YjSRJjVmzZs247rrrOOKII1i7di2nnXYavXr14qKLLqKwsJBjjjmGJ598kp///OdEBIMHD+b6668HYNSoUcyYMYM+ffoQEYwYMYKjjz6alStXcsQRR7BmzRrWrl3L17/+db73ve8BpeewfvbZZ2U/1HfffXemTp1K06ZNmTBhAocffjgpJQYOHFi2zPjx43nggQdYt24dZ511VtmwXGlbV53f3VX9Vu7YsSNXX311Wbuvfe1rG41OadGiBcceeyz3339/2QUc1zvllFMYOXIkl1566WbrbCy/uw3oapDK74nv3LkzkydP5i9/+UuFNh9++CHt2rWjSZMmFfbEVyUiGDp0KPfccw8nn3wyt956K8ceeyxQ2rE//vjjjB07lgULFvDll1/SoUOHsnPgoHRoT+vWrcvCOZTuTWzow2wkSaoNI0eOZOTIkRWmlR+6OmrUqApDXNdr2rQpf/jDHzaa3qpVK+bMmVPpez322GNV1jFs2DDmzp270fTx48czfvz4KpeTtlXV+d1d1W/lzz//nJQSrVq1Yvr06TRr1oyePXvy2Wef8emnn7LrrrtSUlLCgw8+yCGHHALAP/7xD/bee28A7r//frp3716tOhvL724DuhqkrdkTD3DIIYfw2muv8dlnn9GlSxcmTpzIEUccwVVXXcXJJ5/ML3/5S/r378/pp58OwK9//Wu+973vcfXVVxMRZReU2ZSVK1cyffr0Sn9USJIkSQ1BdX53V/Vb+YMPPuCII46gSZMmdO7cuexCjitXruSYY45h1apVrFu3jqFDh5adVvKzn/2M119/nSZNmrDHHntwww03APCvf/2LwsJCPvnkE5o0acI111zD/Pnz2WGHHRrV7+6o7HYUDVVhYWFaf1XA2nDErx6stXUJHrnwyHyXoG2I39/a9UjLo/JdQuNybu33vRExJ6VUWOsrriO13WcDnH31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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "labels = ['no outliers', 'with outliers']\n", "means = [np.mean(normal),np.mean(normal_with_outliers)]\n", "standard_deviations = [np.std(normal),np.std(normal_with_outliers)]\n", "medians = [np.median(normal), np.median(normal_with_outliers)]\n", "sigmaG = [stats.sigmaG(normal), stats.sigmaG(normal_with_outliers)]\n", "\n", "x = np.arange(len(labels)) # the label locations\n", "width = 0.35 # the width of the bars\n", "\n", "fig, ax = plt.subplots(1,2)\n", "fig.set_size_inches(14,6) \n", "rects1 = ax[0].bar(x - width/2, means, width, label='mean', color = 'steelblue')\n", "rects2 = ax[0].bar(x + width/2, standard_deviations, width, label='std', color = 'darkorange')\n", "rects3 = ax[1].bar(x - width/2, medians, width, label='median', color = 'olivedrab')\n", "rects4 = ax[1].bar(x + width/2, sigmaG, width, label='sigmaG', color = 'gold')\n", "\n", "titles = [\"means and std's\",\"medians and sigmaG's\"]\n", "rected = [(1,2),(3,4)]\n", "for i in [0,1]:\n", " ax[i].set_ylabel('value')\n", " ax[i].set_xticks(x);\n", " ax[i].set_xticklabels(labels)\n", " ax[i].legend()\n", " ax[i].set_title(titles[i])\n", "\n", "combined = means + standard_deviations + medians + sigmaG\n", "ax[1].set_ylim([0, np.max(combined)+0.5])\n", "\n", "ax[0].bar_label(rects1, padding=3)\n", "ax[0].bar_label(rects2, padding=3)\n", "ax[1].bar_label(rects3, padding=3)\n", "ax[1].bar_label(rects4, padding=3)\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "515640dd", "metadata": {}, "source": [ "We can see that the median and $\\sigma_G$ are mostly unaffected by the presence of outliers, whereas the mean and standard deviation are more affected." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.6" } }, "nbformat": 4, "nbformat_minor": 5 }