Skip to content

Instantly share code, notes, and snippets.

@drorata
Created August 11, 2022 06:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drorata/9f9f82380e56c00c297cce019c2da06b to your computer and use it in GitHub Desktop.
Save drorata/9f9f82380e56c00c297cce019c2da06b to your computer and use it in GitHub Desktop.
Original notebook for divide-dy-n-1.md
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It seems to be a reappearing question: *what is the difference between [`pandas.std`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.std.html) and [`numpy.std`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html)?*.\n",
"See for example [this](https://stackoverflow.com/q/24984178/671013) SO thread.\n",
"But what does it mean that Pandas uses the unbiased estimator and Numpy does not?\n",
"In this post I would like to help you understand what is the difference and when which should be used.\n",
"I will try to achieve this by following the paper *\"Why divide by $N-1$?\"* by J. L. M. Wilkins [(link)](http://www.soe.vt.edu/tandl/pdf/Wilkins/Publications_Wilkins_Why_divide_by_n_1.pdf).\n",
"In particular instead of using archaic software, I will redo the examples using Numpy and Pandas.\n",
"\n",
"## Background\n",
"\n",
"What is the average and the standard deviation of height of humans?\n",
"To answer this question, let us denote by $X$ the *whole* population of humanity (at the moment); each individual would be denoted by $X_i$.\n",
"The average (or mean), denoted by $\\mu$ can be computed by $$\\mu = \\frac{\\sum_{i=1}^N X_i}{N}$$ where $N$ is the number of individuals.\n",
"Next, the standard deviation is given by: $$\\sigma = \\sqrt{\\frac{\\sum_{i=1}^N (X_i - \\mu)^2}{N}}$$\n",
"Recall that the variance is given and denoted by $\\sigma^2$; we will consider the variance from now on.\n",
"\n",
"The task at hand is, obviously, impossible to accomplish.\n",
"What you are likely to do is pick a sample $X_{i(1)}, X_{i(2)}, \\dots, X_{i(n)}$, where $n < N$ and $i(k)$ is a permutation.\n",
"For the sake of simplicity, let us denote them by $X_i$ where $i=1,\\dots,n$.\n",
"Using this sample you will compute the sample mean, denoted by $\\bar{X}$ and the sample variance.\n",
"\n",
"The first part, that is, the mean of the sample, is easy: $$\\bar{X} = \\frac{\\sum_{j=1}^n X_j}{n}$$\n",
"It turns out that $\\bar{X}$ is an *unbiased* estimator of $\\mu$.\n",
"Intuitively saying that it estimates nicely the real mean $\\mu$.\n",
"See for example [reference](https://en.wikipedia.org/wiki/Bias_of_an_estimator#cite_note-JohnsonWichern2007-1).\n",
"\n",
"Things become trickier when it comes to the sample's variance, denoted by $S^2$.\n",
"One may try to compute $S^2$ by \"generalizing\" the formula for $\\sigma^2$.\n",
"\n",
"This would be denoted by $S_n^2$: $$S_n^2 = \\frac{\\sum_{i=1}^n(X_i - \\bar{X})^2}{n}$$\n",
"However, this *is* biased estimator of $\\sigma^2$.\n",
"The unbiased estimator is $$S^2 = \\frac{\\sum_{i=1}^n(X_i - \\bar{X})^2}{n-1}$$\n",
"\n",
"All this is explained nicely, and in a deeper way, in various places; even [Wikipedia](https://en.wikipedia.org/wiki/Bias_of_an_estimator) is a good start.\n",
"An intuitive explanation can be found [here](https://stats.stackexchange.com/q/3931/54320).\n",
"In this post, I will follow the examples of Wilkins which gives a better motivation that indeed $S_n^2$ is biased and $S^2$ is not."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Let the game begin"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Before we start, let us stress that by default, `pandas.std` is equivalent to $S^2$ and `numpy.std` to $S_n^2$."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use('ggplot')\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"#\n",
"# In general tqdm is great and I strongly suggest to try it out, if you run this notebook\n",
"# locally. However, it doesn't render well in the post generated from this notebook. So I define\n",
"# A dummy function which does nothing. \n",
"#\n",
"# from tqdm import tqdm_notebook as tqdm\n",
"def tqdm(X):\n",
" return X"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We start with a population $a$ consisting of the numbers $1$ to $100$ (inclusive)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"a = np.arange(1,101)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The mean $\\mu$ is"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.5"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.mean(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we compute $\\sigma^2$; we use the default behavior of `np.std`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"833.25"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.std(a)**2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can double check that indeed Numpy delivers:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"833.25"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(np.power(a - np.mean(a), 2)) / len(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default, Pandas will fail:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"841.66666666666663"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.power(pd.Series(a).std(), 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But this can be fixed:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"833.25"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.power(pd.Series(a).std(ddof=0), 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Great, this all aligns well with the documentation and the definitions.\n",
"In the sequence of values you have covers the *WHOLE* of the population in question, you should either use `np.std` or `pd.std(ddof=2)`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sample the whole population\n",
"\n",
"Time to play the game.\n",
"As we cannot have all values for all the individuals in our population, we have to use a sample.\n",
"We will now do it for various sample sizes.\n",
"At each step we will compute $S^2$ and $S_n^2$ and compare the results.\n",
"We take sample sizes of $n = 5, 10, 25, 50$ and $100$.\n",
"For each sample size, we compute $15000$ times $S^2$ and $S_n^2$.\n",
"Lastly, we average the results for each sample size."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"SIZES = [5, 10, 25, 50, 100]\n",
"N=15000"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Sn_s = []\n",
"for SIZE in tqdm(SIZES):\n",
" size_res = []\n",
" for i in tqdm(range(N)):\n",
" size_res.append(np.std(np.random.choice(a, size=SIZE))**2)\n",
" Sn_s.append(np.sum(np.array(size_res)) / N)\n",
"Sn_s = pd.Series(Sn_s, index=SIZES)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"S_s = []\n",
"for SIZE in tqdm(SIZES):\n",
" size_res = []\n",
" for i in tqdm(range(N)):\n",
" size_res.append(np.std(np.random.choice(a, size=SIZE), ddof=1)**2)\n",
" S_s.append(np.sum(np.array(size_res)) / N)\n",
"\n",
"S_s = pd.Series(S_s, index=SIZES)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's collect the results into a table."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>S_n^2</th>\n",
" <th>S^2</th>\n",
" <th>sigma^2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>665.030288</td>\n",
" <td>837.021747</td>\n",
" <td>833.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>748.445851</td>\n",
" <td>836.054854</td>\n",
" <td>833.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>800.563841</td>\n",
" <td>832.693469</td>\n",
" <td>833.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>816.226962</td>\n",
" <td>830.447212</td>\n",
" <td>833.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>825.145818</td>\n",
" <td>833.501119</td>\n",
" <td>833.25</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" S_n^2 S^2 sigma^2\n",
"5 665.030288 837.021747 833.25\n",
"10 748.445851 836.054854 833.25\n",
"25 800.563841 832.693469 833.25\n",
"50 816.226962 830.447212 833.25\n",
"100 825.145818 833.501119 833.25"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res_df = pd.concat([Sn_s, S_s], axis=1, keys=['S_n^2', 'S^2'])\n",
"res_df['sigma^2'] = pd.Series(np.std(a) ** 2 * np.ones(res_df.shape[0]), index=res_df.index)\n",
"res_df"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ed2a6a0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"res_df.plot(figsize=(20,5), marker='o')\n",
"plt.xticks(res_df.index);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recall that $\\sigma^2 = 833.25$.\n",
"It is clear that the $n-1$ normalization yields better approximation of the variance of the population.\n",
"This approximation is already fairly accurate when using mere $5\\%$ of the population as a sample.\n",
"\n",
"## Summary\n",
"\n",
"So, if you know that the series of values that you have represents *ALL* members of your population, you should go ahead and use $\\sigma^2$ (using either `np.std` or `pandas.std(ddof=0)`).\n",
"If however, your series of values is merely a sample of a bigger population, then you should use the unbiased estimator of $\\sigma^2$, denoted by $S^2$ and computed by either `np.std(ddof=1)` or `pandas.std`.\n",
"\n",
"## An experiment\n",
"\n",
"As a mathematician, I now ask myself how would estimators with different $n$ would behave.\n",
"Let $$D_n^2 = \\frac{\\sum_{i=1}^n(X_i - \\bar{X})^2}{n}$$\n",
"In particular, $D_n^2 = S_n^2$ and $D_{n-1}^2 = S^2$."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true,
"scrolled": true
},
"outputs": [],
"source": [
"res = []\n",
"for n in tqdm(np.arange(-4,5)):\n",
" Dn_s = []\n",
" for SIZE in tqdm(SIZES):\n",
" size_res = []\n",
" for i in tqdm(range(N)):\n",
" size_res.append(np.std(np.random.choice(a, size=SIZE), ddof=n)**2)\n",
" Dn_s.append(np.sum(np.array(size_res)) / N)\n",
" Dn_s = pd.Series(Dn_s, index=SIZES, name=str(n))\n",
" res.append(Dn_s)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABI0AAAEyCAYAAAB3bCAzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYZFVhN/7vubX2vs80wyyyCYIDA0yMrxBlGXhYhMQl\nSFx4J3lDxmheY+KOviH+XDCRJPoTjRpJkAGMSqLGRFkFyRPyKgOM7CLIzDALTC/Te9d6zvvH3c7d\nqqq7q+pWd38/zwNVde+555y6XV1T59vn3BJKKQUiIiIiIiIiIiKNEXcHiIiIiIiIiIio9TA0IiIi\nIiIiIiKiAIZGREREREREREQUwNCIiIiIiIiIiIgCGBoREREREREREVEAQyMiIiIiIiIiIgpgaERE\nRERERERERAEMjYiIiIiIiIiIKIChERERERERERERBTA0IiIiIiIiIiKigGTcHbAdPHgw7i40xeDg\nIEZHR+PuBtGi8PVLRK2G70tERERE0datW7ek4znTiIiIiIiIiIiIAhgaERERERERERFRAEMjIiIi\nIiIiIiIKaJlrGhERERERERERxU0phVwuByklhBBxd6cqpRQMw0A2m617fxkaERERERERERFZcrkc\nUqkUksnlE5mUSiXkcjm0tbXVtV4uTyMiIiIiIiIiskgpl1VgBADJZBJSyrrXy9CIiIiIiIiIiMiy\nHJakhWlEvxkaERERERERERFRAEMjIiIiIiIiIqIWtnv3bmzcuBH//u//3tR2GRoREREREREREbWo\ncrmMz3zmM3jDG97Q9LZbJjQqllXcXSAiIiIiIiIiain/+I//iEsvvRQDAwNNb7tlLgd+9/MTuOSV\nfXF3g4iIiIiIiIgIACD/+R+gXnyhrnWKDcfAuPLqmsoeOnQId9xxB7773e9i9+7dde1HLVpmptG3\nHx9FrlT/r4cjIiIiIiIiIlqOrr32WlxzzTUwjHjim5aZaTSRK+PfnhnHFa8ejLsrREREREREREQ1\nzwiqp5tuugm33norAGB6ehrvec97AADj4+P4yU9+gmQyiYsuuqgpfWmZ0Og16zvxvafGcdEJfejO\nJOLuDhERERERERFR023fvh3bt28PbH//+9+Pbdu2NS0wAlpoedq7ThtCriTxL0+Oxd0VIiIiIiIi\nIqJVr2VmGm3szeCcY3rwH788gjee2IehjlTcXSIiIiIiIiIiaglf+MIXmt5my8w0AoDf2zwIBeBb\nj43G3RUiIiIiIiIiolWtpUKjNZ0pXPLKXtz3wiT2Tebj7g4RERERERER0arVUqERAPzuKQPIJAzc\nsnsk7q4QEREREREREa1aLRcadWeTeNPJ/fjZ/hn8cnQ+7u4QEREREREREa1KLRcaAcDlJ/WjJ5vA\nzY8ehlIq7u4QEREREREREa06sYZGu3btwte+9rXA9raUgbe9ehBPHJ7HIwdnY+gZEREREREREdHq\nFmtotHXrVuzYsSN034XH92JtZwo7fzECydlGRERERERERLTK3Hnnndi2bRsuuOACXHzxxfj5z3/e\n1PaTTW1tAVIJgbefOoi/e/AQ/nPPFN5wTE/cXSIiIiIiIiIiapqzzz4bF154IYQQeOqpp/Dud78b\nDzzwQNPab8lrGtle/4puHNOXwW2PjaJY5mwjIiIiIiIiIlo9Ojo6IIQAAMzNzTn3m6VlZxoBgCEE\n3nXaEP6/+/fjrucmcOmJfXF3iYiIiIiIiIhWiW/sehkvHMnVtc5j+rL4w61ray7/4x//GNdddx3G\nxsbwzW9+s659qaalZxoBwBnrOnDKmjZ8+4lRzBdl3N0hIiIiIiIiImqaiy++GA888ABuvPFGfP7z\nn29q2y090wgAhBC4assafOSuvfjhM+O4YvNg3F0iIiIiIiIiolVgITOC6uWmm27CrbfeCgDYuXMn\nhoeHAQCvfe1rsW/fPoyPj6O/v78pfWn5mUYAcNJQG35zfSf+9alxTOVKcXeHiIiIiIiIiKghtm/f\njrvvvht333035ufnoaxvlH/88cdRKBTQ19e8S/e0/Ewj2zu3DOFP/+MF3P7kGP7gzOYnfURERERE\nREREzfSjH/0It99+O5LJJLLZLP7+7/++qRfDXjah0caeDM49pgf/8ewELjupH0Mdqbi7RERERERE\nRETUMO9973vx3ve+N7b2l8XyNNvvnToIAeC2x0bj7goRERERERER0Yq2rEKjoY4ULnllL+5/YRL7\nJvJxd4eIiIiIiIiIaMVaVqERALz1lAFkkwZu+cVI3F0hIiIiIiIiIlqxll1o1J1N4k2v6sfP9s/g\nmZH5uLtDRERERERERLQiLbvQCAAuO6kfvdkEbt592PnqOSIiIiIiIiIiqp9lGRq1pQxc8epBPHl4\nHg8fnI27O0REREREREREK86yDI0A4MLjezHcmcLO3SOQnG1ERERERERERCvMv/7rv2Lbtm04//zz\n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\nhv8PVkHqc8yY+J8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11205a2b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_res = pd.DataFrame(res).T\n",
"df_res.plot(logy=True, figsize=(20,5))\n",
"plt.xticks(df_res.index);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment