{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "daa444e1",
   "metadata": {},
   "source": [
    "| [**Lattice QCD I**](https://homepages.uni-regensburg.de/~lec17310/teaching/wise2122/lqft.html) | - | [**Christoph Lehner**](https://go.ur.de/lehner) |\n",
    "|:-|--|-:|\n",
    "\n",
    "# Chapter 3: statistics of continuous variables"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b33309c",
   "metadata": {},
   "source": [
    "## Univariate probability distribution and normal distribution\n",
    "\n",
    "Let us start with a random variable $x \\in \\mathbb{R}$ following the probability density function (PDF) $p:\\mathbb{R}\\to \\mathbb{R}$ with\n",
    "$$\n",
    "\\begin{align}\n",
    "\\int dx p(x) = 1 \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Since we only consider one variable, we call such distributions **univariate**.\n",
    "\n",
    "We define the expectation value of a function $f:\\mathbb{R}\\to\\mathbb{C}$ of this variable as\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle f(x) \\rangle = \\int dx p(x) f(x) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "Next, we call $\\langle x^m \\rangle$ the $m$-th **moment** of the distribution with first non-trivial case\n",
    "$$\n",
    "\\mu = \\langle x \\rangle\n",
    "$$\n",
    "the **mean** of the distribution.  We refer to $\\langle (x - \\mu)^m \\rangle$ as the $m$-th **central moment** of the distribution and the first non-trivial case\n",
    "$$\n",
    "\\sigma^2 = \\langle (x - \\mu)^2 \\rangle\n",
    "$$\n",
    "as the **variance** of the distribution and call $\\sigma$ the **standard deviation**.\n",
    "\n",
    "We define the fraction of results that fall within $n$ $\\sigma$ around the mean as\n",
    "$$\n",
    "\\begin{align}\n",
    "f_n = \\int_{\\mu - n\\sigma}^{\\mu + n\\sigma} dx p(x)\n",
    "\\end{align}\n",
    "$$\n",
    "which depends on the PDF.  A particularly important case is the **normal distribution**\n",
    "with\n",
    "$$\n",
    "\\begin{align}\n",
    "p(x) = \\frac1{\\sqrt{2\\pi \\sigma^2}} e^{-\\frac{(x-\\mu)^2}{2 \\sigma^2}}\n",
    "\\end{align}\n",
    "$$\n",
    "for which the PDF only depends on the mean and the variance.  For the normal distribution,\n",
    "the $f_n$ are independent of $\\mu$ and $\\sigma$ (***Homework***: show this independence) and\n",
    "$$\n",
    "\\begin{align}\n",
    "f_1 &= 0.682\\ldots \\,, \\\\\n",
    "f_2 &= 0.954\\ldots \\,, \\\\\n",
    "f_3 &= 1 - 2.6\\ldots \\times 10^{-3} \\,, \\\\\n",
    "f_4 &= 1 - 6.3 \\ldots \\times 10^{-5} \\,, \\\\\n",
    "f_5 &= 1 - 5.7\\ldots \\times 10^{-7} \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "So if we know the PDF, we can translate fluctuations of size $n$ $\\sigma$ to probabilities of such a fluctuation.  And if the PDF is normal, the $f_n$ are fixed numbers.\n",
    "\n",
    "Interestingly, the normal distribution naturally appears in averaging processes.  Let us first look at some data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bbb4ac2c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "random.seed(13)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "29ed61ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4LUlEQVR4nO3dd3gU5drH8e+9JQlVKRGVIkWUFmpoJ4p0wQIeRQERCRYUFVBBDqAUQSyIiojnKCpiAQUFJHRRg4CCEKoCooCIQUS6AoZsed4/dskbIGWTbDLZzf25rlzsTtn9zSbcmcw8c48YY1BKKRW+bFYHUEoplb+00CulVJjTQq+UUmFOC71SSoU5LfRKKRXmtNArpVSYy7bQi0hlEUkUke0isk1EBmWwjIjIZBHZJSJbRaRxunl9RORn/1efYG+AUkqprEl24+hF5DLgMmPMRhEpBWwAbjHGbE+3zA3AAOAGoDnwqjGmuYiUBZKAWMD4121ijDmWL1ujlFLqAtnu0RtjDhhjNvof/w3sACqet1hX4H3jsxa42P8L4npguTHmqL+4Lwc6BXULlFJKZcmRk4VFpCrQCPjuvFkVgd/SPU/2T8tsepbKly9vqlatmpNoSilVpG3YsOGwMSY6o3kBF3oRKQnMAR41xvwVrHDpXr8f0A+gSpUqJCUlBfstlFIqbInIr5nNC2jUjYg48RX5GcaYuRkssh+onO55Jf+0zKZfwBgz1RgTa4yJjY7O8JeSUkqpXAhk1I0A7wA7jDEvZ7JYAnC3f/RNC+CEMeYAsAzoKCJlRKQM0NE/TSmlVAEJ5NBNHNAb+F5ENvunjQCqABhj3gAW4xtxsws4DfT1zzsqIuOA9f71xhpjjgYtvVJKqWxlW+iNMasByWYZAzycybxpwLRcpVMqj1wuF8nJyaSkpFgdRamgiIqKolKlSjidzoDXydGoG6VCTXJyMqVKlaJq1ar4jkIqFbqMMRw5coTk5GSqVasW8HraAkGFtZSUFMqVK6dFXoUFEaFcuXI5/gtVC70Ke1rkVTjJzc+zFnqllApzWuiVymciwuDBg9OeT5w4kTFjxhRohtatW+fqIsRRo0bxxRdfADBp0iROnz6dNq9kyZJByxfq0n9OhZGejA2yqsMWFfh77n3+xgJ/TxW4yMhI5s6dy/DhwylfvnyO13e73Tgc1vxXHTt2bNrjSZMmcdddd1G8eHFLshRm6T+nwkj36JXKZw6Hg379+vHKK69cMG/v3r20bduW+vXr065dO/bt2wdAfHw8Dz74IM2bN2fo0KHEx8fTv39/WrRoQfXq1VmxYgX33HMPtWvXJj4+Pu31+vfvT2xsLHXr1mX06NFZ5lq/fj233norAPPnz6dYsWKkpqaSkpJC9erV03J8+umnTJ48md9//502bdrQpk2btNd48sknadCgAS1atODgwYMXvMfXX39Nw4YNadiwIY0aNeLvv//m5MmTtGvXjsaNGxMTE8P8+fPTPotatWoRHx/PVVddRa9evfjiiy+Ii4ujZs2arFu3DoBTp05xzz330KxZMxo1apS2fnorVqzguuuuo2vXrlSvXp1hw4YxY8YMmjVrRkxMDLt37z5n+87K7q8Uj8dDfHw89erVIyYmJu17mv51Fi9eTK1atWjSpAkDBw7kpptuAmDMmDH06dOHa6+9liuuuIK5c+cydOhQYmJi6NSpEy6XC/D90mjatCn16tWjX79+ZNdhOBC6R6+KjiXD4I/vg/ual8ZA5+ezXezhhx+mfv36DB069JzpAwYMoE+fPvTp04dp06YxcOBAPvvsM8A3NPTbb7/FbrcTHx/PsWPHWLNmDQkJCXTp0oVvvvmGt99+m6ZNm7J582YaNmzI+PHjKVu2LB6Ph3bt2rF161bq16+fYaZGjRqxefNmAFatWkW9evVYv349breb5s2bn7PswIEDefnll0lMTEz7q+TUqVO0aNGC8ePHM3ToUN566y2eeuqpc9abOHEir7/+OnFxcZw8eZKoqCgA5s2bR+nSpTl8+DAtWrSgS5cuAOzatYtPPvmEadOm0bRpU2bOnMnq1atJSEjg2Wef5bPPPmP8+PG0bduWadOmcfz4cZo1a0b79u0pUaLEOe+9ZcsWduzYQdmyZalevTr33Xcf69at49VXX+W1115j0qRJ2X7fzrd582b279/PDz/8AMDx48fPmZ+SksIDDzzAypUrqVatGj179jxn/u7du0lMTGT79u20bNmSOXPmMGHCBP7973+zaNEibrnlFh555BFGjRoFQO/evVm4cCE333xzjrOmp3v0ShWA0qVLc/fddzN58uRzpq9Zs4Y777wT8P2nXr16ddq822+/Hbvdnvb85ptvRkSIiYmhQoUKxMTEYLPZqFu3Lnv37gVg9uzZNG7c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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0PklEQVR4nO3dd3gU5drH8e+zs5uE3hGkBQQEJIGEBIKIVBGk2YCgCAEFG81yEOvhqCgiKgJ6fEERFASkKEFEinQEIYTQUQFRA0iTFjAku/u8f2zMCZCQDdlkttyf68rF7s7szG9Sbman3I/SWiOEEML3WcwOIIQQwjOkoAshhJ+Qgi6EEH5CCroQQvgJKehCCOEnrGatuHz58jo0NNSs1QshhE/aunXrSa11heymmVbQQ0NDSUhIMGv1Qgjhk5RSv+U0TQ65CCGEn5CCLoQQfkIKuhBC+AnTjqEL4Unp6ekkJyeTmppqdhQhPCIkJISqVatis9ncfo8UdOEXkpOTKVGiBKGhoSilzI4jRL5orTl16hTJycnUrFnT7ffJIRfhF1JTUylXrpwUc+EXlFKUK1cuz584paALvyHFXPiT6/l9loIuhBB+Qgq6EB6ilOKZZ57JfD5u3DhGjRpVqBlat259XTfsvfLKK6xYsQKA8ePHc/HixcxpxYsX91g+X5f1++SN5KSouEroyMUFvo5DYzoX+DoKW3BwMAsWLOD555+nfPnyeX6/3W7HajXnT/LVV1/NfDx+/Hj69OlD0aJFTcnizbJ+n7yR7KEL4SFWq5VBgwbx3nvvXTXt0KFDtG3blvDwcNq1a8fvv/8OQFxcHI899hjNmjVjxIgRxMXF8fjjjxMTE0OtWrVYvXo1AwYMoH79+sTFxWUu7/HHHycqKopbbrmFf//739fMtWXLFu69914AFi5cSJEiRUhLSyM1NZVatWpl5pg3bx4TJkzgyJEjtGnThjZt2mQu48UXX6RRo0bExMRw7Nixq9axZs0aGjduTOPGjYmIiOD8+fOkpKTQrl07IiMjCQsLY+HChZnfi3r16hEXF0fdunV58MEHWbFiBS1atKBOnTps3rwZgAsXLjBgwACaNm1KRERE5vuzWr16Na1ataJ79+7UqlWLkSNHMnPmTJo2bUpYWBgHDhy4bPv+kdunDofDQVxcHA0bNiQsLCzzZ5p1Od9++y316tWjSZMmDB06lC5dugAwatQo+vXrR8uWLalRowYLFixgxIgRhIWF0bFjR9LT0wHXfw7R0dE0bNiQQYMG4YnR42QPXfifJSPhz52eXWalMOg0JtfZnnzyScLDwxkxYsRlrw8ZMoR+/frRr18/pk6dytChQ/n6668B1yWXP/zwA4ZhEBcXx+nTp9m4cSPx8fF069aNDRs28PHHHxMdHU1SUhKNGzdm9OjRlC1bFofDQbt27dixYwfh4eHZZoqIiCApKQmAdevW0bBhQ7Zs2YLdbqdZs2aXzTt06FDeffddVq1alfkp48KFC8TExDB69GhGjBjBlClTeOmlly5737hx4/jggw9o0aIFKSkphISEAPDVV19RsmRJTp48SUxMDN26dQNg//79zJ07l6lTpxIdHc0XX3zB+vXriY+P54033uDrr79m9OjRtG3blqlTp3LmzBmaNm1K+/btKVas2GXr3r59O3v37qVs2bLUqlWLRx55hM2bN/P+++8zceJExo8fn+vP7UpJSUkcPnyYXbt2AXDmzJnLpqempvLoo4+ydu1aatasSe/evS+bfuDAAVatWsWePXto3rw58+fPZ+zYsdxzzz0sXryYu+++m8GDB/PKK68A8NBDD/HNN9/QtWvXPGfNSvbQRaEoxt90tmziKetcXrTOgEXD4bvnYdcCOHfE7HgeU7JkSfr27cuECRMue33jxo088MADgOuPd/369ZnTevTogWEYmc+7du2KUoqwsDBuuOEGwsLCsFgs3HLLLRw6dAiAL7/8ksjISCIiIti9ezd79uzJMZPVauWmm25i7969bN68maeffpq1a9eybt06WrZsmes2BQUFZe59NmnSJDNDVi1atODpp59mwoQJnDlzBqvVitaaF154gfDwcNq3b8/hw4cz9+5r1qx52Xa1a9cuc5v/Wf6yZcsYM2YMjRs3pnXr1qSmpmZ+sskqOjqaypUrExwczE033USHDh0ALltWXtWqVYuDBw8yZMgQvvvuO0qWLHnZ9H379lGrVq3Ma8SvLOidOnXCZrMRFhaGw+GgY8eOV2VatWoVzZo1IywsjJUrV7J79+7rypqV7KGLAqTpYEmgp7GalpZdBCvXR80LOhj2lYRLKbDpQ9es5etCi+EQ3guMfP5aurEnXZCGDx9OZGQk/fv3d2v+K/c4g4ODAbBYLJmP/3lut9v59ddfGTduHFu2bKFMmTLExcXler3y7bffzpIlS7DZbLRv3564uDgcDgdvv/12rvlsNlvmJXSGYWC326+aZ+TIkXTu3Jlvv/2WFi1asHTpUjZt2sSJEyfYunUrNpuN0NDQzJxXblfWbf5n+Vpr5s+fz80333zNfO4sy2q14nQ6AXA6naSlpV1zmWXKlGH79u0sXbqUjz76iC+//JKpU6de8z3ZZbJYLJd9//7JlJqayhNPPEFCQgLVqlVj1KhRHrnLOdc9dKVUNaXUKqXUHqXUbqXUsGzmaa2UOquUSsr4eiXfyYRPq6OSmWl7g8lB71HP8gczHO3peellbkr9nFsufQr/2g/P/wEDV8Kdb4I1BBY+AR9Ew44vwQPHE81StmxZevbsySeffJL52q233srs2bMBmDlzplt7xjk5d+4cxYoVo1SpUhw7dowlS5bk+p6WLVsyfvx4mjdvToUKFTh16hQ//fQTDRs2vGreEiVKcP78+TxlOnDgAGFhYTz33HNER0ezb98+zp49S8WKFbHZbKxatYrffsux62u27rzzTiZOnJh5bHnbtm15en9WoaGhbN26FYD4+PjM49gA9erVu2r+kydP4nQ6ue+++3j99ddJTEy8bPrNN9/MwYMHM/e258yZk6c8/xTv8uXLk5KSctnx/fxwZ1fIDjyjtU5USpUAtiqllmutr/yMt05r3cUjqYTPsuDkWeuXDDK+IYUivJTen1mOtjgwrp7ZsEGVJq6vmMdh32JYPQYWDISflkC3CRBcovA3wgOeeeYZJk2alPl84sSJ9O/fn7fffpsKFSrw6aefXveyGzVqREREBPXq1aNatWq0aNEi1/c0a9aMY8eOcfvttwMQHh7On3/+me3NK4MGDaJjx47ceOONrFq1yq1M48ePZ9WqVZmHUDp16sT58+fp2rUrYWFhREVFZVs4r+Xll19m+PDhhIeH43Q6qVmzJt98802elvGPgQMH0r17dxo1akTHjh0zPxWdPHky25ORhw8fpn///pl79W+++eZl04sUKcKHH36Yuazo6Og85SldujQDBw6kYcOGVKpUKc/vz4nK65lVpdRCYJLWenmW11oDz+aloEdFRWkZ4MI7Xe9li8X4m/dtk2hvbGO2vTVj7L05Q/YFOcfLFp1O2DAeVr4G5WpDz8+gYv1c1713717q1899PiGy+uabbzh48CBDhw7N83tTUlIo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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAtrklEQVR4nO3deXxU1d3H8c+5M1nYISQoECAE2YQEEhMIIjsqFoWqxUKrEvUR970PxaqVqlieSn2oSxe0FJ6KuOGCIILWsIhgFkgQwhYWMUEgRFkCBDIz5/ljkjGBLJNkZu4sv/frlVcymTt3vjeT/HLm3HPOVVprhBBC+C/D7ABCCCHqJoVaCCH8nBRqIYTwc1KohRDCz0mhFkIIP2f1xk6jo6N1XFycN3YthBBBKScn56jWOqam+7xSqOPi4sjOzvbGroUQIigppb6t7T7p+hBCCD8nhVoIIfycFGohhPBzXumjFsJTysvLKSwspKyszOwoQnhEZGQksbGxhIWFuf0YKdTCrxUWFtKqVSvi4uJQSpkdR4gm0VpTUlJCYWEh3bt3d/tx0vUh/FpZWRnt27eXIi2CglKK9u3bN/gdohRq4fekSItg0pjfZynUQgjh59wq1Eqp/Uqpb5RSuUopmckiQopSiscee8x1e86cOcycOdOnGUaOHNmoSWS///3v+fzzzwGYO3cup0+fdt3XsmVLj+ULdFV/Tv6oIScTR2mtj3otifBrcTOWN/qx+2eP92AS34uIiOD999/n8ccfJzo6usGPt9lsWK3mnLd/5plnXF/PnTuXm2++mebNm5uSxZ9V/Tn5I+n6EKIeVquVadOm8b//+78X3Ld//35Gjx5NYmIiY8aM4cCBAwCkp6dz9913M3jwYKZPn056ejr33HMPaWlpxMfHs3r1am6//Xb69u1Lenq6a3/33HMPKSkp9OvXj6effrrOXFlZWdxwww0AfPTRRzRr1oxz585RVlZGfHy8K8d7773HSy+9xMGDBxk1ahSjRo1y7eOJJ55gwIABpKWlcfjw4QueY82aNQwcOJCBAweSlJTEyZMnKS0tZcyYMSQnJ5OQkMBHH33k+ln06dOH9PR0evXqxa9//Ws+//xzhg4dSs+ePcnMzATg1KlT3H777QwaNIikpCTX46tavXo1I0aMYOLEicTHxzNjxgwWLVrEoEGDSEhIYM+ePdWOr1J97xLsdjvp6en079+fhIQE12tadT+ffPIJffr04bLLLuPBBx/k2muvBWDmzJlMnTqVYcOG0a1bN95//32mT59OQkIC48aNo7y8HHAW/dTUVPr378+0adPwxFW03P03r4FVSikN/ENrPe/8DZRS04BpAF27dm1yMCEusGIGHPrGs/u8OAGumV3vZvfddx+JiYlMnz692vcfeOABpk6dytSpU5k/fz4PPvggH374IeAcWvjVV19hsVhIT0/nxx9/ZMOGDSxdupQJEyawfv16Xn/9dVJTU8nNzWXgwIHMmjWLqKgo7HY7Y8aMYcuWLSQmJtaYKSkpidzcXADWrVtH//79ycrKwmazMXjw4GrbPvjgg7z44otkZGS43hWcOnWKtLQ0Zs2axfTp03nttdd48sknqz1uzpw5vPrqqwwdOpTS0lIiIyMB+OCDD2jdujVHjx4lLS2NCRMmAFBQUMC7777L/PnzSU1N5c033+TLL79k6dKlPP/883z44YfMmjWL0aNHM3/+fI4dO8agQYMYO3YsLVq0qPbceXl5bN++naioKOLj4/mv//ovMjMz+ctf/sLLL7/M3Llz633dzpebm0tRURFbt24F4NixY9XuLysr46677mLt2rV0796dKVOmVLt/z549ZGRkkJ+fz5AhQ1iyZAl/+tOfuP7661m+fDk///nPuf/++/n9738PwC233MKyZcu47rrrGpy1Kndb1FdorZOBa4D7lFLDz99Aaz1Pa52itU6JialxASghAlbr1q259dZbeemll6p9f8OGDfzqV78CnH+UX375peu+SZMmYbFYXLevu+46lFIkJCRw0UUXkZCQgGEY9OvXj/379wPwzjvvkJycTFJSEtu2bSM/P7/WTFarlR49erB9+3YyMzN59NFHWbt2LevWrWPYsGH1HlN4eLirtXjZZZe5MlQ1dOhQHn30UV566SWOHTuG1WpFa83vfvc7EhMTGTt2LEVFRa7WePfu3asd15gxY1zHXLn/VatWMXv2bAYOHMjIkSMpKytzvROpKjU1lY4dOxIREUGPHj246qqrAKrtq6Hi4+PZu3cvDzzwAJ9++imtW7eudv+OHTuIj493jXE+v1Bfc801hIWFkZCQgN1uZ9y4cRdkysjIYPDgwSQkJPDFF1+wbdu2RmWtyq0Wtda6qOLzEaXUB8AgYG2Tn12IhnCj5etNDz/8MMnJydx2221ubX9+CzEiIgIAwzBcX1fettls7Nu3jzlz5pCVlUW7du1IT0+vd7zt8OHDWbFiBWFhYYwdO5b09HTsdjsvvPBCvfnCwsJcQ8UsFgs2m+2CbWbMmMH48eP55JNPGDp0KCtXrmTjxo0UFxeTk5NDWFgYcXFxrpznH1fVY67cv9aaJUuW0Lt37zrzubMvq9WKw+EAwOFwcO7cuTr32a5dO/Ly8li5ciV///vfeeedd5g/f36dj6kpk2EY1X5+lZnKysq49957yc7OpkuXLsycOdMjs2rrbVErpVoopVpVfg1cBWxt8jMLEWCioqK46aab+Oc//+n63uWXX85bb70FwKJFi9xqydbmxIkTtGjRgjZt2nD48GFWrFhR72OGDRvG3LlzGTJkCDExMZSUlLBz50769+9/wbatWrXi5MmTDcq0Z88eEhIS+O1vf0tqaio7duzg+PHjdOjQgbCwMDIyMvj221pX56zR1Vdfzcsvv+zqu928eXODHl9VXFwcOTk5ACxdutTVTwzQp0+fC7Y/evQoDoeDG2+8keeee45NmzZVu793797s3bvX1Tp+++23G5SnsihHR0dTWlparf+8KdxpUV8EfFDxn8MKvKm1/tQjzy5EgHnsscd45ZVXXLdffvllbrvtNl544QViYmL417/+1eh9DxgwgKSkJPr06UOXLl0YOnRovY8ZPHgwhw8fZvhwZ29kYmIihw4dqnFSxbRp0xg3bhydOnUiIyPDrUxz584lIyPD1ZVxzTXXcPLkSa677joSEhJISUmpsSDW5amnnuLhhx8mMTERh8NB9+7dWbZsWYP2UenOO+9k4sSJDBgwgHHjxrnexRw9erTGk3hFRUXcdtttrlb4H//4x2r3N2vWjL/+9a+ufaWmpjYoT9u2bbnzzjvp378/F198cYMfXxvliTOS50tJSdFy4YDgYtbwvO3bt9O3b99GP16EpmXLlrF3714efPDBBj+2tLSUli1borXmvvvuo2fPnjzyyCMezVfT77VSKkdrnVLT9rIokxAi6FSeJG2M1157jYULF3Lu3DmSkpK46667PJiscaRQCw/RgKzJIQLfI4884vEWdFNJoRZNNtWykhnWxdgxOEZLDukonim/hS26h9nRhAgKMjNRNJqBg6etC/lD2EKyHL15xz6STEcfOqmjvBH+RwaoArMjChEUpEUtGiWSs7wS9hJjLZt53XYNz9t+jaPi/34njvJW+LP8O3w2t5ybYXJSIQKftKhFozxsXcJoI5enytN5znaLq0gDHCSayeee4phuwb/DZ8OR7SYmFSLwSYtaNFg3dYjbLSt4zz6cf9uvqnGbymL9ScTjsOopuNkzA/+bMkywJvUNHSwpKWHMmDEAHDp0CIvFQuUSCZmZmYSHh7N06VLy8/OZMcM37x5Wr17NnDlzGj32ONAtXryY559/HqUUnTp14o033mjUqoaBRFrUosEety6mHCsv2G6qc7uDRPNX2wQo+Az2r/dROs9q3749ubm55Obmcvfdd/PII4+4boeHh2Oz2ZgwYYLPinRj1DQ13NvsdrtX9muz2XjooYfIyMhwLVhVdQJSsJJCLRpkiLGNcZYsXrVNpJh29W6/0H41tOoI//kDeGFylRnOX8J0wYIF3H///QB8/PHHDB48mKSkJMaOHetarGjmzJncfvvtjBw5kvj4+GqLOz377LP07t2bK664gilTpjBnzhyg+sUCjh49Slxc3AVZMjMzGTJkCElJSVx++eXs3LkTgAULFjBhwgRGjx7tekdQm5qWVv3000+ZNGmSa5vVq1e7xiavWrWKIUOGkJyczKRJkygtLQWc07l/+9vfkpyczLvvvstrr71GamoqAwYM4MYbb3RdtGDPnj2kpaWRkJDAk08+WW1p0hdeeIHU1FQSExNrXOZVa43WmlOnTqG15sSJE3Tq1KnO4wsGUqiF2wwcPGV9g0IdzT/tP3PrMWcJhxG/he++hl3Bs/JA5RKmL774YrXvX3HFFWzcuJHNmzczefJk/vSnP7nu27FjBytXriQzM5M//OEPlJeXk5WVxZIlS8jLy2PFihUNvopLnz59WLduHZs3b+aZZ57hd7/7neu+TZs28d5777FmzZo69zFr1iyys7PZsmULa9asYcuWLYwdO5avv/6aU6dOAc41LyZPnszRo0d57rnn+Pzzz9m0aRMpKSnVfgbt27dn06ZNTJ48mRtuuIGsrCzy8vLo27eva42Uhx56iIceeohvvvmG2NhY12NXrVrF7t27yczMJDc3l5ycHNaurb72W1hYGH/7299ISEigU6dO5Ofnc8cddzToZxaIpFALt0001nOp8S1/LP+VswC7K+lmiOoB/3kGHN55S+xr5y9hWqmwsJCrr76ahIQEXnjhhWpL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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def histogram(X, l):\n",
    "    v = [X() for i in range(1000)]\n",
    "    plt.hist(v,label=l,density=True)\n",
    "    mu = np.mean(v)\n",
    "    sigma = np.std(v)\n",
    "    x = np.linspace(0, 1.0, 100)\n",
    "    y = [(2.*np.pi*sigma**2.)**-0.5*np.exp(-(xv-mu)**2./2/sigma**2.) for xv in x]\n",
    "    plt.plot(x, y, label=\"Normal with same mu, sigma\")\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "\n",
    "# start with triangular distribution\n",
    "def p():\n",
    "    return random.triangular(0.0,1.0,0.1)\n",
    "\n",
    "histogram(p, \"Triangular, no averaging\")\n",
    "histogram(lambda: sum([p() for i in range(2)]) / 2.0, \"Triangular, average 2\")\n",
    "histogram(lambda: sum([p() for i in range(4)]) / 4.0, \"Triangular, average 4\")\n",
    "histogram(lambda: sum([p() for i in range(8)]) / 8.0, \"Triangular, average 8\")\n",
    "histogram(lambda: sum([p() for i in range(16)]) / 16.0, \"Triangular, average 16\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "beb79640",
   "metadata": {},
   "source": [
    "***Homework***: Repeat this exercise with different starting distributions."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82761013",
   "metadata": {},
   "source": [
    "## Central limit theorem"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edfecfaf",
   "metadata": {},
   "source": [
    "The effect we just observed can be shown in a straightforward way.\n",
    "\n",
    "Consider $n$ random variables $x_1,\\ldots,x_n$ drawn from the identical PDF $p(x)$.  They should be independent, i.e., their joint probability factors\n",
    "$$\n",
    "\\begin{align}\n",
    "p(x_1,\\ldots,x_n)=p(x_1)\\cdots p(x_n) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "We then define $\\tilde{x}$ as the sum of these $n$ random variables\n",
    "$$\n",
    "\\begin{align}\n",
    "\\tilde{x} = \\sum_{i=1}^n x_i \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "We first note that\n",
    "$$\n",
    "\\begin{align}\n",
    "\\tilde{\\mu} &= \\langle \\tilde{x} \\rangle = \\langle \\sum_{i=1}^n x_i \\rangle = \n",
    "\\int dx_1 \\cdots dx_n p(x_1,\\ldots,x_n)  \\sum_{i=1}^n x_i \\\\\n",
    "&= \\sum_{i=1}^n \\int dx_1 \\cdots dx_n p(x_1) \\cdots p(x_n) x_i \\\\\n",
    "&=\\sum_{i=1}^n \\int dx_i p(x_i) x_i \\\\\n",
    "&=\\sum_{i=1}^n \\mu = n\\mu\n",
    "\\end{align}\n",
    "$$\n",
    "and\n",
    "$$\n",
    "\\begin{align}\n",
    "\\tilde{\\sigma}^2  &= \\langle \\tilde{x}^2 \\rangle - \\tilde{\\mu}^2 \\\\\n",
    "&= \\sum_{i,j=1}^n \\langle x_i x_j \\rangle - n^2\\mu^2 \\\\\n",
    "&= \\sum_{i=1}^n \\langle x^2 \\rangle + \\sum_{i\\neq j} \\langle x \\rangle^2 - n^2\\mu^2 \\\\\n",
    "&= n (\\sigma^2 + \\mu^2) + n(n-1)\\mu^2 - n^2\\mu^2 \\\\\n",
    "&= n\\sigma^2 \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "It is then natural to define the helper variable\n",
    "$$\n",
    "\\begin{align}\n",
    "z = \\frac{\\tilde{x} - n\\mu}{\\sqrt{n \\sigma^2}}\n",
    "\\end{align}\n",
    "$$\n",
    "which has mean 0 and variance 1.\n",
    "\n",
    "We then define the **characteristic function** of the PDF as its\n",
    "Fourier transform\n",
    "$$\n",
    "\\begin{align}\n",
    "\\varphi(k) &= \\int dx p(x) e^{ikx} \\,, \\\\\n",
    "p(x) &= \\frac1{2\\pi}\\int dk \\varphi(k) e^{-ikx} \\,.\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "66f488cc",
   "metadata": {},
   "source": [
    "The PDF for $z$ is then\n",
    "$$\n",
    "\\begin{align}\n",
    "p_z(z) &= \\int dx_1 \\cdots dx_n \\delta\\left(z - \\frac{\\sum_{i=1}^n x_i - n\\mu}{\\sqrt{n} \\sigma}\\right) p(x_1,\\ldots,x_n) \\,, \\\\\n",
    "&= \\int dx_1 \\cdots dx_n \\delta\\left(z - \\frac{\\sum_{i=1}^n x_i - n\\mu}{\\sqrt{n} \\sigma}\\right) p(x_1)\\cdots p(x_n) \\,, \\\\\n",
    "&= (2\\pi)^{-n}\\int dx_1 \\cdots dx_n dk_1 \\cdots dk_n \\delta\\left(z - \\frac{\\sum_{i=1}^n x_i - n\\mu}{\\sqrt{n} \\sigma}\\right) e^{-i \\sum_{i=1}^n x_i k_i} \\varphi(k_1)\\cdots \\varphi(k_n) \\,, \\\\\n",
    "\\end{align}\n",
    "$$\n",
    "and therefore the characteristic function for $z$ is\n",
    "$$\n",
    "\\begin{align}\n",
    "\\varphi_z(\\omega) &= (2\\pi)^{-n}\\int dz \\int dx_1 \\cdots dx_n dk_1 \\cdots dk_n \\delta\\left(z - \\frac{\\sum_{i=1}^n x_i - n\\mu}{\\sqrt{n} \\sigma}\\right) e^{-i \\sum_{i=1}^n x_i k_i+i\\omega z} \\varphi(k_1)\\cdots \\varphi(k_n) \\,, \\\\\n",
    "&= (2\\pi)^{-n}\\int dx_1 \\cdots dx_n dk_1 \\cdots dk_n  e^{-i \\sum_{i=1}^n x_i \\left(k_i - \\frac{\\omega}{\\sqrt{n} \\sigma}\\right)-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} \\varphi(k_1)\\cdots \\varphi(k_n) \\,, \\\\\n",
    "&=  \\int dk_1 \\cdots dk_n \\left[\\prod_{i=1}^n\\delta\\left(k_i - \\frac{\\omega}{\\sqrt{n} \\sigma}\\right)\\right] e^{-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} \\varphi(k_1)\\cdots \\varphi(k_n) \\,, \\\\\n",
    "&=  e^{-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} \\varphi\\left(\\frac{\\omega}{\\sqrt{n} \\sigma}\\right)^n \\,, \\\\\n",
    "&=  e^{-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} \\left(\\varphi(0) + \\varphi'(0) \\frac{\\omega}{\\sqrt{n} \\sigma}+ \\frac12 \\varphi''(0) \\frac{\\omega^2}{n \\sigma^2} + O(n^{-3/2})\\right)^n \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "Since \n",
    "$$\n",
    "\\begin{align}\n",
    "\\varphi(0) &=\\int dx p(x)=1 \\,, \\\\\n",
    "\\varphi'(0) &=i\\int dx x p(x)=i\\mu \\,, \\\\\n",
    "\\varphi''(0) &= -\\int dx x^2 p(x)=-(\\sigma^2 + \\mu^2)\\,,\n",
    "\\end{align}\n",
    "$$\n",
    "and\n",
    "$$\n",
    "\\begin{align}\n",
    "\\log\\left(1 + \\varepsilon a_1 + \\varepsilon^2 a_2 + O(\\varepsilon^3)\\right)\n",
    "&=a_1 \\varepsilon + \\left(a_2 - \\frac12 a_1^2\\right) \\varepsilon^2 + O(\\varepsilon^3)\n",
    "\\end{align}\n",
    "$$\n",
    "we have\n",
    "$$\n",
    "\\begin{align}\n",
    "\\varphi_z(\\omega) &=  e^{-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} \\left(1 + \\varphi'(0) \\frac{\\omega}{\\sqrt{n}\\sigma}+\\frac12 \\varphi''(0) \\frac{\\omega^2}{n \\sigma^2}+ O\\left(\\frac1{n^{3/2}}\\right)\\right)^n \\\\\n",
    "&=  e^{-i\\omega \\sqrt{n}\\frac{\\mu}{\\sigma}} e^{ i\\mu \\sqrt{n} \\frac{\\omega}{\\sigma}- \\frac12 \\sigma^2 \\frac{\\omega^2}{\\sigma^2}} + O(n^{-1/2}) \\\\\n",
    "&=   e^{- \\frac12 \\omega^2} + O\\left(\\frac1{\\sqrt{n}}\\right) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "A simple Gaussian integral then yields\n",
    "$$\n",
    "\\begin{align}\n",
    "p_z(z) = \\frac1{\\sqrt{2\\pi}} e^{-\\frac12 z^2} + O\\left(\\frac1{\\sqrt{n}}\\right) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "We have just proved the **central limit theorem** that states that the sum or average of independent identically distributed random variables tends towards a normal distribution in the limit of many terms in the sum.  In the case of an average, the mean of the average is the mean of the original random variables, while the variance is reduced by $1/n$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e66c481c",
   "metadata": {},
   "source": [
    "## Estimators and bias\n",
    "\n",
    "Consider sampling $n$ variables $x_1,\\ldots,x_n \\in \\mathbb{R}$ from a PDF $p(x)$ and the samples to be independent of each other.  Then we call\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{f}(x_1,\\ldots,x_n)\n",
    "\\end{align}\n",
    "$$\n",
    "an **estimator**\n",
    "of a functional\n",
    "$$\n",
    "\\begin{align}\n",
    "f[p]\n",
    "\\end{align}\n",
    "$$\n",
    "if\n",
    "$$\n",
    "\\begin{align}\n",
    "\\lim_{n\\to\\infty} \\hat{f}(x_1,\\ldots,x_n) = f[p] \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "We call such an estimator **unbiased** if also\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\hat{f}(x_1,\\ldots,x_n) \\rangle = \\int dx_1 \\cdots dx_n p(x_1,\\ldots,x_n) \\hat{f}(x_1,\\ldots,x_n) = f[p]\n",
    "\\end{align}\n",
    "$$ \n",
    "and **biased** if this property does not hold.  An estimator is therefore unbiased if repeatedly sampling a small number of variables $n$ and averaging over the result of each gives the correct result.\n",
    "\n",
    "Let us first consider a simple unbiased estimator for the mean of a distribution,\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{\\mu}(x_1,\\ldots,x_n) = \\frac1n \\sum_{i=1}^n x_i\n",
    "\\end{align}\n",
    "$$\n",
    "for which we already showed above that\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\hat{\\mu}(x_1,\\ldots,x_n) \\rangle &= \\int dx_1 \\cdots dx_n p(x_1,\\ldots,x_n)\\hat{\\mu}(x_1,\\ldots,x_n) \\\\\n",
    "&=\\frac1n\\sum_{i=1}^n \\int dx_1 \\cdots dx_n p(x_1) \\cdots p(x_n) x_i \\\\\n",
    "&=\\frac1n\\sum_{i=1}^n \\int dx_i p(x_i) x_i \\\\\n",
    "&=\\frac1n\\sum_{i=1}^n \\langle x \\rangle = \\langle x \\rangle \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Interestingly, the estimator of the variance\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{\\sigma}^2_b(x_1,\\ldots,x_n) = \\frac1n \\sum_{i=1}^n \\left( x_i - \\hat{\\mu}(x_1,\\ldots,x_n) \\right)^2\n",
    "\\end{align}\n",
    "$$\n",
    "is biased, since\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\hat{\\sigma}^2_b(x_1,\\ldots,x_n)\\rangle &= \n",
    "\\frac1n \\sum_{i=1}^n \\langle x^2_i \\rangle - \\frac1{n^2} \\sum_{i,j=1}^n\\langle x_i x_j \\rangle \\\\\n",
    "&= \n",
    "\\left(\\frac1n - \\frac1{n^2}\\right) \\sum_{i=1}^n \\langle x^2_i \\rangle - \\frac1{n^2} \\sum_{i \\neq j}\\langle x_i \\rangle \\langle x_j \\rangle \\\\\n",
    "&=\n",
    "\\frac{n-1}{n} \\langle x^2 \\rangle - \\frac{n(n-1)}{n^2} \\langle x \\rangle^2 \\\\\n",
    "&=\n",
    "\\frac{n-1}{n} (\\langle x^2 \\rangle - \\langle x \\rangle^2 )\n",
    "\\end{align}\n",
    "$$\n",
    "which differs from the variance\n",
    "$$\n",
    "\\begin{align}\n",
    "\\sigma^2 = \\langle x^2 \\rangle - \\langle x \\rangle^2 \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "The result, however, already tells us that an unbiased estimator can be defined by\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{\\sigma}^2(x_1,\\ldots,x_n) &= \\frac{n}{n-1}\\hat{\\sigma}^2_b(x_1,\\ldots,x_n) \\\\\n",
    "&=\\frac1{n-1} \\sum_{i=1}^n \\left( x_i - \\hat{\\mu}(x_1,\\ldots,x_n) \\right)^2 \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Let us demonstrate this numerically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5704073b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Biased estimator test for n=4: 1 == 0.7495601529974043 +- 0.006091813806822378\n",
      "Biased estimator test for n=8: 1 == 0.867362638559428 +- 0.004629796124124494\n",
      "Biased estimator test for n=16: 1 == 0.9411682174016318 +- 0.0034581022231148107\n",
      "Biased estimator test for n=32: 1 == 0.9674490769406684 +- 0.002452884914118586\n",
      "Biased estimator test for n=64: 1 == 0.9804292666298523 +- 0.0017597170299214334\n",
      "\n",
      "Unbiased estimator test for n=4: 1 == 1.0102138289446236 +- 0.008225561100470576\n",
      "Unbiased estimator test for n=8: 1 == 0.9942457249248356 +- 0.005346418402603227\n",
      "Unbiased estimator test for n=16: 1 == 0.9967384398055572 +- 0.003638493154759803\n",
      "Unbiased estimator test for n=32: 1 == 0.998204808485841 +- 0.002571835179560784\n",
      "Unbiased estimator test for n=64: 1 == 0.9971881428525637 +- 0.0017733381431177173\n"
     ]
    }
   ],
   "source": [
    "random.seed(13)\n",
    "\n",
    "def estimate_variance_biased(x):\n",
    "    mean = sum(x) / len(x)\n",
    "    return sum([ (xi - mean) ** 2.0 for xi in x]) / len(x)\n",
    "\n",
    "def estimate_variance_unbiased(x):\n",
    "    mean = sum(x) / len(x)\n",
    "    return sum([ (xi - mean) ** 2.0 for xi in x]) / (len(x) - 1)\n",
    "\n",
    "def test_variance_estimator(est, n, N = 10000):\n",
    "    sigma_expected = 1.0\n",
    "    E = [est([random.gauss(mu=1.0, sigma=1.0)/sigma_expected**2. for i in range(n)]) for j in range(N)]\n",
    "    val = np.mean(E)\n",
    "    err = np.std(E) / N**0.5\n",
    "    return f\"{val} +- {err}\"\n",
    "\n",
    "for n in [4,8,16,32,64]:\n",
    "    print(f\"Biased estimator test for n={n}: 1 ==\", test_variance_estimator(estimate_variance_biased, n))\n",
    "    \n",
    "print()\n",
    "\n",
    "for n in [4,8,16,32,64]:\n",
    "    print(f\"Unbiased estimator test for n={n}: 1 ==\", test_variance_estimator(estimate_variance_unbiased, n))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81a7b859",
   "metadata": {},
   "source": [
    "## Functions of averages, jackknife and bootstrap variance estimators"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ac1c40a",
   "metadata": {},
   "source": [
    "Consider sampling $n$ variables $x_1,\\ldots,x_n \\in \\mathbb{R}^m$ from a PDF $p(x)$ and the samples to be independent of each other.  We define the unbiased estimator\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{x} = \\frac1n \\sum_{i=1}^n x_i\n",
    "\\end{align}\n",
    "$$\n",
    "of\n",
    "$$\n",
    "\\begin{align}\n",
    "\\overline{x} = \\langle x \\rangle \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Then a function $f:\\mathbb{R}^m \\to \\mathbb{R}$\n",
    "of the mean\n",
    "$$\n",
    "\\begin{align}\n",
    "f(\\overline{x})\n",
    "\\end{align}\n",
    "$$\n",
    "can be estimated by\n",
    "$$\n",
    "\\begin{align}\n",
    "f(\\hat{x}) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "If the function is linear, the estimator is also unbiased.\n",
    "\n",
    "Next, we can relate the variance of the estimator\n",
    "$$\n",
    "\\begin{align}\n",
    "\\textrm{Var}(f,x) = \\langle f(\\hat{x})^2 \\rangle - \\langle f(\\hat{x}) \\rangle^2\n",
    "\\end{align}\n",
    "$$\n",
    "to the variance of $\\hat{x}$ through\n",
    "$$\n",
    "\\begin{align}\n",
    "\\textrm{Var}(f,x) &= \\langle f(\\hat{x})^2 \\rangle - \\langle f(\\hat{x}) \\rangle^2 \\\\\n",
    "&=\\langle f(\\overline{x} + \\hat{x}-\\overline{x})^2 \\rangle - \\langle f(\\overline{x} + \\hat{x}-\\overline{x}) \\rangle^2 \\\\\n",
    "&=\n",
    "\\langle \\left(f(\\overline{x}) + \\frac{\\partial f}{\\partial x_i}(\\overline{x})(\\hat{x}-\\overline{x})_i + \\frac12 \\frac{\\partial^2 f}{\\partial x_i \\partial x_j}(\\overline{x})(\\hat{x}-\\overline{x})_i (\\hat{x}-\\overline{x})_j\\right)^2 \\rangle \\notag\\\\\n",
    "&\\quad - \\langle f(\\overline{x}) + \\frac{\\partial f}{\\partial x_i}(\\overline{x})(\\hat{x}-\\overline{x})_i + \\frac12 \\frac{\\partial^2 f}{\\partial x_i \\partial x_j}(\\overline{x})(\\hat{x}-\\overline{x})_i(\\hat{x}-\\overline{x})_j\\rangle^2 + \\langle O(\\hat{x}-\\overline{x})^3 \\rangle \\\\\n",
    "&=\n",
    "(f(\\overline{x}) \\frac{\\partial^2 f}{\\partial x_i \\partial x_j}(\\overline{x}) + \\frac{\\partial f}{\\partial x_i}\\frac{\\partial f}{\\partial x_j}(\\overline{x}))\\langle (\\hat{x}-\\overline{x})_i(\\hat{x}-\\overline{x})_j \\rangle  \\notag\\\\\n",
    "&\\quad - f(\\overline{x}) \\frac{\\partial^2 f}{\\partial x_i \\partial x_j}(\\overline{x})\\langle (\\hat{x}-\\overline{x})_i(\\hat{x}-\\overline{x})_j  \\rangle+ \\langle O(\\hat{x}-\\overline{x})^3 \\rangle \\\\\n",
    "&=\n",
    " \\frac{\\partial f}{\\partial x_i}(\\overline{x})\\frac{\\partial f}{\\partial x_j}(\\overline{x})\\langle (\\hat{x}-\\overline{x})_i(\\hat{x}-\\overline{x})_j \\rangle + \\langle O(\\hat{x}-\\overline{x})^3 \\rangle\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "We have established above that due to the averaging, $\\hat{x}-\\overline{x} \\propto 1/\\sqrt{n}$.  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a6e480dd",
   "metadata": {},
   "source": [
    "We now first define the **single-elimination Jackknife** resamples\n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{x}_j = \\frac1{n-1} \\sum_{i=1,i\\neq j}^n x_i=\\frac1{n-1}(n \\hat{x} - x_j)=\\frac1{n-1}((n-1) \\hat{x} + \\hat{x} - x_j) = \\hat{x} + \\frac{1}{n-1} (\\hat{x} - x_j)\n",
    "\\end{align}\n",
    "$$\n",
    "with which we can define the **single-elimination Jacknife variance estimator**\n",
    "$$\n",
    "\\begin{align}\n",
    "\\textrm{Var}^J(f,x) &= \\frac{n-1}{n} \\sum_{j=1}^n (f(\\hat{x}_j) - f(\\hat{x}))^2 \\\\\n",
    "&=\\frac{n-1}{n} \\sum_{j=1}^n \\left(\\frac{\\partial f}{\\partial x_i}(\\hat{x}) (\\hat{x}_j - \\hat{x})_i\\right)^2 (1 + O(1/\\sqrt{n})) \\\\\n",
    "&=\\frac{\\partial f}{\\partial x_i}(\\hat{x}) \\frac{\\partial f}{\\partial x_l}(\\hat{x}) \\frac{1}{n(n-1)} \\sum_{j=1}^n  (x_j-\\hat{x})_i (x_j-\\hat{x})_l (1 + O(1/\\sqrt{n})) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "We can then show that\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\textrm{Var}^J(f,x) \\rangle &=\\frac{\\partial f}{\\partial x_i}(\\overline{x}) \\frac{\\partial f}{\\partial x_l}(\\overline{x}) \\frac{1}{n} \\langle \\frac1{n-1}\\sum_{j=1}^n  (x_j-\\hat{x})_i (x_j-\\hat{x})_l \\rangle (1 + O(1/\\sqrt{n})) \\\\\n",
    "&=\\frac{\\partial f}{\\partial x_i}(\\overline{x}) \\frac{\\partial f}{\\partial x_l}(\\overline{x}) \\langle \\frac1{n-1}  (x-\\hat{x})_i (x-\\hat{x})_l \\rangle (1 + O(1/\\sqrt{n}))\n",
    "\\end{align}\n",
    "$$\n",
    "since all $x_j$ are distributed following $p(x_j)$ and therefore $ \\langle (x_j-\\hat{x})_i (x_j-\\hat{x})_l \\rangle = \\langle (x-\\hat{x})_i (x-\\hat{x})_l \\rangle$.\n",
    "Analog to the proof of the biased estimator of $\\sigma^2$ above, we can show that $\\langle (x-\\hat{x})_i (x-\\hat{x})_l \\rangle = \\frac{n-1}{n} \\langle (x-\\overline{x})_i (x-\\overline{x})_l \\rangle$ and therefore\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\textrm{Var}^J(f,x) \\rangle &=\\frac{\\partial f}{\\partial x_i}(\\overline{x}) \\frac{\\partial f}{\\partial x_l}(\\overline{x}) \\frac{1}{n} \\langle (x - \\overline{x})_i(x-\\overline{x})_l \\rangle (1 + O(1/\\sqrt{n})) \\\\\n",
    "&=\\frac{\\partial f}{\\partial x_i}(\\overline{x}) \\frac{\\partial f}{\\partial x_l}(\\overline{x}) \\langle (\\hat{x} - \\overline{x})_i(\\hat{x}-\\overline{x})_l \\rangle (1 + O(1/\\sqrt{n})) \\\\\n",
    "&=\\textrm{Var}(f,x) (1 + O(1/\\sqrt{n}))\n",
    "\\end{align}\n",
    "$$\n",
    "since\n",
    "$$\n",
    "\\begin{align}\n",
    "\\frac{\\partial f}{\\partial x_i}(\\hat{x}) = \\frac{\\partial f}{\\partial x_i}(\\overline{x})(1+O(1/\\sqrt{n}) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "***Homework***: Show that this estimator is unbiased for linear $f$.\n",
    "\n",
    "An alternative very popular resampling technique is the **bootstrap** method.  In this method, we\n",
    "create $S \\in \\mathbb{N}^+$ pseudosamples by randomly selecting $n$ elements from the set of $\\{x_1,\\ldots,x_n\\}$\n",
    "with replacement.  The variance over these pseudosamples then estimates the distribution variance.  We illustrate both the jackknife and bootstrap methods below numerically."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "05e8f6ad",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9997201133255009\n",
      "0.9943462780649956 0.06887494518918237\n"
     ]
    }
   ],
   "source": [
    "def jackknife_variance_estimator(f, x):\n",
    "    N = len(x)\n",
    "    X = sum(x) / N\n",
    "    mean = f(X)\n",
    "    return sum([(f((N*X - x[j])/(N-1)) - mean)**2 for j in range(N)])*(N-1)/N\n",
    "\n",
    "res = [np.random.normal(2.0,0.5,2) for i in range(100)]\n",
    "\n",
    "sigma_expected = 0.5 / 2.0 * 2.0**0.5 / 100**0.5\n",
    "\n",
    "print(jackknife_variance_estimator(lambda x: x[0]/x[1], res)**0.5 / sigma_expected)\n",
    "\n",
    "\n",
    "tests_jk = [jackknife_variance_estimator(lambda x: x[0]/x[1], \n",
    "                                         [np.random.normal(2.0,0.5,2) for i in range(100)])**0.5 / sigma_expected \n",
    "            for l in range(100)]\n",
    "\n",
    "print(np.mean(tests_jk), np.std(tests_jk))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "7e30c8b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.103734908360207\n",
      "0.9880356393606512 0.11291216607476749\n"
     ]
    }
   ],
   "source": [
    "def bootstrap_variance_estimator(f, x, S):\n",
    "    N = len(x)\n",
    "    X = sum(x) / N\n",
    "    mean = f(X)\n",
    "    return sum([ (f(sum([ random.choice(x) for l in range(N) ])/N) - mean)**2 for j in range(S) ])/S\n",
    "\n",
    "print(bootstrap_variance_estimator(lambda x: x[0]/x[1], res, 100)**0.5 / sigma_expected)\n",
    "\n",
    "tests_bs = [bootstrap_variance_estimator(lambda x: x[0]/x[1], \n",
    "                                         [np.random.normal(2.0,0.5,2) for i in range(100)], 100)**0.5 / sigma_expected \n",
    "            for l in range(100)]\n",
    "\n",
    "print(np.mean(tests_bs), np.std(tests_bs))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62f8b0da",
   "metadata": {},
   "source": [
    "***Homework***: repeat the calculation of the $E_1-E_0$ energy splitting of the Harmonic oscillator using the jackknife estimator to\n",
    "    assess the statistical uncertainty of the extracted value."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0efbc104",
   "metadata": {},
   "source": [
    "## Autocorrelated data and binning\n",
    "\n",
    "So far, we have assumed all data to be statistically independent.  We have seen, however, in the last chapter that Markov chains typically yield autocorrelated data.  A simple procedure to address this issue is the following.\n",
    "\n",
    "Consider a markov chain with elements $x_1,\\ldots,x_n \\in \\mathbb{R}^m$.  Assuming a number $b$ that divides $n$, we could then average $b$ sequential elements to a block\n",
    "$$\n",
    "\\begin{align}\n",
    "\\tilde{x}_i = \\frac1b \\sum_{j=1}^b x_{ib + j} \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "If we then define $\\tilde{n} = n / b$ and \n",
    "$$\n",
    "\\begin{align}\n",
    "\\hat{\\tilde{x}} = \\frac1{\\tilde{n}} \\sum_{j=1}^{\\tilde{n}} \\tilde{x}_j\n",
    "\\end{align}\n",
    "$$\n",
    "then\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\hat{\\tilde{x}} \\rangle = \\langle \\hat{x} \\rangle\n",
    "\\end{align}\n",
    "$$\n",
    "and\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle \\hat{\\tilde{x}}^2 \\rangle = \\langle \\hat{x}^2 \\rangle \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "So binning does not affect the mean and variance but the binned results are generally less autocorrelated.  Therefore after binning sufficiently, the data can be treated as if it were independent.  If after binning too little data remains, the errors on the variance estimators, however, can grow significantly (see $1/\\sqrt{n}$ terms above, $n$ reduces by the amount of binning).\n",
    "\n",
    "Let us demonstrate this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0ab43a2d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Acceptance rate: 0.62902\n",
      "1.0007439855609455\n",
      "1.000743985560925\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAASuUlEQVR4nO3df+xdd13H8eebdgUj04n9Spa2o5sp0YoExtcFAmENgumq6TQS00UUDaGJMqMBf3TB7PvtDH+AEdE4wYE4RGEM/NVAzeRHJ4lx0G/dD7rOja4M1jrpl59qiIzJ2z/uKb379n7vr3Pv95z7+T4fyc33/LrnvO/nnPO6555z7/lGZiJJmn1PaboASdJkGOiSVAgDXZIKYaBLUiEMdEkqxMamFrx58+bcvn17U4uXpJl07NixL2XmXK9xjQX69u3bWVpaamrxkjSTIuLzq43zlIskFcJAl6RCGOiSVAgDXZIKYaBLUiEMdEkqhIEuSYUw0CWpEAa6JBXCQJekQhjoklQIA12SCmGgS1IhBgZ6RLw7Is5GxPFVxkdE/HFEnIyI+yLiysmX+WR37lqc9iIkaeYMc4R+K7C7z/hrgB3VYz/w9vpl9bfrnw9OexGSNHMGBnpmfhL4Sp9JrgX+MjvuAi6JiEsnVaAkaTiTOIe+BXi0q/90NewCEbE/IpYiYml5eXmkhdy5axEiOo/OzCDC0y+SVFnTi6KZeUtmzmfm/Nxcz/+gtKpddy5CZufRmRlkdoZLkiYS6GeAbV39W6thkqQ1NIlAPwT8YvVtlxcCX8/MxyYw31XdefXCNGcvSTNp4D+Jjoj3A7uAzRFxGlgALgLIzHcAh4E9wEngG8AvT6vYczzNIkkXGhjomXndgPEJvG5iFUmSxuIvRSWpEAa6JBXCQJekQhjoklQIA12SCmGgS1IhDHRJKoSBLkmFMNAlqRAGuiQVwkCXpEIY6JJUCANdkgphoEtSIQx0SSqEgS5JhTDQJakQBrokFcJAl6RCGOiSVAgDXZIKYaBLUiEMdEkqhIEuSYUw0CWpEAa6JBXCQJekQhjoklSIoQI9InZHxIMRcTIiDvQYf1lEHImIuyPivojYM/lSJUn9DAz0iNgA3AxcA+wErouInSsm+13g9sx8PrAP+NNJFypJ6m+YI/SrgJOZeSozHwduA65dMU0C31N1fy/wH5MrUZI0jGECfQvwaFf/6WpYt0XgVRFxGjgM/FqvGUXE/ohYioil5eXlMcqVJK1mUhdFrwNuzcytwB7gvRFxwbwz85bMnM/M+bm5uQktWpIEwwX6GWBbV//Wali31wC3A2TmvwJPAzZPokBJ0nCGCfSjwI6IuDwiNtG56HloxTRfAH4cICJ+mE6ge05FktbQwEDPzCeA64E7gAfofJvl/oi4KSL2VpO9AXhtRNwLvB/4pczMaRUtSbrQxmEmyszDdC52dg+7sav7BPDiyZYmSRqFvxSVpEIY6JJUCANdkgphoEtSIQx0SSqEgS5JhTDQJakQBrokFcJAl6RCGOiSVAgDXZIKYaBLUiEMdEkqhIEuSYUw0CWpEAa6JBXCQJekQhjoklQIA12SClFkoC8uNl2BJK29IgP94MGmK5CktVdkoEvSelRMoC8uQkTnAee7Pf0iab2IzGxkwfPz87m0tDSVeUdAQy9LkqYqIo5l5nyvccUcoUvSeldkoC8sNF2BJK29IgPd8+aS1qOhAj0idkfEgxFxMiIOrDLNz0XEiYi4PyLeN9kyJUmDbBw0QURsAG4GXgGcBo5GxKHMPNE1zQ7gBuDFmfnViPiBaRUsSeptmCP0q4CTmXkqMx8HbgOuXTHNa4GbM/OrAJl5drJlSpIGGSbQtwCPdvWfroZ1ezbw7Ij4l4i4KyJ295pRROyPiKWIWFpeXh6vYklST5O6KLoR2AHsAq4D3hkRl6ycKDNvycz5zJyfm5ub0KIlSTBcoJ8BtnX1b62GdTsNHMrMb2Xm54CH6AS8JGmNDBPoR4EdEXF5RGwC9gGHVkzz93SOzomIzXROwZyaXJmSpEEGBnpmPgFcD9wBPADcnpn3R8RNEbG3muwO4MsRcQI4AvxWZn55WkVLki5U5L1cJKlU3stFktYBA12SCmGgS1IhDHRJKoSBLkmFMNAlqRAGuiQVwkCXpEIY6JJUCANdkgphoEtSIQx0SSqEgS5JhTDQJakQBrokFcJAl6RCGOiSVAgDXZIKYaBLUiEMdEkqhIEuSYUw0CWpEAa6JBXCQJekQqzLQF9cbLoCSZq8dRnoBw82XYEkTd66DHRJKtFQgR4RuyPiwYg4GREH+kz3sxGRETE/uRInY3ERIjoPON/t6RdJpYjM7D9BxAbgIeAVwGngKHBdZp5YMd3FwEeATcD1mbnUb77z8/O5tNR3kqmJgAEvW5JaKSKOZWbPg+ZhjtCvAk5m5qnMfBy4Dbi2x3S/B7wZ+N+xK5UkjW2YQN8CPNrVf7oa9h0RcSWwLTM/0m9GEbE/IpYiYml5eXnkYidlYaGxRUvS1NS+KBoRTwHeCrxh0LSZeUtmzmfm/NzcXN1Fj83z5pJKNEygnwG2dfVvrYadczHwHODOiHgEeCFwqI0XRiWpZMME+lFgR0RcHhGbgH3AoXMjM/Prmbk5M7dn5nbgLmDvoIuikqTJGhjomfkEcD1wB/AAcHtm3h8RN0XE3mkXKEkazsZhJsrMw8DhFcNuXGXaXfXLkiSNyl+KSlIhDHRJKoSBLkmFMNAlqRAGuiQVwkCXpEIY6JJUCANdkgphoEtSIQx0SSqEgS5JhTDQJakQBrokFcJAl6RCGOg9+C/qJM0iA72HgwebrkCSRmegS1IhDPTK4iJEdB5wvtvTL5JmRWRmIwuen5/PpaV2/h/pCGioWSSpr4g4lpnzvcZ5hC5JhTDQe1hYaLoCSRqdgd6D580lzSIDXZIKYaBLUiEMdEkqhIEuSYUw0CWpEEMFekTsjogHI+JkRBzoMf71EXEiIu6LiI9HxLMmX6okqZ+BgR4RG4CbgWuAncB1EbFzxWR3A/OZ+VzgQ8BbJl2oJKm/YY7QrwJOZuapzHwcuA24tnuCzDySmd+oeu8Ctk62TEnSIMME+hbg0a7+09Ww1bwG+MdeIyJif0QsRcTS8vLy8FW2jD88ktRGE70oGhGvAuaB3+81PjNvycz5zJyfm5ub5KLXlPdLl9RGG4eY5gywrat/azXsSSLi5cAbgasz85uTKU+SNKxhjtCPAjsi4vKI2ATsAw51TxARzwf+DNibmWcnX2bzvF+6pLYb6n7oEbEHeBuwAXh3Zr4pIm4CljLzUER8DPhR4LHqKV/IzL395tnm+6EP4v3SJTWl3/3QhznlQmYeBg6vGHZjV/fLa1UoSarNX4qOwfulS2ojA30MnjeX1EYGuiQVwkCXpEIY6JJUCAN9wjy/LqkpBvqEeVsASU0x0CWpEAb6BHhbAEltMNRP/6dhln/634+3BZA0Tf1++u8RuiQVwkCfMG8LIKkpZQZ6gyevPW8uqSllBnqLvzto4EualjIDvcVa/F4jacaVE+h+d1DSOldWoGee/87gue4WBLrvNZLWQpnfQ2/xl8FbXJqkGbD+voc+w98d9Khd0rjKDPQWp+Kg9xovmkoaV5mB3mItfq+RNOMM9BYY5aKpbwgzyJWmNVLmRdEZNuiiaasvqi4uGl69tHql1eQ6X3Pr76LoOtbovlXnAsAsh8Is117XrF70KXSdrc9Ab3JlDlh2r4umo5ySmdX9a3YLp3ft/vig3WZ5e+snMxt5vOAFL8jGwMwue9DT+41fWKi16NVnev5nXOcfoy6syXVSV52VMosmtc6bNGCdDHopdcfXASzlKrlqoM/Ysns9fdj9a9Cia2+koy5gRoLhyNULFw4cpfYmt7cBbTnVdd5k6vWa/QjrrO57dN19rf+8DfS1C49e85vgsnuGS5d+G9K0N9JaMxjw3EGve9D4WtlSs2GmWXvdN9mprvMpf3IZ9Nr7zn7K7TLNl1470IHdwIPASeBAj/FPBT5Qjf8UsH3QPGf6CL3fljTtj98jboiTPJAceNRBj5kOO4Mp7yG1ap/ysus8v1abDx7daLvVCuwcvbZB+0rd8aPU3k+tQAc2AA8DVwCbgHuBnSum+VXgHVX3PuADg+bb6kCvsyU1HOijvteMspEusDD6RjzkVl43mCYdqkeuXuhZd6+j6UG1TzPQx1mpUw2mCc58nFXePfuEJ81+0Lb8pPkMWKfjrPPJXW6qF+gvAu7o6r8BuGHFNHcAL6q6NwJfovqO+2qPRgO97lt/ncPgcT77T2hLqHVEM8QM6uxgvV7WoFAdNH6UbFlZ26AXVje36tQ+qO6hX9cq62zQ+CZrG2lX6PPiBr3usRqmu866b/J9n1sv0F8JvKur/xeAP1kxzXFga1f/w8DmHvPaDywBS5dddtn4r2ja6mxJddbUMM+vMf9B52rrLrvOTjLtHazn6Amt09qrbNRwmOBn+7pv8n2fP0bDjHIUXWedTnt7qxv4/WfdkkDvfjR6hN7LpHaSFgf6xA/HekzaT7+NuOkjpn7Pr3MhepjxtWZQ83VP86Jq3dMW0zyA6Pm61/IkeY392FMuo6qzMsb51swkT9n0U/czbM03qzrf1qj7TZFp7mC1vkGTNWsfFOgDZj1QjfnXbZdBy669zus8t8F9qW6gbwROAZd3XRT9kRXTvG7FRdHbB813pgO99l5SY9mjaslRReOaXKfjGHa91a17itdsxq5nUtvrpA9+6o6f2LWw+l9b3AM8VJ1KeWM17CZgb9X9NOCD1dcWPw1cMWierQ70JnfuuqE56tdcRhnfttAbpMlgmqRpvpG2+U28ydrqfrxo6ymXaT1aHehNqhs2dc7vz1rQjaLkTxfTnHfbAn1W3qTrBn7fp64e6Ovz5lxtNs2bNw36d0neOKqdJv0vFUe5cViT/85xtTvVnYtxON/dtm13UD1Talfvh16CxcXed49bWGjfht4U79vd2yzfq32Wa6+h3/3QDfTSrNONXGOa5e1lnb5J+w8uJPXW5CmVutZhmA9ioJdmlndQrT1DsSgGemncQaV1y0CXpEIY6JJUCANdkgphoEtSIQx0SSqEgS5JhWjsl6IRsQx8fsynb6Zzz/U2srbxWNt4rG08s1zbszJzrteIxgK9johYWu2nr02ztvFY23isbTyl1uYpF0kqhIEuSYWY1UC/pekC+rC28VjbeKxtPEXWNpPn0CVJF5rVI3RJ0goGuiQVYuYCPSJ2R8SDEXEyIg40XU+3iHgkIj4TEfdERKP/jiki3h0RZyPieNewZ0TERyPis9Xf72tRbYsRcaZqu3siYk9DtW2LiCMRcSIi7o+IX6+GN952fWprvO0i4mkR8emIuLeq7WA1/PKI+FS1v34gIja1qLZbI+JzXe32vLWuravGDRFxd0R8uOofr91W++/RbXwAG4CHgSuATcC9wM6m6+qq7xFgc9N1VLW8FLgSON417C3Agar7APDmFtW2CPxmC9rtUuDKqvti4CFgZxvark9tjbcdEMDTq+6LgE8BLwRuB/ZVw98B/EqLarsVeGXT21xV1+uB9wEfrvrHardZO0K/CjiZmacy83HgNuDahmtqpcz8JPCVFYOvBd5Tdb8H+Om1rOmcVWprhcx8LDP/rer+b+ABYAstaLs+tTUuO/6n6r2oeiTwMuBD1fCm2m212lohIrYCPwm8q+oPxmy3WQv0LcCjXf2nackGXUngnyLiWETsb7qYHp6ZmY9V3f8JPLPJYnq4PiLuq07JNHI6qFtEbAeeT+eIrlVtt6I2aEHbVacN7gHOAh+l82n6a5n5RDVJY/vrytoy81y7valqtz+MiKc2URvwNuC3gW9X/d/PmO02a4Hedi/JzCuBa4DXRcRLmy5oNdn5LNeaoxTg7cAPAs8DHgP+oMliIuLpwN8Av5GZ/9U9rum261FbK9ouM/8vM58HbKXzafqHmqijl5W1RcRzgBvo1PhjwDOA31nruiLip4CzmXlsEvObtUA/A2zr6t9aDWuFzDxT/T0L/B2djbpNvhgRlwJUf882XM93ZOYXq53u28A7abDtIuIiOoH515n5t9XgVrRdr9ra1HZVPV8DjgAvAi6JiI3VqMb3167adlensDIzvwn8Bc2024uBvRHxCJ1TyC8D/ogx223WAv0osKO6ArwJ2AccargmACLiuyPi4nPdwE8Ax/s/a80dAl5ddb8a+IcGa3mSc2FZ+Rkaarvq/OWfAw9k5lu7RjXedqvV1oa2i4i5iLik6v4u4BV0zvEfAV5ZTdZUu/Wq7d+73qCDzjnqNW+3zLwhM7dm5nY6efaJzPx5xm23pq/ujnE1eA+dq/sPA29sup6uuq6g862be4H7m64NeD+dj9/fonMO7jV0zs19HPgs8DHgGS2q7b3AZ4D76ITnpQ3V9hI6p1PuA+6pHnva0HZ9amu87YDnAndXNRwHbqyGXwF8GjgJfBB4aotq+0TVbseBv6L6JkxTD2AX57/lMla7+dN/SSrErJ1ykSStwkCXpEIY6JJUCANdkgphoEtSIQx0SSqEgS5Jhfh/bnrBQH5n5PkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0007439855609455 +- 0.009350224119331632\n"
     ]
    }
   ],
   "source": [
    "def metropolis_sample_xsqr(p, step, samples):\n",
    "    x0 = 0.0\n",
    "    res = []\n",
    "    accept = 0\n",
    "    for i in range(samples):\n",
    "        x = x0 + step * random.uniform(-1.0, 1.0)\n",
    "        r = p(x) / p(x0)\n",
    "        l = random.uniform(0.0, 1.0)\n",
    "        if l < r:\n",
    "            accept += 1\n",
    "            x0 = x\n",
    "        res.append(x0**2)\n",
    "    print(f\"Acceptance rate: {accept/samples}\")\n",
    "    return res\n",
    "\n",
    "def bin_data(res, bin_size):\n",
    "    assert len(res) % bin_size == 0\n",
    "    n = len(res) // bin_size\n",
    "    return [ sum(res[bin_size*i:bin_size*(i+1)])/bin_size for i in range(n) ]\n",
    "\n",
    "def avg(X):\n",
    "    return sum(X) / len(X)\n",
    "\n",
    "res = metropolis_sample_xsqr(lambda x: np.exp(-x**2./2), 2.0, 100000)[100:]\n",
    "print(avg(res))\n",
    "\n",
    "res_binned = bin_data(res, 25)\n",
    "\n",
    "print(avg(res_binned))\n",
    "\n",
    "def autocovariance(Y, max_dt):\n",
    "    mean = sum(Y)/len(Y)\n",
    "    return [sum([ Y[t]*Y[t+dt] for t in range(len(Y) - dt) ])/(len(Y) - dt) - mean**2. for dt in range(max_dt) ]\n",
    "\n",
    "def autocorrelator(Y, max_dt):\n",
    "    Cov = autocovariance(Y, max_dt)\n",
    "    return [ Cov[t] / Cov[0] for t in range(len(Cov))]\n",
    "\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "plt.ylim([-0.1,1.1])\n",
    "ax.plot(range(40), autocorrelator(res, 40), marker='+', ls='', c='blue', label=\"autocorrelation original data\")\n",
    "ax.plot(range(40), autocorrelator(res_binned, 40), marker='+', ls='', c='red', label=\"autocorrelation bin-25 data\")\n",
    "plt.show()\n",
    "\n",
    "bin_size = [1, 5, 10, 20, 25, 50]\n",
    "error_versus_bin_size = [jackknife_variance_estimator(lambda x: x, bin_data(res, bs))**0.5 for bs in bin_size]\n",
    "fig, ax = plt.subplots()\n",
    "plt.ylim(0,0.02)\n",
    "ax.plot(bin_size, error_versus_bin_size, marker='+', ls='', c='red', label=\"autocorrelation bin-25 data\")\n",
    "plt.show()\n",
    "\n",
    "print(sum(res) / len(res),\"+-\",error_versus_bin_size[-2])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d584ac0f",
   "metadata": {},
   "source": [
    "## Combining statistically independent data\n",
    "\n",
    "Let $x_1,\\ldots,x_n$ be independent random variables, i.e., $p(x_1,\\ldots,x_n)=p(x_1)\\cdots p(x_n)$, then\n",
    "it can be shown in a similar way to the derivations above that the total variance of a function $f(x_1,\\ldots,x_n)$\n",
    "is the sum of the individual variances with respect to $x_i$ assuming that the fluctuations are sufficiently small that a linearization of $f$ is appropriate."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e56da5db",
   "metadata": {},
   "source": [
    "## Bayes' theorem and finding a model that best describes a given data set\n",
    "\n",
    "We can write the joint probability of selecting a model $M$ and sampling a data set $D$ as\n",
    "$$\n",
    "\\begin{align}\n",
    "P(D \\cap M) = P(D\\vert M)P(M) = P(M\\vert D)P(D)\n",
    "\\end{align}\n",
    "$$\n",
    "from which Bayes' theorem\n",
    "$$\n",
    "\\begin{align}\n",
    "P(M\\vert D) = \\frac{P(D\\vert M)P(M)}{P(D)}\n",
    "\\end{align}\n",
    "$$\n",
    "follows.  If we have no prior knowledge about which model is best, one typically uses a $P(M)$, which is independent of $M$.  If prior knowledge was available, it can be included in a fitting procedure by appropriate choice of $P(M)$.  Since also $P(D)$ is independent of $M$, without prior knowledge, the model which maximises $P(M\\vert D)$ also maximises $P(D\\vert M)$.  Based on our earlier discussion of the central limit theorem, it is further reasonable to assume that $P(D\\vert M)$ follows a normal distribution, which for a model with parameter vector $p \\in \\mathbb{R}^{N_\\textrm{parameter}}$\n",
    "can be written as\n",
    "$$\n",
    "\\begin{align}\n",
    "P(D \\vert M) = (2\\pi)^{-N_\\textrm{data}/2} \\det(C)^{-1/2} e^{-\\frac12 (D_i - M_i(p)) C^{-1}_{ij} (D_j - M_j(p))} \\,,\n",
    "\\end{align}\n",
    "$$\n",
    "where $D \\in \\mathbb{R}^{N_\\textrm{data}}$ and $M:\\mathbb{R}^{N_\\textrm{parameter}} \\to \\mathbb{R}^{N_\\textrm{data}}$\n",
    "are the model predictions for the data.  This is well defined for positive definite $C$.  Then\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle D_i \\rangle = M_i(p)\n",
    "\\end{align}\n",
    "$$\n",
    "and $C \\in \\mathbb{R}^{N_\\textrm{data} \\times N_\\textrm{data}}$ with\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle (D_i - \\langle D_i \\rangle)(D_j - \\langle D_j \\rangle) \\rangle = C_{ij} \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "If the individual data points are statistically independent, $C$ must be a diagonal matrix.  In our example below, this will be the case.  Since $C$ is symmetric, we can diagonalize it which yields new $N_\\textrm{data}$ statistically independent normal variables.\n",
    "\n",
    "The parameters that maximize $P(D \\vert M)$ are the same as the ones that minimize the variable\n",
    "$$\n",
    "\\begin{align}\n",
    "\\chi^2 = (D_i - M_i(p)) C^{-1}_{ij} (D_j - M_j(p)) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "We call the parameters that minimize $\\chi^2$ the fit result $p_0$ and\n",
    "the value of $\\chi^2$ at the minimum $\\chi^2_0$.\n",
    "\n",
    "It can be shown that $\\chi^2_0$ follows the PDF of a so-called $\\chi^2$-distribution with degrees of freedom $k = N_\\textrm{data} - N_\\textrm{parameter}$,\n",
    "$$\n",
    "\\begin{align}\n",
    "p(\\chi_0^2) = \\frac1{2^{k/2} \\Gamma(k/2)} (\\chi_0^2)^{k/2-1} e^{-\\chi_0^2/2}\n",
    "\\end{align}\n",
    "$$\n",
    "with mean $k$ and variance $2k$.\n",
    "\n",
    "The expectation value of $\\chi_0^2$ is therefore $k$ with fluctuations of size $\\sqrt{2k}$.  It is common\n",
    "to quantify the likelyhood of the fit by considering the $P$-value defined as the likelyhood that the observed $\\chi_0^2$ or a larger value would be observed, i.e.,\n",
    "$$\n",
    "\\begin{align}\n",
    "P = \\int_{\\chi_0^2}^\\infty dx p(x) \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "We now turn to a numerical demonstration based on data sampled from normal distribution with variance $f(a)$\n",
    "for different parameters $a$.  We may think of the parameter $a$ as the lattice spacing of the path integral and $f(a)$ as the expected functional form of the continuum ($a\\to0$) limit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "89cfeee1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Acceptance rate: 0.6392\n",
      "Acceptance rate: 0.6528\n",
      "Acceptance rate: 0.6646\n",
      "Acceptance rate: 0.6766\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "class xsqr_data:\n",
    "    def __init__(self, lattice_spacings, f_true, nbin):\n",
    "        self.lattice_spacings = lattice_spacings\n",
    "        self.res = [bin_data(metropolis_sample_xsqr(\n",
    "            lambda x: np.exp(-x**2./2.0/f_true(a)), 2.0, 10000)[100:],nbin) \n",
    "                    for a in lattice_spacings]\n",
    "        self.xsqr_mean = [avg(x) for x in self.res]\n",
    "        self.xsqr_err = [jackknife_variance_estimator(lambda x: x, X)**0.5 for X in self.res]\n",
    "        \n",
    "    def plot(self):\n",
    "        fig, ax = plt.subplots()\n",
    "        plt.xlim(0,self.lattice_spacings[-1]**2.*1.1)\n",
    "        ax.errorbar([ a**2 for a in self.lattice_spacings], self.xsqr_mean, self.xsqr_err, \n",
    "                    marker='+', ls='', c='red')\n",
    "        plt.xlabel(\"a^2\")\n",
    "        plt.ylabel(\"<x^2>\")\n",
    "        plt.show()\n",
    "    \n",
    "random.seed(13)\n",
    "d = xsqr_data([ 0.3, 0.5, 0.7, 0.9 ], lambda a: 1.0 + a**2*0.5, 25)\n",
    "d.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "1c9e0ccd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance from a = 0.3 is [[ 0.00063662 -0.00106751]\n",
      " [-0.00106751  0.00179003]]\n",
      "Covariance from a = 0.5 is [[ 0.00021218 -0.00021919]\n",
      " [-0.00021919  0.00022642]]\n",
      "Covariance from a = 0.7 is [[5.32419334e-06 4.55058362e-05]\n",
      " [4.55058362e-05 3.88938018e-04]]\n",
      "Covariance from a = 0.9 is [[ 0.00012678 -0.00059282]\n",
      " [-0.00059282  0.00277204]]\n",
      "parameter[0] = 0.9725340439828718 +- 0.0313194600597356\n",
      "parameter[1] = 0.5325144648541262 +- 0.07195438673559529\n",
      "chi2 / dof = 0.645814241976392 / 2, i.e., p = 0.7240410994668618\n"
     ]
    }
   ],
   "source": [
    "import scipy.optimize as opt\n",
    "from scipy.integrate import quad\n",
    "from scipy.special import gamma\n",
    "\n",
    "def jackknife_covariance_estimator(f, x):\n",
    "    N = len(x)\n",
    "    X = sum(x) / N\n",
    "    mean = f(X)\n",
    "    def outer_sqr(a):\n",
    "        return np.outer(a,a)\n",
    "    return sum([outer_sqr(f((N*X - x[j])/(N-1)) - mean) for j in range(N)])*(N-1)/N\n",
    "\n",
    "def get_p_value(chi2, dof):\n",
    "    return quad(lambda x: 2**(-dof/2)/gamma(dof/2)*x**(dof/2-1)*np.exp(-x/2), chi2, np.inf)[0]\n",
    "\n",
    "class model_two_parameter:\n",
    "    def __init__(self, power):\n",
    "        self.power = power\n",
    "        \n",
    "    def __call__(self, a, p):\n",
    "        return p[0] + p[1] * a**self.power\n",
    "    \n",
    "    def parameter_gradient(self, a, p):\n",
    "        return np.array([1.0,a**self.power])\n",
    "    \n",
    "    def reasonable_parameter_values(self):\n",
    "        return [0.8, 0.7]\n",
    "    \n",
    "class fit:\n",
    "    def __init__(self, data, lattice_spacings_to_fit, model):\n",
    "        self.data = data\n",
    "        self.lattice_spacings_to_fit = lattice_spacings_to_fit\n",
    "        self.model = model\n",
    "        \n",
    "    def chi_square(self, data, parameter):\n",
    "        return sum([ ((self.model(x, parameter) - y) / err)**2. for x, y, err in data ]) \n",
    "\n",
    "    def most_likely_parameter(self, f, data):\n",
    "        opt_res = opt.minimize(lambda p: self.chi_square(data, p), self.model.reasonable_parameter_values(),\n",
    "                               method = \"Nelder-Mead\", tol = 1e-7)\n",
    "        assert opt_res.success == True\n",
    "        return opt_res.x, opt_res.fun\n",
    "    \n",
    "    def select_lattices(self, data):\n",
    "        return [data[i] for i in self.lattice_spacings_to_fit]\n",
    "    \n",
    "    def run(self):\n",
    "        mean, chi2 = self.most_likely_parameter(\n",
    "            self.model, self.select_lattices(\n",
    "                list(zip(self.data.lattice_spacings, self.data.xsqr_mean, self.data.xsqr_err))\n",
    "            )\n",
    "        )\n",
    "        \n",
    "        covariances = []\n",
    "        for i in range(len(self.data.res)):\n",
    "            covariances.append(jackknife_covariance_estimator(\n",
    "                lambda resi: self.most_likely_parameter(\n",
    "                    self.model, self.select_lattices(\n",
    "                        list(zip(self.data.lattice_spacings, \n",
    "                                 self.data.xsqr_mean[:i] + [resi] + self.data.xsqr_mean[i+1:],\n",
    "                                 self.data.xsqr_err))\n",
    "                    )\n",
    "                )[0],\n",
    "                self.data.res[i]\n",
    "            ))\n",
    "            print(\"Covariance from a =\",self.data.lattice_spacings[i],\"is\",covariances[i])\n",
    "        \n",
    "        self.best_parameter = mean\n",
    "        self.best_parameter_cov = sum(covariances)\n",
    "        self.chi2 = chi2\n",
    "        self.dof = len(self.lattice_spacings_to_fit) - len(mean)\n",
    "        self.p = get_p_value(self.chi2, self.dof)\n",
    "        \n",
    "        for i in range(len(mean)):\n",
    "            print(f\"parameter[{i}] = {self.best_parameter[i]} +- {self.best_parameter_cov[i][i]**0.5}\")\n",
    "        print(f\"chi2 / dof = {self.chi2} / {self.dof}, i.e., p = {self.p}\")\n",
    "\n",
    "f = fit(d, [0,1,2,3], model_two_parameter(2))\n",
    "f.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2effb3a",
   "metadata": {},
   "source": [
    "The statistical estimates of both parameters agree within errors with the function that was used to generate the data.\n",
    "\n",
    "## Plotting fit results\n",
    "\n",
    "Once we have found the best fit parameters and have an estimate of their covariance, we can ask the question what the variance of the model prediction is for a given $a$ value.  For sufficiently small fluctuations it is straightforward to show that\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle f(a,p)^2 \\rangle_p - \\langle f(a,p) \\rangle_p^2 &=\n",
    "\\frac{\\partial f}{\\partial p_i}(a,\\langle p \\rangle) \\frac{\\partial f}{\\partial p_j}(a,\\langle p \\rangle)\n",
    "\\langle (p - \\langle p \\rangle_p)_i (p - \\langle p \\rangle_p)_j \\rangle \\,.\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "411be2c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def make_plot(data, fit):\n",
    "    \n",
    "    df_dp = fit.model.parameter_gradient\n",
    "    \n",
    "    def err_f(a,p,cov_p):\n",
    "        return np.dot(df_dp(a,p), np.dot(cov_p, df_dp(a,p)))**0.5\n",
    "\n",
    "    fxrange = np.arange(0.0, data.lattice_spacings[-1]*1.1, 0.01)\n",
    "    fy = np.array([fit.model(asqr**0.5,fit.best_parameter) for asqr in fxrange])\n",
    "    fyerr = np.array([err_f(asqr**0.5,fit.best_parameter,fit.best_parameter_cov) for asqr in fxrange])\n",
    "    fig, ax = plt.subplots()\n",
    "    plt.xlim(0,data.lattice_spacings[-1]**2.*1.1)\n",
    "    ax.fill_between(fxrange,fy-fyerr,fy+fyerr,alpha=0.1,color=\"blue\")\n",
    "    ax.plot(fxrange,fy,c=\"blue\")\n",
    "    plt.xlabel(\"a^2\")\n",
    "    plt.ylabel(\"<x^2>\")\n",
    "    ax.errorbar([ a**2 for a in data.lattice_spacings], data.xsqr_mean, data.xsqr_err, marker='+', ls='', c='red')\n",
    "    plt.show()\n",
    "    \n",
    "make_plot(d,f)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bcc04971",
   "metadata": {},
   "source": [
    "## Systematic uncertainties in fits\n",
    "\n",
    "The $P$-value can be used to detect models that are inconsistent with the data.  One typically would reject fits with a $P$-value below 0.05 or 0.01.  Note, however, that there may be models that are not rejected based on such a criterion which would, however, yield incorrect extrapolation results.  It is therefore crucial to understand from first principles, what model is expected to describe the data.  Let us, e.g., vary the power parameter of the model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8276993f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance from a = 0.3 is [[ 0.0002933  -0.00062207]\n",
      " [-0.00062207  0.00131937]]\n",
      "Covariance from a = 0.5 is [[ 0.00018441 -0.00031133]\n",
      " [-0.00031133  0.00052559]]\n",
      "Covariance from a = 0.7 is [[5.70044895e-05 6.94709773e-05]\n",
      " [6.94709773e-05 8.46638004e-05]]\n",
      "Covariance from a = 0.9 is [[ 2.89871654e-05 -3.63028438e-04]\n",
      " [-3.63028438e-04  4.54648273e-03]]\n",
      "parameter[0] = 1.0488704541569347 +- 0.023742388886163212\n",
      "parameter[1] = 0.5927260642234137 +- 0.08047425253679717\n",
      "chi2 / dof = 1.1672008310949793 / 2, i.e., p = 0.5578861244091011\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance from a = 0.3 is [[ 0.00021279 -0.00051691]\n",
      " [-0.00051691  0.00125567]]\n",
      "Covariance from a = 0.5 is [[ 0.00016061 -0.0003554 ]\n",
      " [-0.0003554   0.00078639]]\n",
      "Covariance from a = 0.7 is [[ 8.93488411e-05 -1.22643890e-05]\n",
      " [-1.22643890e-05  1.68346079e-06]]\n",
      "Covariance from a = 0.9 is [[ 9.76342071e-06 -2.68073675e-04]\n",
      " [-2.68073675e-04  7.36048333e-03]]\n",
      "parameter[0] = 1.0768072629936558 +- 0.02173755115720664\n",
      "parameter[1] = 0.6882784657540444 +- 0.09697536912676169\n",
      "chi2 / dof = 5.04266567743004 / 2, i.e., p = 0.08035243850549526\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "f = fit(d, [0,1,2,3], model_two_parameter(4))\n",
    "f.run()\n",
    "make_plot(d,f)\n",
    "\n",
    "f = fit(d, [0,1,2,3], model_two_parameter(6))\n",
    "f.run()\n",
    "make_plot(d,f)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7fd5b55",
   "metadata": {},
   "source": [
    "Both models still yielded an acceptable $P$-value, however, the $a\\to 0$ result (paramter[0]) was inconsistent with the expected result of $1$.\n",
    "\n",
    "A more realistic case is that we know the asymptotic, say $a\\to0$, behavior but that at finite $a$ there are small deviations from the fit model.  Let us investigate this case.  In this case, we may devise a systematic error by investigating the effect of the data points that are least expected to follow the model (here the largest values of $a$):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "163701db",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Acceptance rate: 0.6363\n",
      "Acceptance rate: 0.6477\n",
      "Acceptance rate: 0.6539\n",
      "Acceptance rate: 0.635\n",
      "Covariance from a = 0.3 is [[ 0.00056386 -0.00085898]\n",
      " [-0.00085898  0.00130855]]\n",
      "Covariance from a = 0.5 is [[ 0.00021469 -0.00024639]\n",
      " [-0.00024639  0.00028278]]\n",
      "Covariance from a = 0.7 is [[2.79959999e-05 3.76234555e-05]\n",
      " [3.76234555e-05 5.05616674e-05]]\n",
      "Covariance from a = 0.9 is [[ 9.17326352e-05 -4.12311415e-04]\n",
      " [-4.12311415e-04  1.85321944e-03]]\n",
      "parameter[0] = 1.0523907312375735 +- 0.029971198544555266\n",
      "parameter[1] = 0.060524600513689505 +- 0.059119506270746136\n",
      "chi2 / dof = 5.119393026486666 / 2, i.e., p = 0.07732820496863554\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance from a = 0.3 is [[ 0.00105505 -0.00245038]\n",
      " [-0.00245038  0.00569104]]\n",
      "Covariance from a = 0.5 is [[ 1.69798888e-04 -1.24159148e-04]\n",
      " [-1.24159148e-04  9.07867789e-05]]\n",
      "Covariance from a = 0.7 is [[ 0.00014609 -0.00103002]\n",
      " [-0.00103002  0.00726229]]\n",
      "Covariance from a = 0.9 is [[0. 0.]\n",
      " [0. 0.]]\n",
      "parameter[0] = 1.0053279073827692 +- 0.0370261851900245\n",
      "parameter[1] = 0.27205832729781265 +- 0.11421085408373621\n",
      "chi2 / dof = 0.43340017721134816 / 1, i.e., p = 0.5103252322066846\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Systematic error estimate: 0.047062823854804314\n"
     ]
    }
   ],
   "source": [
    "random.seed(13)\n",
    "\n",
    "d2 = xsqr_data([ 0.3, 0.5, 0.7, 0.9 ], lambda a: 1.0 + a**2*0.5 - a**4*0.5, 25)\n",
    "f2_4a = fit(d2, [0,1,2,3], model_two_parameter(2))\n",
    "f2_4a.run()\n",
    "make_plot(d2,f2_4a)\n",
    "\n",
    "f2_3a = fit(d2, [0,1,2], model_two_parameter(2))\n",
    "f2_3a.run()\n",
    "make_plot(d2,f2_3a)\n",
    "\n",
    "print(f\"Systematic error estimate: {f2_4a.best_parameter[0] - f2_3a.best_parameter[0]}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53b03e24",
   "metadata": {},
   "source": [
    "After excluding the largest $a$ value, the fit results agree with the expected value and the difference of a fit to three and four lattice spacings can be used as a systematic error estimate.\n",
    "\n",
    "## Understanding the exponential noise growth in correlation functions\n",
    "\n",
    "Finally, we add a comment to the statistical noise of correlation functions.  Consider the two-time correlator of the previous chapter,\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle x_f x_i \\rangle \\,,\n",
    "\\end{align}\n",
    "$$\n",
    "then its statistical variance is\n",
    "$$\n",
    "\\begin{align}\n",
    "\\langle x_f^2 x_i^2 \\rangle - \\langle x_f x_i \\rangle^2 \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "Since both expectation values can be related to the spectrum and matrix elements of the Hamiltonian $H$, one can estimate the signal to noise of correlation functions in a Euclidean path integral.  This is argument is typically credited to Peter Lepage.\n",
    "\n",
    "Consider the dominant long-time energy of $\\langle x_f^2 x_i^2 \\rangle$ to be $E_{x^2}$ and of $\\langle x_f x_i \\rangle$ to be $E_{x}$, then the noise to signal behaves as\n",
    "$$\n",
    "\\begin{align}\n",
    "\\frac{\\sigma^2}{\\mu^2} &= \\frac{\\langle x_f^2 x_i^2 \\rangle - \\langle x_f x_i \\rangle^2}{\\langle x_f x_i \\rangle^2} \\\\\n",
    "&=e^{-(t_f - t_i) (E_{x^2} - 2E_x)} + \\textrm{const} \\,.\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "In the case of the Harmonic oscillator with parameters as in the last chapter, $E_{x^2}=0$ and $E_x=1$, so\n",
    "the relative noise grows exponentially!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "520473ee",
   "metadata": {},
   "source": [
    "***Homework***: Perform the $E_1 - E_0$ study of the Harmonic oscillator for different lattice spacings $a$ and extrapolate to the continuum limit $a\\to 0$.  Provide an estimate of both statistical and systematic uncertainties."
   ]
  }
 ],
 "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.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
