{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "using PyPlot, Statistics, LinearAlgebra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mean and variance\n", "\n", "Suppose we have a black box (a **distribution**) that generates data points $x_k$ (**samples**) $k = 1,2,\\ldots$ If we have $m$ data points, the **sample mean µ** is simply the average:\n", "\n", "$$\n", "\\mu = \\frac{1}{m}\\sum_{k=1}^m x_k\n", "$$\n", "\n", "In the limit $m \\to \\infty$, we get the mean of the underlying distribution from which the samples are generated.\n", "\n", "The **sample variance S²** is the mean-square deviation from the mean:\n", "\n", "$$\n", "\\operatorname{Var}(x) = S^2 = \\frac{1}{m-1}\\sum_{k=1}^m (x_k - \\mu)^2\n", "$$\n", "\n", "where the denominator $m-1$ is [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction). The limit $m\\to\\infty$ of the sample variance gives the variance of the underlying distribution, and by using $m-1$ instead of $m$ in the denominator it turns out that we get a better estimate of variance when $m$ is not huge.\n", "\n", "For example, the `randn()` function in Julia draws samples from a [normal distribution](https://en.wikipedia.org/wiki/Normal_distribution): a Gaussian or \"bell curve\" with mean zero and variance 1:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGdCAYAAAAfTAk2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmo0lEQVR4nO3dfXRU1b3G8WdIQmKExGIkIZJAEMvLQlsNFUMb0VYi0PpCfUGtKa1AxagUslwWpHcZdEl8oYgWeSmi2IrAahWr99KsTKtEaoIikkoBuaUGooYRgpiJUJMhOfeP3Jm8zGSYJGccZ+f7WStL5py999n7N2eSxzNnEodlWZYAAAAM0ifSEwAAALAbAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYJzYSE8gEpqbm1VTU6P+/fvL4XBEejoAACAElmWpvr5e6enp6tMn+DWaXhlwampqlJGREelpAACAbvjoo480ePDgoG16ZcDp37+/pJYCJSUl2TKmx+NRaWmp8vLyFBcXZ8uYvQ01tAd1tAd17DlqaA/q2MrtdisjI8P3czyYXhlwvG9LJSUl2RpwEhMTlZSU1OtPwO6ihvagjvagjj1HDe1BHf2FcnsJNxkDAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOF9JwFmxYoWysrKUkJCg7Oxsbdu2LWj7srIyZWdnKyEhQcOGDdOqVas6bbtx40Y5HA5dd911Ns8aAABEq7AHnE2bNmnu3LlauHChdu3apdzcXE2ePFnV1dUB21dVVWnKlCnKzc3Vrl27dP/992vOnDl66aWX/NoeOnRI9957r3Jzc8O9DAAAEEXCHnCWLl2qGTNmaObMmRo1apSWLVumjIwMrVy5MmD7VatWKTMzU8uWLdOoUaM0c+ZM3X777VqyZEm7dk1NTfrJT36iRYsWadiwYeFeBgAAiCKx4Ry8sbFRO3fu1Pz589ttz8vLU3l5ecA+FRUVysvLa7ftqquu0tq1a+XxeBQXFydJevDBB3XOOedoxowZp33Lq6GhQQ0NDb7HbrdbkuTxeOTxeLq8rkC849g1Xm9EDe1BHe1BHXuOGtqDOrbqSg3CGnBqa2vV1NSk1NTUdttTU1PlcrkC9nG5XAHbnzp1SrW1tRo0aJDeeustrV27VpWVlSHNo7i4WIsWLfLbXlpaqsTExNAWEyKn02nreL0RNbQHdbQHdew5amgP6iidPHky5LZhDTheDoej3WPLsvy2na69d3t9fb1uu+02rVmzRikpKSEdf8GCBSosLPQ9drvdysjIUF5enpKSkkJdRlAej0dOp1MTJ070XWVC11BDe1BHe1DHnqOG9qCOrbzvwIQirAEnJSVFMTExfldrjhw54neVxistLS1g+9jYWJ199tnas2ePDh48qKuvvtq3v7m5WZIUGxur/fv367zzzmvXPz4+XvHx8X7HiouLs/1kCceYvQ01tAd1tAd17DlqaA/qqC6tP6w3Gfft21fZ2dl+l9WcTqfGjx8fsE9OTo5f+9LSUo0dO1ZxcXEaOXKkdu/ercrKSt/XNddcoyuuuEKVlZXKyMgI23oAAEB0CPtbVIWFhcrPz9fYsWOVk5Oj3/3ud6qurtbs2bMltbx99Mknn+j3v/+9JGn27Nlavny5CgsLNWvWLFVUVGjt2rXasGGDJCkhIUFjxoxpd4yzzjpLkvy2AwCA3insAWfatGk6duyYHnzwQR0+fFhjxozRli1bNGTIEEnS4cOH2/1OnKysLG3ZskXz5s3T008/rfT0dD311FO6/vrrwz1VAABgiK/kJuOCggIVFBQE3Ldu3Tq/bRMmTNB7770X8viBxgAAAL0Xf4sKAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADDOVxJwVqxYoaysLCUkJCg7O1vbtm0L2r6srEzZ2dlKSEjQsGHDtGrVqnb716xZo9zcXH3jG9/QN77xDV155ZV65513wrkEAAAQRcIecDZt2qS5c+dq4cKF2rVrl3JzczV58mRVV1cHbF9VVaUpU6YoNzdXu3bt0v333685c+bopZde8rXZunWrbrnlFr3xxhuqqKhQZmam8vLy9Mknn4R7OQAAIAqEPeAsXbpUM2bM0MyZMzVq1CgtW7ZMGRkZWrlyZcD2q1atUmZmppYtW6ZRo0Zp5syZuv3227VkyRJfm/Xr16ugoEDf/va3NXLkSK1Zs0bNzc3629/+Fu7lAACAKBAbzsEbGxu1c+dOzZ8/v932vLw8lZeXB+xTUVGhvLy8dtuuuuoqrV27Vh6PR3FxcX59Tp48KY/HowEDBgQcs6GhQQ0NDb7HbrdbkuTxeOTxeLq0ps54x7FrvN6IGtqDOtqDOvYcNbQHdWzVlRqENeDU1taqqalJqamp7banpqbK5XIF7ONyuQK2P3XqlGprazVo0CC/PvPnz9e5556rK6+8MuCYxcXFWrRokd/20tJSJSYmhrqckDidTlvH642ooT2ooz2oY89RQ3tQx5YLGqEKa8Dxcjgc7R5bluW37XTtA22XpMcee0wbNmzQ1q1blZCQEHC8BQsWqLCw0PfY7XYrIyNDeXl5SkpKCnkdwXg8HjmdTk2cODHgVSacHjW0B3W0B3XsOWpoD+rYyvsOTCjCGnBSUlIUExPjd7XmyJEjfldpvNLS0gK2j42N1dlnn91u+5IlS7R48WL99a9/1YUXXtjpPOLj4xUfH++3PS4uzvaTJRxj9jbU0B7U0R7UseeooT2oo7q0/rDeZNy3b19lZ2f7XVZzOp0aP358wD45OTl+7UtLSzV27Nh2C3v88cf10EMPqaSkRGPHjrV/8gAAIGqF/VNUhYWFeuaZZ/Tss89q3759mjdvnqqrqzV79mxJLW8f/fSnP/W1nz17tg4dOqTCwkLt27dPzz77rNauXat7773X1+axxx7Tr3/9az377LMaOnSoXC6XXC6Xvvjii3AvBwAARIGw34Mzbdo0HTt2TA8++KAOHz6sMWPGaMuWLRoyZIgk6fDhw+1+J05WVpa2bNmiefPm6emnn1Z6erqeeuopXX/99b42K1asUGNjo2644YZ2x3rggQdUVFQU7iUBAICvua/kJuOCggIVFBQE3Ldu3Tq/bRMmTNB7773X6XgHDx60aWYAAMBE/C0qAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4X0nAWbFihbKyspSQkKDs7Gxt27YtaPuysjJlZ2crISFBw4YN06pVq/zavPTSSxo9erTi4+M1evRobd68OVzTBwAAUSY23AfYtGmT5s6dqxUrVui73/2uVq9ercmTJ2vv3r3KzMz0a19VVaUpU6Zo1qxZeuGFF/TWW2+poKBA55xzjq6//npJUkVFhaZNm6aHHnpIU6dO1ebNm3XTTTfp73//u8aNGxfuJQX38cfSwYPS+edLgwfbN+a//hV8zFDadGf8tvuk0I/RccyPP5Zee006fFi65BLpzDMDjpNQWyvH1q3SqFGt/f71L+nQIemdd6Thw1safvObnY7R6fHLy1v2jR/fvo+3bb9+0hdf+P/Xu/bO+nvHaLvfW6t+/aSqqvbbO47T9vhVVdKxY9LZZ0tZWS3HP3FC+utfW/6dnS1lZEj/+79Sbq70ne/4rzc1tXVeO3ZI69dL9fXS2LEtX941tV2Dt50k/eQnreN69732mtTQIMXHS1dfLQ0a1L5mbevc9nwpL29dT9u6BXp+AtUr0Jgdz0Fv7Y8dk44fl778Uho2TPrss8DnSaA5dnzezj9f8niUsnu3dM45LWvvuNZgz39PXoPeOQSrrZ2v8UiMg+BMqPPXYQ1WmF1yySXW7Nmz220bOXKkNX/+/IDt77vvPmvkyJHttt1xxx3WpZde6nt80003WZMmTWrX5qqrrrJuvvnmkOZUV1dnSbLq6upCah+KxsZG67277rKa+/SxLMmy+vSxrGee6fnAzzzTMlawMUNp053x2+5zOFq+QjlGxzGnT2/5d8evDuN4Vq+2mtseY/r01nE6+wo0l0DH947rXYu3T9u2nX21XXvH/t4x2u73tulsrLb/DmWNwb6mT/dbr2f1auuVV16xTuXnh1a3QM/P9Omd7+tsvLZrCbR+b90CPT+BatCxPoHOwUC1D7bezs7pjs+Pw+E7F5tPd851nEPH8+N0TjenjjWy8zXeFd0Yp7Gx0XrllVesxsbG7h2zNwpQ56iro13nXABd+fntsCzLCld4amxsVGJiov74xz9q6tSpvu2//OUvVVlZqbKyMr8+l112mS666CI9+eSTvm3eKzQnT55UXFycMjMzNW/ePM2bN8/X5oknntCyZct06NAhvzEbGhrU0NDge+x2u5WRkaHa2lolJSXZstZTBw8qYcQIOdqU04qJ0al//av76fXjjxU7fLgczc2djxlKm+6ML/nta6vTYwQaU5KjkykEO16wfp3OJcTjW3366NS2bYrNze10jUGP2aePTh04EHDeXRonwNy62l8Oh995t/1Xv9KlixcHHduKidGpP/1JsVOn+tdH0qk1axQ7a1bI8wtlLZbD0TLfUM+PYPv6tLzDHmrtrZgYqbm5Xa2663SvE9/50Y3XYMDjqX0dbHmNd+X7UjfH8Xg8cjqdmjhxouLi4kI/Xm/VSZ2/3LdPpXv3Rkcd7TrnOuF2u5WSkqK6urrT/vwO61tUtbW1ampqUmrbS+aSUlNT5XK5AvZxuVwB2586dUq1tbUaNGhQp206G7O4uFiLFi3y215aWqrExMSuLKlTKbt367sdvnE6mpr09vr1OnbBBd0fs8M3vo5jhtKmO+M7JL99oRwj4JhB5hDseKH+YG07l1CP72hu1gfPPKMLuhlMHM3NIdXptON0u2eb/gHOu9T33jvt2I6mJn20erWGdTLu0TVrlN7VuZyujfe6RIj9gu7rYt0dTU1dan+6sYI9/97zozuvwYDH6+T4PXmNd+X7Uk/HcTqdIR+rN+uszjs3bZIuuCAq6mjXOdeZkydPhtw2rFdwampqdO6556q8vFw5OTm+7Q8//LD+8Ic/6IMPPvDr881vflM///nPtWDBAt+2t956S9/73vd0+PBhpaWlqW/fvnr++ed1yy23+NqsX79eM2bM0Jdffuk3JldwujG+uIIT9JhcwQk4F67gtM6NKzhcwekyruCcVleu4IT1HpyGhgYrJibGevnll9ttnzNnjnXZZZcF7JObm2vNmTOn3baXX37Zio2N9b3/mJGRYS1durRdm6VLl1qZmZkhzSus9+DExLT8P2pMjH334JxuzFDadGf8tvscjtb3VE93jI5jdnYfR4dxPKtXW01tjzF9eus4nX0Fmkug47e9x6PjPTinO0Yo9+B0vIeks/tqAt2Dc7rjB/vy3oPTZr0h3YPTtm7duQen430iHZ+vzu5v8d4H0/H5CVQD770n3n19+rSO6Z1/KPdQdWwfbI5t7hvo9B6cQK+Tzs6vUHT2Ouustna+xruiG+NE3b0jXwcB6hx1dbTrnAvga3MPjiSNGzdO2dnZWrFihW/b6NGjde2116q4uNiv/a9+9Su99tpr2rt3r2/bnXfeqcrKSlVUVEiSpk2bpvr6em3ZssXXZvLkyTrrrLO0YcOG087J7XYrOTk5tAQYIo/Hoy1btmjKhRcq7tChlk/72PkpqgMHgo8ZSpvujN92nxT6MTqO+fHH0n//t+RytXySp18/v3E8Ho9e//3v9YMhQxQ7cmRrvwMHWj6Z9u67LZ+O6dOnpW+AMYIe///PH+Xk+H+K6sCBlk/bnDjh/1/v2jvr7x2j7X5vrc48s2Xubbd3HKft8Q8ebP3U0dChLcf/4gvp9ddbPgmVnd3S58AB6bvfbf8pqv9fryc1teVcnDJFcZWV0oYNrX2zs1vX1PFTVN7Xzi23+H+K6n/+p+XTSQkJ0g9/2PIpqrY1a1vntudLRUXretrWLdDzE6hegcbseA56a+/9FFVDQ0vtPv888HkSaI4dn7fhw+XxePT2+vUa9/3vK66x0X+twZ7/nrwGvXMIVls7X+NhHMf3fXHKlK//lYevkw51jso62nXOddCln9+2xapObNy40YqLi7PWrl1r7d2715o7d6515plnWgcPHrQsy7Lmz59v5efn+9p/+OGHVmJiojVv3jxr79691tq1a624uDjrT3/6k6/NW2+9ZcXExFiPPPKItW/fPuuRRx6xYmNjre3bt4c0p3BdwYmqhP01RA3tQR3tQR17jhragzq26srP77D/Hpxp06bp2LFjevDBB3X48GGNGTNGW7Zs0ZAhQyRJhw8fVnV1ta99VlaWtmzZonnz5unpp59Wenq6nnrqKd/vwJGk8ePHa+PGjfr1r3+t//qv/9J5552nTZs2Rf534AAAgK+FsAccSSooKFBBQUHAfevWrfPbNmHCBL333ntBx7zhhht0ww032DE9AABgGP4WFQAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgnLAGnOPHjys/P1/JyclKTk5Wfn6+Pv/886B9LMtSUVGR0tPTdcYZZ+jyyy/Xnj17fPs/++wz3XPPPRoxYoQSExOVmZmpOXPmqK6uLpxLAQAAUSSsAefWW29VZWWlSkpKVFJSosrKSuXn5wft89hjj2np0qVavny5duzYobS0NE2cOFH19fWSpJqaGtXU1GjJkiXavXu31q1bp5KSEs2YMSOcSwEAAFEkNlwD79u3TyUlJdq+fbvGjRsnSVqzZo1ycnK0f/9+jRgxwq+PZVlatmyZFi5cqB//+MeSpOeff16pqal68cUXdccdd2jMmDF66aWXfH3OO+88Pfzww7rtttt06tQpxcaGbUkAACBKhO0KTkVFhZKTk33hRpIuvfRSJScnq7y8PGCfqqoquVwu5eXl+bbFx8drwoQJnfaRpLq6OiUlJRFuAACApDBewXG5XBo4cKDf9oEDB8rlcnXaR5JSU1PbbU9NTdWhQ4cC9jl27Jgeeugh3XHHHZ3OpaGhQQ0NDb7HbrdbkuTxeOTxeIIvJETecewarzeihvagjvagjj1HDe1BHVt1pQZdDjhFRUVatGhR0DY7duyQJDkcDr99lmUF3N5Wx/2d9XG73frhD3+o0aNH64EHHuh0vOLi4oBzLi0tVWJiYtC5dJXT6bR1vN6IGtqDOtqDOvYcNbQHdZROnjwZctsuB5y7775bN998c9A2Q4cO1fvvv69PP/3Ub9/Ro0f9rtB4paWlSWq5kjNo0CDf9iNHjvj1qa+v16RJk9SvXz9t3rxZcXFxnc5nwYIFKiws9D12u93KyMhQXl6ekpKSgq4lVB6PR06nUxMnTgw6F3SOGtqDOtqDOvYcNbQHdWzlfQcmFF0OOCkpKUpJSTltu5ycHNXV1emdd97RJZdcIkl6++23VVdXp/Hjxwfsk5WVpbS0NDmdTl100UWSpMbGRpWVlenRRx/1tXO73brqqqsUHx+vV199VQkJCUHnEh8fr/j4eL/tcXFxtp8s4Rizt6GG9qCO9qCOPUcN7UEd1aX1h+0m41GjRmnSpEmaNWuWtm/fru3bt2vWrFn60Y9+1O4TVCNHjtTmzZsltbw1NXfuXC1evFibN2/WP//5T/3sZz9TYmKibr31VkktV27y8vJ04sQJrV27Vm63Wy6XSy6XS01NTeFaDgAAiCJh/djR+vXrNWfOHN+noq655hotX768XZv9+/e3+yV99913n/7zn/+ooKBAx48f17hx41RaWqr+/ftLknbu3Km3335bkjR8+PB2Y1VVVWno0KFhXBEAAIgGYQ04AwYM0AsvvBC0jWVZ7R47HA4VFRWpqKgoYPvLL7/crw8AAEBb/C0qAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGCcsAac48ePKz8/X8nJyUpOTlZ+fr4+//zzoH0sy1JRUZHS09N1xhln6PLLL9eePXs6bTt58mQ5HA698sor9i8AAABEpbAGnFtvvVWVlZUqKSlRSUmJKisrlZ+fH7TPY489pqVLl2r58uXasWOH0tLSNHHiRNXX1/u1XbZsmRwOR7imDwAAolRsuAbet2+fSkpKtH37do0bN06StGbNGuXk5Gj//v0aMWKEXx/LsrRs2TItXLhQP/7xjyVJzz//vFJTU/Xiiy/qjjvu8LX9xz/+oaVLl2rHjh0aNGhQuJYBAACiUNgCTkVFhZKTk33hRpIuvfRSJScnq7y8PGDAqaqqksvlUl5enm9bfHy8JkyYoPLycl/AOXnypG655RYtX75caWlpp51LQ0ODGhoafI/dbrckyePxyOPxdHuNbXnHsWu83oga2oM62oM69hw1tAd1bNWVGoQt4LhcLg0cONBv+8CBA+VyuTrtI0mpqanttqempurQoUO+x/PmzdP48eN17bXXhjSX4uJiLVq0yG97aWmpEhMTQxojVE6n09bxeiNqaA/qaA/q2HPU0B7UseUCR6i6HHCKiooChoW2duzYIUkB74+xLOu098103N+2z6uvvqrXX39du3btCnnOCxYsUGFhoe+x2+1WRkaG8vLylJSUFPI4wXg8HjmdTk2cOFFxcXG2jNnbUEN7UEd7UMeeo4b2oI6tvO/AhKLLAefuu+/WzTffHLTN0KFD9f777+vTTz/123f06FG/KzRe3rebXC5Xu/tqjhw54uvz+uuv69///rfOOuusdn2vv/565ebmauvWrX7jxsfHKz4+3m97XFyc7SdLOMbsbaihPaijPahjz1FDe1BHdWn9XQ44KSkpSklJOW27nJwc1dXV6Z133tEll1wiSXr77bdVV1en8ePHB+yTlZWltLQ0OZ1OXXTRRZKkxsZGlZWV6dFHH5UkzZ8/XzNnzmzX74ILLtATTzyhq6++uqvLAQAABgrbPTijRo3SpEmTNGvWLK1evVqS9Itf/EI/+tGP2t1gPHLkSBUXF2vq1KlyOByaO3euFi9erPPPP1/nn3++Fi9erMTERN16662SWq7yBLqxODMzU1lZWeFaDgAAiCJhCziStH79es2ZM8f3qahrrrlGy5cvb9dm//79qqur8z2+77779J///EcFBQU6fvy4xo0bp9LSUvXv3z+cUwUAAAYJa8AZMGCAXnjhhaBtLMtq99jhcKioqEhFRUUhH6fjGAAAoHfjb1EBAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCDgAAMA4BBwAAGIeAAwAAjEPAAQAAxiHgAAAA4xBwAACAcWIjPYFIsCxLkuR2u20b0+Px6OTJk3K73YqLi7Nt3N6EGtqDOtqDOvYcNbQHdWzl/bnt/TkeTK8MOPX19ZKkjIyMCM8EAAB0VX19vZKTk4O2cVihxCDDNDc3q6amRv3795fD4bBlTLfbrYyMDH300UdKSkqyZczehhragzragzr2HDW0B3VsZVmW6uvrlZ6erj59gt9l0yuv4PTp00eDBw8Oy9hJSUm9/gTsKWpoD+poD+rYc9TQHtSxxemu3HhxkzEAADAOAQcAABiHgGOT+Ph4PfDAA4qPj4/0VKIWNbQHdbQHdew5amgP6tg9vfImYwAAYDau4AAAAOMQcAAAgHEIOAAAwDgEHAAAYBwCjs0OHjyoGTNmKCsrS2eccYbOO+88PfDAA2psbIz01KLOww8/rPHjxysxMVFnnXVWpKcTFVasWKGsrCwlJCQoOztb27Zti/SUos6bb76pq6++Wunp6XI4HHrllVciPaWoU1xcrO985zvq37+/Bg4cqOuuu0779++P9LSiysqVK3XhhRf6frlfTk6O/vKXv0R6WlGFgGOzDz74QM3NzVq9erX27NmjJ554QqtWrdL9998f6alFncbGRt1444268847Iz2VqLBp0ybNnTtXCxcu1K5du5Sbm6vJkyeruro60lOLKidOnNC3vvUtLV++PNJTiVplZWW66667tH37djmdTp06dUp5eXk6ceJEpKcWNQYPHqxHHnlE7777rt599119//vf17XXXqs9e/ZEempRg4+JfwUef/xxrVy5Uh9++GGkpxKV1q1bp7lz5+rzzz+P9FS+1saNG6eLL75YK1eu9G0bNWqUrrvuOhUXF0dwZtHL4XBo8+bNuu666yI9lah29OhRDRw4UGVlZbrssssiPZ2oNWDAAD3++OOaMWNGpKcSFbiC8xWoq6vTgAEDIj0NGKyxsVE7d+5UXl5eu+15eXkqLy+P0KyAFnV1dZLE98Fuampq0saNG3XixAnl5OREejpRo1f+sc2v0r///W/99re/1W9+85tITwUGq62tVVNTk1JTU9ttT01NlcvlitCsgJa//lxYWKjvfe97GjNmTKSnE1V2796tnJwcffnll+rXr582b96s0aNHR3paUYMrOCEqKiqSw+EI+vXuu++261NTU6NJkybpxhtv1MyZMyM086+X7tQRoXM4HO0eW5bltw34Kt199916//33tWHDhkhPJeqMGDFClZWV2r59u+68805Nnz5de/fujfS0ogZXcEJ099136+abbw7aZujQob5/19TU6IorrlBOTo5+97vfhXl20aOrdURoUlJSFBMT43e15siRI35XdYCvyj333KNXX31Vb775pgYPHhzp6USdvn37avjw4ZKksWPHaseOHXryySe1evXqCM8sOhBwQpSSkqKUlJSQ2n7yySe64oorlJ2dreeee059+nChzKsrdUTo+vbtq+zsbDmdTk2dOtW33el06tprr43gzNAbWZale+65R5s3b9bWrVuVlZUV6SkZwbIsNTQ0RHoaUYOAY7OamhpdfvnlyszM1JIlS3T06FHfvrS0tAjOLPpUV1frs88+U3V1tZqamlRZWSlJGj58uPr16xfZyX0NFRYWKj8/X2PHjvVdOayurtbs2bMjPbWo8sUXX+jAgQO+x1VVVaqsrNSAAQOUmZkZwZlFj7vuuksvvvii/vznP6t///6+K4vJyck644wzIjy76HD//fdr8uTJysjIUH19vTZu3KitW7eqpKQk0lOLHhZs9dxzz1mSAn6ha6ZPnx6wjm+88Uakp/a19fTTT1tDhgyx+vbta1188cVWWVlZpKcUdd54442A59306dMjPbWo0dn3wOeeey7SU4sat99+u++1fM4551g/+MEPrNLS0khPK6rwe3AAAIBxuDkEAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOP8H/Wx8qF0HQGSAAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = randn(100) # 100 gaussian random numbers:\n", "plot(x, x * 0, \"r.\")\n", "grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is more informative to plot a [histogram](https://en.wikipedia.org/wiki/Histogram):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = randn(10000)\n", "hist(x, bins=100);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The mean is the **center** of this peak and the square root $S$ of the variance is a measure of the **width** of this peak.\n", "\n", "The mean of those 10000 samples is a pretty good estimate for the true mean (= 0) of the underlying normal distribution:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.004847893500037312" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sample variance is:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0092267528416228" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum((x.-mean(x)).^2)/(length(x)-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or (equivalently but more efficient) the function `var` from the [`Statistics` standard library](https://docs.julialang.org/en/v1/stdlib/Statistics/#Statistics) in Julia:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0092267528416228" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "which is a pretty good estimate for the true variance (= 1).\n", "\n", "If we looked at more points, we would get better estimates:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0006185283563578413, 0.999645039441104)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xbig = randn(10^7)\n", "mean(xbig), var(xbig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mean and variance in linear algebra\n", "\n", "If we define the vector $o = (1,1,\\ldots)$ to be the vector of $m$ 1's, with $o^T o = m$, then the mean of $x$ is:\n", "\n", "$$\n", "\\mu = \\frac{o^T x}{o^T o}\n", "$$\n", "\n", "which is simply the coefficient in the **projection $o\\frac{o^Tx}{o^To} = o\\mu$ of x onto the line spanned by o**. And the sample variance is\n", "\n", "$$\n", "\\operatorname{Var}(x) = \\frac{\\Vert x - \\mu o \\Vert^2}{m-1} = \\frac{\\left\\Vert \\left(I - \\frac{o o^T}{o^T o} \\right) x \\right\\Vert^2}{m-1}\n", "$$\n", "\n", "is the **length² of the projection of x orthogonal to o** divided by $m-1$.\n", "\n", "In fact, the $m-1$ denominator is closely related to the fact that this orthogonal projection has an $m-1$ dimensional column space (the complement of the line spanned by $o$): after you subtract off the mean, there are only $m-1$ degrees of freedom left. (This is just a handwaving argument, but can be made precise; for more careful derivations of this denominator, see e.g. [Bessel's correction](https://en.wikipedia.org/wiki/Bessel%27s_correction) on Wikipedia or [this 18.06 notebook](http://nbviewer.jupyter.org/github/stevengj/1806/blob/spring18/lectures/Sample%20Variance%20division%20by%20n-1.ipynb).)\n", "\n", "### Julia mean and variance by projection:\n", "\n", "You can create a vector `o` of $$m$$ 1's in Julia simply via [`ones(m)`](https://docs.julialang.org/en/v1/base/arrays/#Base.ones), which means we could compute the mean and variance via:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10000-element Vector{Float64}:\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " ⋮\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0\n", " 1.0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "o = ones(length(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mean $\\mu = o^T x / o^T o$ via projection:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.004847893500037312" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "μ = o'x / o'o" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.004847893500037312" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean(x) # same answer:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Variance via projection $\\Vert (I - oo^T / o^T o) x\\Vert^2 / (m-1)$:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0092267528416228" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "norm((I - o*o'/o'o)*x)^2 / (o'o - 1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0092267528416228" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var(x) # same answer:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One thing to be careful of whenever we perform projections is the parentheses: we could accidentally do a *lot* of unnecessary work!\n", "\n", "In particular:\n", "\n", "* Computing $(oo^T)x$ first forms an $m \\times m$ matrix $oo^T$, and then multiples it by a vector $x$. This requires $\\Theta(m^2)$ arithmetic operations and storage for $m^2 numbers$ (the matrix).\n", "\n", "* Computing $o(o^Tx)$ gives the same result, but only does a dot product $o^T x$ followed by a scalar–vector multiplication (scaling $o$), which requires $\\Theta(m)$ arithmetic operations and storage for $m$ numbers (the vector).\n", "\n", "Here, $m = 10^4$, so parenthesizing in the wrong way above means we took about 10000× more memory and time than we had to! It's *much* more efficent to compute the projection via:\n", "$$\n", "\\left(I - \\frac{oo^T}{o^T o}\\right) x = x - o\\frac{o^T x}{o^T o}\n", "$$\n", "giving the variance as:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0092267528416228" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "norm(x - o*(o'x)/o'o)^2 / (o'o - 1) # same answer, much faster" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Covariance and Correlation\n", "\n", "A key question in statistics is whether/how two sets of data are **correlated**. If you have two variables $x$ and $y$, do they tend to \"move together\"?\n", "\n", "An intuitive measure for this is: **when x is greater/less than its mean, is y *also* greater/less than its mean?** Translated into math, this leads to the **covariance**:\n", "\n", "$$\n", "\\operatorname{Covar}(x,y) = \\frac{1}{m-1}\\sum_{k=1}^m (x_k - \\operatorname{mean}(x)) (y_k - \\operatorname{mean}(y)) = \\frac{(Px)^T (Py)}{m-1} = \\frac{x^T P y}{m-1}\n", "$$\n", "\n", "where $P = I - \\frac{oo^T}{o^T o}$ is the projection operator from above that subtracts the mean from a vector (i.e. it projects vectors onto the subspace of vectors with zero mean). (In the last step we used the facts that $P^T = P$ and $P^2 = P$.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, here are plots of two very correlated vectors x and y of data and a third data set z that is just independent random numbers" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "PyObject " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "θ = range(0,4π,length=100)\n", "x = @. sin(θ + randn()*0.1) * (1 + 0.3*randn())\n", "y = @. sin(θ + randn()*0.1) * (1 + 0.3*randn())\n", "z = randn(100)\n", "plot(x, \"b.-\")\n", "plot(y, \"r.-\")\n", "plot(z, \"g.-\")\n", "legend([\"x = sin with noise\",\"y = sin with noise\",\"z = noise\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All three have mean nearly zero:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-0.043997529467936246, -0.02138613818877366, 0.13625706217021702)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean(x),mean(y),mean(z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But the covariance of x and y is totally different from the covariance of x and z:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "covar (generic function with 1 method)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# A simple covariance function. See https://github.com/JuliaStats/StatsBase.jl for\n", "# better statistical functions in Julia.\n", "covar(x,y) = dot(x .- mean(x), y .- mean(y)) / (length(x) - 1)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.49167750557613343, 0.022123022470670186)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "covar(x,y), covar(x,z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The variance and covariance have the units of the data squared. I can make the covariance of x and y smaller simply by dividing y by 10, which doesn't see like a good measure of how correlated they are.\n", "\n", "Often, it is nicer to work with a dimensionless quantity *independent* of the vector lengths, the **correlation**:\n", "\n", "$$\n", "\\operatorname{Cor}(x,y) = \\frac{\\operatorname{Covar}(x,y)}{\\sqrt{\\operatorname{Var}(x) \\operatorname{Var}(y)}} = \\frac{(Px)^T (Py)}{\\Vert Px \\Vert \\; \\Vert Py \\Vert}\n", "$$\n", "\n", "This is just the dot product of the vectors (after subtracting their means) divided by their lengths.\n", "\n", "It turns out that Julia's Statistics module has a built-in function `cor` that computes precisely this:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9083413856130808" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "covar(x,y) / sqrt(covar(x,x) * covar(y,y)) # correlation, manually computed" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9083413856130808" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cor(x,y)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.02974364653143366" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cor(x,z)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "30.539005520157996" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "abs(cor(x,y)/cor(x,z))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we've scaled out the overall length of the vectors, we can sensibly compare the correlation of x,y with the correlation of x,z, and we see that the former are more than 10x the correlation of the latter in this sample" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way of seeing this is to plot $y$ vs $x$ or $z$ vs $x$:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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DdOmTXP43HvuuQeRkZH4wx/+gLlz5+LatWtYu3YtLl682GDfbt264YMPPsDatWuRnp6OsLAw9O7dG2PGjMGmTZtw33334U9/+hP69u2LiIgInDhxAnl5eRgxYgQefPBBdOnSBWPHjsXq1asRERGB3/72t/j2228tM850R938aCIiciQvL08AcHqznonkzA8//GDZPzc31+axa9euialTp4rbbrtNxMbGipiYGNGpUyexYMECceXKFct+8qyivLw8p8e5fPmy6Ny5s+jatavNc4UQYvr06SIiIsJmZlO7du1czjKy9tVXX4l+/fqJJk2aiNatW4sFCxaI9evXO5yNNWzYsAbPv+uuu8Rdd91ls62srExMmjRJJCcni4iICJGSkiIefvhhcfbsWcs+x48fF4888oho0aKFiIiIEJ06dRIrV64UtbW1ln3k2VgrV65scFz5c6uoqHD4vt58801x++23iyZNmoiYmBjRoUMHMX78eFFYWGjZx9FsrA8//FB0795dREdHi9atW4unn35a7Ny5s8H/0YULF8SoUaNE8+bNhclkspnVdv36dbFq1SrL6zRt2lR07txZPPHEE+LHH3+07FdVVSWeeuopkZiYKKKjo8Udd9wh9u3bJ9q1a6e72VgmIYRQIcYiIiIiCgrm7BAREZGhMdghIiIiQ2OwQ0RERIbGYIeIiIgMjcEOERERGRqDHSIiIjI0FhUkInKjrq4Op06dQrNmzVwuDUBEgSOEwC+//IKUlBSEhXnXV8Ngh4jIjVOnTiE1NVXtZhARgLKyMreLudpjsENE5Ia8OGJZWZk+S+UTGUBlZSVSU1Mt30dvMNghInJDHrqKjY1lsEOkMl+GkpmgTERERIbGYIeIiIgMjcEOERERGRqDHSIiIjI0BjtERERkaAx2iIiINKqwEPjNb6R78h2DHSIiIo3asAHIywPeflvtlugb6+wQERFpyPHjwLlzgMkEbN0qbduyBcjMBIQAEhKAdu3UbaPeMNghIiLSkLS0+n/L9fMqKoD09PrtQgS1SbrHYSwiIiIN2bgRaPSfrgg5qJHvGzWSHifvsGeHiIhIQx59FOjSxbYnR5afD/TqFfw26R17doiIiDQqLMz2nnzDj4+IiEhjEhOB5GSpd2fdOuk+OVnaTt7jMBYREZHGtGkDlJQAkZFSkvKUKUB1NRAVpXbL9InBDhER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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(-2.0, 2.0)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subplot(1,2,1)\n", "plot(x, y, \"r*\")\n", "axis(\"square\")\n", "title(\"y vs. x: correlated\")\n", "xlabel(L\"x\")\n", "ylabel(L\"y\")\n", "xlim(-2, 2)\n", "\n", "subplot(1,2,2)\n", "plot(x, z, \"b*\")\n", "axis(\"square\")\n", "title(\"z vs. x: uncorrelated\")\n", "xlabel(L\"x\")\n", "ylabel(L\"z\")\n", "xlim(-2, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Multidimensional data\n", "\n", "Instead of measuring *one* number per sample, we might be performing *many* measurements of $n$ different quantities, giving us an $m \\times n$ *matrix* $X$ of \"multidimensional\" samples (one per row).\n", "\n", "## Example: Fossil tooth data\n", "\n", "A nice example was presented in [this AMS article](https://mathvoices.ams.org/featurecolumn/2021/08/01/principal-component-analysis/), taken in turn from [this review article](https://royalsocietypublishing.org/doi/10.1098/rsta.2015.0202). Scientists had collected fossil teeth from species of an early mammal-like genus called [*Kuehneotherium*](https://en.wikipedia.org/wiki/Kuehneotherium) from the Triassic/Jurassic periods:\n", "\n", "![image.png](https://i0.wp.com/mathvoices.ams.org/featurecolumn/wp-content/uploads/sites/2/2021/07/wall-cover.png?w=602&ssl=1)\n", "\n", "Almost the only parts of *Kuehneotherium* that survived are teeth, and for each tooth scientists made $n = 9$ **measurements**:\n", "\n", "![image-2.png](https://i0.wp.com/mathvoices.ams.org/featurecolumn/wp-content/uploads/sites/2/2021/07/tooth-parameters.png?w=718&ssl=1)\n", "\n", "They measured $m = 88$ teeth (**samples**), and some key questions are:\n", "\n", "* How are the different measurements **correlated** with one another?\n", "* Which measurements … or **combinations of measurements** … are the most important in explaining the variations in the data?\n", "* How can you **visualize** this 9-dimensional dataset?\n", "* How can you use this data to help **classify** the teeth into different groups (e.g. species)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The covariance and correlation matrices\n", "\n", "If we have a bunch of data sets, we might want the covariance or correlation of *every* pair of data sets. Since these are basically dot products, asking for *all* of the dot products is the same as asking for a **matrix multiplication**.\n", "\n", "In particular, suppose that $X$ is the $m \\times n$ matrix whose **columns** are $n$ different datasets of length $m$ samples each. First, we need to subtract off the means of each column to form a new matrix $A$:\n", "\n", "$$\n", "A = P X\n", "$$\n", "\n", "where $P$ is the projection matrix from above that subtracts the mean, applied to **each column** of $X$\n", "\n", "Given $A$, we can compute **all** of the covariances simply by computing the **covariance matrix S**\n", "\n", "$$\n", "S = \\frac{A^T A}{m-1}\n", "$$\n", "\n", "since $A^T A$ computes all of the dot products of all of the columns of $A$ with one another. The diagonal entries of $S$ are the variances of each dataset, and the off-diagonal elements are the covariances.\n", "\n", "Alternatively, we can compute the **correlation matrix** $C = \\hat{A}^T \\hat{A}$, where $\\hat{A}$ is simply the matrix $A$ scaled so that each column has unit length. i.e. $\\hat{A} = AD$, where $D$ is a diagonal matrix whose entries are the inverse of the length of each row, i.e. $D$ is the inverse of the diagonal entries of $A^TA$.\n", "\n", "Let's look in more detail at the two correlated vectors $x$ and $y$ from above:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "PyObject " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(x,y, \".\")\n", "xlabel(\"x\")\n", "ylabel(\"y\")\n", "axhline(0, linestyle=\"--\", color=\"k\", alpha=0.2)\n", "axvline(0, linestyle=\"--\", color=\"k\", alpha=0.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The correlation matrix is:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100×2 Matrix{Float64}:\n", " 0.124222 -0.219352\n", " 0.0227809 0.249823\n", " 0.315317 0.40813\n", " 0.61338 0.229378\n", " 0.433094 0.408413\n", " 0.468822 0.295106\n", " 0.74303 0.489606\n", " 0.799446 0.989201\n", " 0.896713 1.1552\n", " 1.61708 0.988133\n", " 1.05142 0.907034\n", " 1.32902 1.21532\n", " 1.28214 0.725336\n", " ⋮ \n", " -1.05845 -0.923803\n", " -1.06265 -1.22041\n", " -0.841951 -1.32533\n", " -0.885835 -1.24612\n", " -0.880041 -0.564796\n", " -0.742061 -0.0509618\n", " -0.516617 -0.534554\n", " -0.525201 -0.2277\n", " -0.755918 -0.486642\n", " -0.194772 -0.0799946\n", " -0.0997921 -0.281965\n", " 0.0947852 -0.0374883" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = [x.-mean(x) y.-mean(y)] # columns are x and y with means subtracted" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 Matrix{Float64}:\n", " 0.560422 0.491678\n", " 0.491678 0.522814" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S = A' * A / (length(x)-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, since there are only two datasets, $S$ is just a $2 \\times 2$ matrix." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Principal Components Analysis and the SVD\n", "\n", "A key question in analyizing data analysis is to figure out **which variables are responsible for most of the variation in the data**. These may not be the variables you measured, but may instead be some **linear combination of the measured variables**!\n", "\n", "Mathematically, this corresponds to **\"diagonalizing\" the covariance (or correlation) matrix**. This process of diagonalizing the covariance matrix is called [principal component analysis](https://en.wikipedia.org/wiki/Principal_component_analysis), or **PCA**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using the SVD basis\n", "\n", "Suppose that the take the SVD of $A$:\n", "\n", "$$\n", "A = U \\Sigma V^T\n", "$$\n", "\n", "Let's assume that $A$ is a \"tall\" matrix (lots of samples $m$) with full column rank $r=n$ (the datasets aren't redundant). Then (for the \"thin\" SVD) $U$ is an $m \\times n$ matrix with orthonormal columns forming a basis for $C(A)$, $\\Sigma$ is an $n \\times n$ diagonal matrix of the singular values $\\sigma_1,\\ldots,\\sigma_n$, and $V$ is an $n \\times n$ unitary matrix with orthonormal columns.\n", "\n", "The claim is that $V$ is the **right basis** in which look at the statistics of the different datasets $A$. $V$ represents an $n \\times n$ \"rotation\" that we can use to make new linear combination of the columns, i.e. we **write each row in the V basis** to form a new $m \\times n$ matrix:\n", "\n", "$$\n", "B = A V = U \\Sigma V^T V = U \\Sigma\n", "$$\n", "\n", "The covariance of *this* matrix (which is the *same data in a new coordinate system*) is\n", "\n", "$$\n", "S_B = \\frac{B^T B}{m-1} = \\frac{\\Sigma^T U^T U \\Sigma}{m-1} = \\frac{\\Sigma^2}{m-1}\n", "$$\n", "\n", "Since $\\Sigma^T \\Sigma = \\Sigma^2$ is a **diagonal matrix** of the *squares* $\\sigma_k^2$ of the singular values $\\sigma_k$, we find:\n", "\n", "* In the $V$ basis, the different datasets become *uncorrelated* ($S_B$ is *diagonal*).\n", "* The squares $\\sigma_k^2$ of the singular values are the variances of the *uncorrelated components of the data* (the eigenvalues of $S_B$).\n", "* The right singular vectors $V$ tell you *what linear combinations* of the datasets give you *uncorrelated* variables.\n", "\n", "Let's try it:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "SVD{Float64, Float64, Matrix{Float64}, Vector{Float64}}\n", "U factor:\n", "100×2 Matrix{Float64}:\n", " 0.00618941 0.110215\n", " -0.0187483 -0.0741125\n", " -0.050436 -0.0340296\n", " -0.0594114 0.117395\n", " -0.0588439 0.00274283\n", " -0.0536211 0.0507735\n", " -0.0864845 0.0733496\n", " -0.124751 -0.0714615\n", " -0.143058 -0.0950001\n", " -0.182912 0.184808\n", " -0.137065 0.0341293\n", " -0.17797 0.0207631\n", " -0.141041 0.165431\n", " ⋮ \n", " 0.138715 -0.0308745\n", " 0.159347 0.0642684\n", " 0.150821 0.167468\n", " 0.148516 0.127972\n", " 0.101397 -0.0917824\n", " 0.0563457 -0.215694\n", " 0.0734399 0.0121358\n", " 0.0530159 -0.0903411\n", " 0.0871993 -0.0783474\n", " 0.0193561 -0.0349498\n", " 0.0264368 0.0604605\n", " -0.00418104 0.0418593\n", "singular values:\n", "2-element Vector{Float64}:\n", " 1.0166882449559171\n", " 0.22266815661458467\n", "Vt factor:\n", "2×2 Matrix{Float64}:\n", " -0.720492 -0.693464\n", " 0.693464 -0.720492" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U, σ, V = svd(A / sqrt(length(x)-1))" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Vector{Float64}:\n", " 1.033654987431543\n", " 0.049581107970137206" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "σ.^2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conveniently, the convention for the SVD is to sort the singular values in descending order $\\sigma_1 \\ge \\sigma_2 \\ge \\cdots$. So, the **first** singular value/vector represents *most* of the variation in the data, and so on." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 adjoint(::Matrix{Float64}) with eltype Float64:\n", " -0.720492 0.693464\n", " -0.693464 -0.720492" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "V" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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z27aysnXt63ccI0DgYAkqVu3bk22ScQ1JhhCRCZNmqSXXnpJK1eu1K9//WsVFRXp0ksvVU1Njd1di4sDBw5IkrKzsxvcn52dHfpdsjpw4IB69uzZ6P6ePXs223cnXOPy8nKdOHEiquty4MCBsO2PHz+u8vLyuPU1Flpzvrm5uXryySe1ePFiLVmyRIMHD9aECRO0du3aRHQ54Zx8fVvLLdfYNE3NmjVLF110kYYPH95ku0RcY3atd4l7771X9913X7NtioqKNGrUqFY9/9SpU0PHw4cP16hRo9SvXz+9+eabmjJlSques63ifc6SZBhGg9umaTa6L1EiPV+pcb+llvuejNe4KdFel3Dtw92frKI538GDB2vw4MGh24WFhdq7d68eeughjRs3Lq79tIvTr2+03HKNb731Vn344Yd65513Wmwb72tMMOQSt956q66//vpm2+Tl5cXs9XJzc9WvXz998sknMXvOaMXznHNyciRZ30hyc3ND9x88eLDRN5REifR8P/zwQ33xxReNfnfo0KGo+p4M1/h0WVlZSklJaTQq0tx1ycnJCdu+Xbt26t69e9z6GgutOd9wxowZoxdffDHW3UsKTr6+seS0a3zbbbfpjTfe0Nq1a9W7d+9m2ybiGhMMuURWVpaysrIS9nqHDx/W3r17GwQKiRbPc+7fv79ycnK0YsUKFRQUSLLyN9asWaMHH3wwLq/ZkkjPt7CwUIFAQB988IHOP/98SdL777+vQCCgCy+8MOLXS4ZrfLrU1FSNHDlSK1as0DXXXBO6f8WKFbr66qvDPqawsFB/+tOfGty3fPlyjRo1Su3bt49rf9uqNecbTnFxcVJdx1hy8vWNJadcY9M0ddttt2np0qVavXq1+vfv3+JjEnKNY5aKDcf47LPPzOLiYvO+++4zO3XqZBYXF5vFxcVmVVVVqM3gwYPNJUuWmKZpmlVVVeaPf/xjc926dWZJSYm5atUqs7Cw0DzjjDPMyspKu04jKtGes2ma5vz5802/328uWbLE3LJli/m9733PzM3NdcQ5X3755eY555xjrl+/3ly/fr05YsQI88orr2zQxqnX+JVXXjHbt29vPv300+a2bdvMO+64w+zYsaO5Z88e0zRNc/bs2eb06dND7Xfv3m126NDBvPPOO81t27aZTz/9tNm+fXvztddes+sUohLt+T7yyCPm0qVLzZ07d5pbt241Z8+ebUoyFy9ebNcpRKWqqir09ynJfPjhh83i4mLzs88+M03TfdfXNKM/Zydf45tvvtn0+/3m6tWrzbKystDP0aNHQ23suMYEQx40Y8YMU1Kjn1WrVoXaSDKfeeYZ0zRN8+jRo+bEiRPNHj16mO3btzf79u1rzpgxwywtLbXnBFoh2nM2TWt5/S9/+UszJyfHTEtLM8eNG2du2bIl8Z1vhcOHD5s33HCD2blzZ7Nz587mDTfc0GgZrpOv8aOPPmr269fPTE1NNc8777wGy3JnzJhhXnzxxQ3ar1692iwoKDBTU1PNvLw88/HHH09wj9smmvN98MEHzTPPPNNMT083u3btal500UXmm2++aUOvW6du2fjpPzNmzDBN053XN9pzdvI1Dneep7/32nGNjZOdAwAA8CSW1gMAAE8jGAIAAJ5GMAQAADyNYAgAAHgawRAAAPA0giEAAOBpBEMAAMDTCIYAAICnEQwBAABPIxgCAACeRjAEAAA8jWAIgKccOnRIOTk5mjt3bui+999/X6mpqVq+fLmNPQNgFzZqBeA5y5Yt0+TJk7Vu3ToNGTJEBQUF+va3v60FCxbY3TUANiAYAuBJP/zhD/XXv/5Vo0eP1ubNm1VUVKT09HS7uwXABgRDADypurpaw4cP1969e7Vhwwadc845dncJgE3IGQLgSbt379b+/fsVDAb12Wef2d0dADZiZAiA59TW1ur888/XueeeqyFDhujhhx/Wli1blJ2dbXfXANiAYAiA5/z7v/+7XnvtNW3evFmdOnXS+PHj1blzZ/35z3+2u2sAbMA0GQBPWb16tRYsWKAXXnhBmZmZ8vl8euGFF/TOO+/o8ccft7t7AGzAyBAAAPA0RoYAAICnEQwBAABPIxgCAACeRjAEAAA8jWAIAAB4GsEQAADwNIIhAADgaQRDAADA0wiGAACApxEMAQAATyMYAgAAnvb/AWtDKiLg/6r8AAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "(-1.5937757824796952, 1.7699783509492324, -1.4891141000001884, 1.5795839675613146)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(x.-mean(x),y.-mean(y), \".\")\n", "xlabel(\"x\")\n", "ylabel(\"y\")\n", "axhline(0, linestyle=\"--\", color=\"k\", alpha=0.2)\n", "axvline(0, linestyle=\"--\", color=\"k\", alpha=0.2)\n", "arrow(0,0, V[:,1]..., head_width=0.1, color=\"r\")\n", "arrow(0,0, V[:,2]..., head_width=0.1, color=\"r\")\n", "text(V[1,1]+0.1,V[2,1]-0.1, \"v₁\", color=\"r\")\n", "text(V[1,2]+0.1,V[2,2], \"v₂\", color=\"r\")\n", "axis(\"equal\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PCA on the fossil-tooth data\n", "\n", "Back to our *Kuehneotherium* example, scientists found that **95.5% of the variation** in the data could be attributed to just the **two largest singular values**.\n", "\n", "Therefore, if they **projected** the data onto the corresponding $v_1, v_2$ basis, they now have a **two-dimensional dataset** that contains *almost all* of the original information (equivalently a \"rank-2 approximation\" of $A$).\n", "\n", "Furthermore, plotting the data on these $v_1, v_2$ axes allowed them to not only visualize the data but also to identify **clusters** corresponding to particular species and subgroups. For reference, the original 9 axes (9 measurements) are shown as red arrows projected onto this plane:\n", "\n", "![image](https://i0.wp.com/mathvoices.ams.org/featurecolumn/wp-content/uploads/sites/2/2021/07/cadami.png?w=761&ssl=1)\n", "\n", "## More cool PCA applications\n", "\n", "* The [eigen-walker](https://www.biomotionlab.ca/Demos/BMLwalker.html) uses PCA to analyze variations in human gaits.\n", "* [eigen-faces](https://en.wikipedia.org/wiki/Eigenface) use PCA to analyze facial variations.\n", "\n", "If you google \"PCA example\" or \"principal components analysis\" you will find lots of other examples and tutorials." ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "anaconda-cloud": {}, "kernelspec": { "display_name": "Julia 1.8.0", "language": "julia", "name": "julia-1.8" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.8.2" } }, "nbformat": 4, "nbformat_minor": 2 }