Skip to content

Instantly share code, notes, and snippets.

@AustinRochford
Last active July 30, 2024 19:28
Show Gist options
  • Save AustinRochford/8998cd31f43d8adcf5bd743aaa6c10f1 to your computer and use it in GitHub Desktop.
Save AustinRochford/8998cd31f43d8adcf5bd743aaa6c10f1 to your computer and use it in GitHub Desktop.
A Quantitative Analysis of Deuces in Tennis
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "17efebf7-267c-420f-a1ea-003863e0e534",
"metadata": {},
"source": [
"To celebrate fourteen years(!) of sporadically writing here and break a bit of a recent dry spell, I thought it would be fun to revisit this blog's [first post](https://austinrochford.com/posts/2013-04-25-probability-and-deuces-in-tennis.html) on probability theory and deuces and tennis. Specifically, this post will investigate whether or not historical match data aligns with the theoretical results drived in that post.\n",
"\n",
"That post summed an infinite series to show that if the probability a server wins a single point is $p$, the probability that they win a game from [deuce](https://en.wikipedia.org/wiki/Glossary_of_tennis_terms#Deuce) is\n",
"\n",
"$$P(\\text{Server wins from deuce}\\ |\\ p) = \\frac{p^2}{1 - 2p \\cdot (1 - p)}.$$ \n",
"\n",
"The plot below contrasts this function with the line $y = x$, to show how the deuce structure of tennis advantages better players more than one might expect."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b9d7aa5b-8e80-4708-a625-56396780c564",
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7812e69e-22b3-4425-a021-0f0821d9c043",
"metadata": {},
"outputs": [],
"source": [
"from fastprogress.fastprogress import progress_bar\n",
"from itertools import product\n",
"from urllib.parse import urljoin\n",
"from warnings import filterwarnings"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "eff74359-323f-4505-899a-4c9528316958",
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import ticker, pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "162a30cc-cc25-49fe-b02e-53c515962378",
"metadata": {},
"outputs": [],
"source": [
"filterwarnings(\"ignore\", category=pd.errors.DtypeWarning)\n",
"filterwarnings(\"ignore\", category=pd.errors.SettingWithCopyWarning)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "60f88bb7-b0ef-4a16-bea5-0d8152f165d2",
"metadata": {},
"outputs": [],
"source": [
"sns.set(color_codes=True)\n",
"\n",
"pct_formatter = ticker.StrMethodFormatter(\"{x:.1%}\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "61c3dcf2-1e94-429c-adb9-75cda8a6109b",
"metadata": {},
"outputs": [],
"source": [
"def theory_win_prob(p):\n",
" return p**2 / (1 - 2 * p * (1 - p))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "46fc6073-b4ab-4579-9948-014a1f6376b2",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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qFHjnU46YMCAUNuCgoK4desWBw4coF69eu/UvoiIPblz5zY//fQ9AB07dn2nl6iCx4jt2rVDjyVFYokIh7HRo0e/80n37dsXapvFYiFhwoS0adOG9u3bv/M5RETsxaJF8/Dz8yNfvgKULFk60u28OlhfRGKHSD8PvHjxIrt37+bOnTs0adKEa9eukSNHDhImTPjWz27bti2ypxURcSi3bt1k9eqfAOjUqVuke8X01qRI7BXhMBYUFMSgQYNYvXq1bc6xTz75hFmzZvHvv//y7bffkjp16nC19ejRIw4ePMidO3eoUqUKDx8+JFOmTO88j5mIiL1YsGAOVquVQoWKUKRIsUi1oSAmErtF+HWcWbNmsX79ekaMGMHu3bsxDAOAPn36EBQUxOTJk8PVzuzZsylbtiydOnVi2LBh3Lx5k9GjR1O/fn18fHwiWpaIiN25fv0/1q5dDUS+V8xqtSqIicRyEQ5jq1evpmvXrtStWxcvLy/b9pw5c9K1a1d279791ja+/fZbpk+fTosWLfjpp59sga5x48Zcu3aNqVOnRrQsERG7M3/+bAICAihevCQFCxaOVBtOTk64u7sriInEYhEOY/fu3SNnzpxh7kuVKlW4erWWL19O27Zt6datGx9++KFte9myZenevbvGlImIw/v336usX78WePEGZWQ5OzszfPgYli37QUFMJJaKcBjLmDEjO3bsCHPf/v37yZgx41vbuHHjBkWLhr0AbebMmbl3715EyxIRsStz584kMDCQ0qXLkjdv/gh91mr154cfviMwMBB4Echy5MgVDVWKSFSI8AD+Zs2aMWjQIKxWK+XLl8disXD16lX27dvHokWL6N+//1vbSJMmDUeOHKFkyZKh9p08eZI0adJEtCwREbtx6dJFfvvtV+DFbPsR8fJg/XPnzjBo0PDoKFFEolCEw1j9+vV58OABs2fP5vvvv8cwDHr27ImrqyutW7fmyy+/fGsb9erVY/r06bi7u9vWoHz27Bm///47c+fOpUWLFhG+EBERezF37kyCgoIoV64iuXLlDvfnXn1rsmLFytFYpYhEFYsRPHo+gp48ecKRI0d4+PAhnp6e5MuXL8SA/jcxDIPBgwezcuVK29fBbwnVqFGDMWPGRNm6a47C2/spAQFBZpch78jFxYkkSRLoftqByN7L8+fPUr9+TQB++ukXsmXLHq7P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MWMGa9aseWsb+/fvf+1bl5UrV2bv3r0AFChQgGvXrkW0RBGJJaxWf/r378muXTtt22IiiAFs27aFU6f+IX78+LRs2S5GzikiEhkR7hlbsmQJX375JYMHD7Zty5w5M8WKFcPd3Z1ly5ZRu3btN7bh5eXFmTNnwlzy6MyZM7bHnc+ePcPDwyOiJYpILPDyYP1du/5i48atMfZiTmBgIDNnvniDsnHj5npLW0RitQj3jF29epVKlSqFua9ixYpcunTprW3UqFGDadOmsXTpUm7fvo3VauXWrVssX76cGTNmUKNGDR49esTSpUvJly9fREsUEZO9+tbk2LGTYvQN6Y0b13Pp0kU8PRPTpEmLGDuviEhkRLhnLFWqVK+dmuK///4L1yD+7t27c//+fcaMGcOYMWNs252cnKhbty49evTg999/59SpUyxdujSiJYqIicyYvuJl/v7+zJ49HYAWLdqQKFGiGDu3iEhkRDiMVahQgalTp5I9e3by5s1r237s2DGmT58erjnJXFxcGD16NB07dmTv3r14e3uTKlUqChYsSPr06YEXC4b/9ddfuLnFzPgSEXl3ZgcxgJ9++p4bN66TIkUKvvii0ds/ICJisgiHsS5duvD333/ToEED3nvvPZInT869e/e4fv06WbJkoVevXuFuK3369Lbw9arEiRNHtDQRMdmqVT+aGsQeP37MggWzAWjfvovGnIpInBDhMJYwYUJWrVrF6tWrOXDgAI8ePSJPnjy0bNmSOnXq4O7uHh11ikgc8PnnDTl37iyVKlWJ8SAGsGTJAh4+fEimTJmpWbNOjJ9fRCQywrUc0statWpF69atKVGiRHTVJJGgJTrsQ1xccsVqteLk5ISzs7Opddy+fZuaNavw/PlzJk2aQYUKYb9oFFPi4r2U19P9tB+xcTmkCFdz+PDhty5lJCKO4cUYsZ4MHvwVgYGBptYyd+4Mnj9/Tr58BShfvqKptYiIRESEw9hHH33EunXrsFqt0VGPiMQRLw/W37z5N86fP2daLZcuXWTt2tUAdO/eRz8wikicEuExY/HixWPdunX89ttvZMmShfjx44fYb7FYNB2FiJ0L663JHDlymlbPtGmTCAoKoly5ihQoUNC0OkREIiPCYezWrVsUKFDA9vWrQ84iOARNROKY2DB9xcuOHDnM9u1bcXJyomvXnqbVISISWREOY8uXL4+OOkQkDohtQcwwDKZMGQ9ArVp1yZw5i2m1iIhEVoTC2PHjx7l+/ToZM2YkV65c0VWTiMRSZ86c5q+/tseKIAbw559bOXbsCO7u7rRv39nUWkREIitcYczHx4d27dpx9OhRDMPAYrFQoEABJk6cSJo0aaK7RhGJJfLkycfEidNxdnY2PYgFBAQwffokABo1akbKlKlMrUdEJLLCFcamTJnCqVOn6NKlC7lz5+bSpUvMmTOHQYMGMX/+/OiuUURMZLX6c//+fVKnfvGDV5ky5cwt6H9++eVnLl++hJeXF82btza7HBGRSAtXGPvzzz/p2bMnzZo1A16sG5kqVSp69+7Ns2fPQr1RKSL2IXiM2D//nGD+/KVkyJDR7JIA8PV9xpw5LxYDb926gxYDF5E4LVzzjN29e5cPP/wwxLZixYoRGBjIzZs3o6UwETHXy4P1vb0fcP36f2aXZPPtt8u4e/cuadO+x+eff2l2OSIi7yRcYSwgIAA3N7cQ24IX8vbz84v6qkTEVGG9NVmiRCmzywLA29ubJUteDI/o1Kl7qL+bRETimndenEnzionYl9g2fcWr5s+fzdOnT8mRIxeffPKp2eWIiLyzdw5jWnZExH7E9iD233/X+Omn7wHo1q0XTk6xa7FfEZHICPc8Y0OGDCFhwoS2r4N7xL755hsSJEhg267lkETiLl9fX65f/y9WBjGAqVMnEhBgpVixkrHmsamIyLsKVxgrUqQIEPqRZFjb9dhSJO7y9EzM3LmLuHDhPIULFzW7nBCOHDnEli2bsFgs9OzZ1+xyRESiTLjCmJZAErFfVqs/e/fu4aOPygLg5ZUk1gWxoKAgxo8fDUDt2vXInj2HyRWJiEQdDbgQcWDBY8S6dGnHypU/mF3Oa23cuJ5Tp06SIEECOnXqZnY5IiJRSmFMxEG9Olg/bdr3zC4pTL6+z5g27cWyR61atSNZsuQmVyQiErUUxkQcUGx/a/JlS5cu4s6d26RN+x6NGjUzuxwRkSinMCbiYOJSELt9+zZLliwEoFu33sSLF8/kikREop7CmIgDCQwMjDNBDGD69Ek8f+5L/vwFqVy5qtnliIhEC4UxEQfi7OzMBx9kixNB7J9/TvDrr78A0Lv3AE0wLSJ2K9yTvoqIfejQoQuffvoZGTJkNLuU1zIMgwkTxgDw6aefkTt3HpMrEhGJPuoZE7FzVqs/c+bMwNf3mW1bbA5iAH/88TtHjhzC3d2drl17ml2OiEi0UhgTsWPBg/XnzJlBr15d48QKGX5+fkyZMgGApk1bkipVapMrEhGJXgpjInbq1bcmGzVqFifGXa1YsZzr1/8jRYqUtGjR2uxyRESincKYiB2KS9NXvOzBg/ssWDAbgC5deuDhEd/kikREop/CmIidiatBDGD27Ok8ffqUXLk+pHr1mmaXIyISIxTGROzMyJFD42QQu3DhHKtX/wS8mMrCyUl/PYmIY9DfdiJ25osvGpMiRco4FcQMw2D8+DEEBQVRqVJlChYsbHZJIiIxRvOMidiZHDlysn79Ztzd3c0uJdy2bt3Mvn1/4+bmRvfufcwuR0QkRqlnTCSOs1r9+frrfhw5cti2LS4FMV/fZ7YJXps3b026dOlNrkhEJGYpjInEYcGD9X/99Rd69uzEs2dPzS4pwhYsmMutWzdJkyYtLVq0MbscEZEYpzAmEke9+tbkiBHjiB8/gdllRcjVq1dYtmwRAH36fIWHh4fJFYmIxDyFMZE4KC5PXxHMMAzGjRuJ1WqlVKmPKF++otkliYiYQmFMJI6xhyAG8OefW9m9+y9cXV3p23dgnFgdQEQkOiiMicQx3367LM4HMV9fX8aPHwW8WH8yY8b3zS1IRMREmtpCJI5p1Kgp//xzgtq168XJIAawePF8bt68QerUaWjdup3Z5YiImEphTCQOCAgIwNnZGYvFgpubGxMmTDW7pEi7du1flixZAEDv3v21/qSIODw9phSJ5axWf/r27cH48aMxDMPsct6JYRiMHTsSf39/ihcvScWKlc0uSUTEdApjIrHYy4P1V636gUuXLppd0jvZseNPdu3agYuLK/37f61B+yIiOFAYe/jwIYMGDaJMmTIULFiQL7/8koMHD9r2t2jRguzZs4f41aRJkze2+d1331GxYkXy5s1Lw4YNOXXqlG2fYRiMGDGCwoULU6VKFfbs2RPis4sXL6Zbt25Re5FiV8J6azJLlqxmlxVpz58/Z9y4kQA0adKc99/PbHJFIiKxg8OMGevZsyd3795l0qRJJEuWjOXLl9OqVSvWrFlD5syZOXv2LEOGDKFSpUq2z7i6ur62vTVr1jBu3DiGDx9Orly5mDdvHi1atOC3334jadKk7Nixgz/++INvv/2WI0eO0KdPH/766y8sFgs+Pj4sWLCAFStWxMSlSxxkL9NXvGzx4vncuHGdVKlS06ZNe7PLERGJNRyiZ+zq1avs3r2bIUOGULhwYTJlysQ333xDypQpWb9+Pffv3+f+/fvky5ePFClS2H55eXm9ts05c+bQuHFjPvvsM7JmzcqoUaPw8PBg5cqVAJw/f56CBQuSI0cO6tSpw927d/H29rZ9tmrVqmTMmDEmLl/iGH9/f3r37mFXQey//66xePF8AHr27BfnVgoQEYlODhHGkiRJwrx588iTJ49tm8VisfVSnT17FovFQqZMmcLV3v3797ly5QolSpSwbXNxcaFw4cIcOHAAgHTp0nHmzBmePHnCgQMHSJAgAV5eXty4cYM1a9bQqVOnqL1IsRsHDhzgzz+32k0QAxg/fhT+/v4ULVqcypWrml2OiEis4hCPKT09PSlbtmyIbb///jtXr17lq6++4ty5cyRKlIhhw4axe/du4sePT9WqVenYsSNubm6h2rt16xYAadKkCbE9ZcqUnDlzBoDKlSvzyy+/ULRoUVxdXRk+fDhOTk5MmTKFJk2akDRp0mi6WonrSpUqxejR40mY0NMugtj27dvYseNPXFxc6N//Gw3aFxF5hUOEsVcdPnyYAQMGULlyZcqVK8dXX32Fn58fefPmpUWLFpw+fZpx48Zx48YNxo0bF+rzvr6+AKGCWrx48fDz8wPA2dmZOXPm8ODBAxImTIibmxunT59m7969DB06lLVr1zJr1izc3d355ptvKFKkyDtdk7OzQ3Ry2i2r1R8fn8ekTJkCgM8+q0lgYJDJVb27J0+eMHr0UACaNWtBtmwfmFxRzAn+ntT3pn3Q/bQfsfHnQYcLY3/88Qe9e/emYMGCTJgwAYBhw4bRr18/EidODEC2bNlwdXWlR48e9O3bl+TJk4dow93dHXgxtudlfn5+eHh4hNj2cg/Y+PHj6dSpE48fP2bEiBGsWbOGO3fu0K1bN7Zu3Uq8ePEifV2enh5vP0hiJX9/fzp27MbZs2dZuXIlnp4ednM/J0wYxe3bt3n//fcZMKBfqO8PR2Av91Je0P2U6OBQYezbb79l5MiRVK1albFjx9p6tlxcXGxBLNgHH7z4Cf7WrVuhwljw48k7d+6QJUsW2/Y7d+6QKlWqMM+9a9cubt68Sb169di2bRvvv/8+6dOnJ3369AQFBXHlyhWyZ88e6Wvz8fG1i54UR2O1vhisv3Xri8H6x479Q+rUqe3ifh45cpilS5cC8PXXQ3j+PIjnz5+aXFXMcXZ2wtPTwy7upeh+2pPEiT1wcopdPZwOE8ZWrFjB8OHDadKkCQMHDgwxbqVJkyakS5eO0aNH27adOHECV1dX3n///VBtJUuWjEyZMrFv3z7bIP6AgAAOHjxIw4YNQx0fFBTEhAkT6NWrl21Jm6Cg//9mDggIeOeZ1QMDgwgI0F8QcUlY01cULVociPv309/fn8GDv8YwDD77rDaFCxeP09fzLuL6vZSQdD/jvti4kIlDhLHLly8zatQoPv74Y9q1a8e9e/ds+9zd3alSpQqjRo0ib968lC5dmhMnTjBu3DhatWpFwoQJgReTxgK26S5atmzJyJEjyZgxI3ny5GHevHk8f/6cevXqhTr/unXr8PDwsM1hljt3bi5evMiuXbu4e/cuTk5OYYY+sV/2OI/YyxYvns+lSxdIkiQpPXv2NbscEZFYzSHC2O+//47VamXLli1s2bIlxL7atWszZswYLBYLy5cvZ9SoUaRIkYLmzZvTtm1b23FdunQBYPny5QB8/vnnPH78mClTpvDw4UNy587N4sWLQ70l6efnx9SpU5k4caJtW+rUqfn666/p27cvHh4ejB8/3jYOTeyfvQexS5cusmDBHAD69v0KL68kJlckIhK7WYy4vvKwAODt/VRd53HE/fv3aN68Ebdv3wwVxFxcnEiSJEGcvZ9BQUG0atWEI0cOUapUGWbMmOuwU1nE9XspIel+2o+kSRPEurdiHaJnTCQ2SZYsOQsWLOPKlUsUK1bi7R+IQ37++SeOHDmEh0d8Bg4c7LBBTEQkImJXNBSxU1arPwcP7rd9nSpVKrsLYnfu3GbKlBfTxXTu3J20ad8zuSIRkbhBYUwkmgWPEWvbtjm//far2eVEm7FjR/DkyRNy587LF180MrscEZE4Q2FMJBq9PFjfxcUFT8/Eb/9QHLRt2x9s3friGgcNGo6zs7PZJYmIxBkKYyLRxN7fmgz2+PFjRo8eBkDTpi3Jli3ykxeLiDgihTGRaOAoQQxg2rSJ3L17h/TpM9K2bUezyxERiXMUxkSiWEBAgMMEsSNHDrFy5Q8ADBo0VPPliYhEgsKYSBRzdnYmVapUdh/EfH2fMXjwVwDUqlWXIkWKm1yRiEjcpHnGRKKYxWKhb9+B1K3bgKxZPzC7nGgzdepE/v33KilTptKSRyIi70A9YyJRwGr1Z8mShVit/sCLQGbPQWzv3r/54YfvABgyZKTdviUqIhIT1DMm8o5eHqx/6tRJxo2bbHZJ0crHx8f2ePLzzxtSsmRpkysSEYnb1DMm8g5efWuyZs06ZpcU7caNG8nt27dInz4jPXr0NrscEZE4T2FMJJIcafqKYFu3bubXX3/BycmJ4cNH4+ER3+ySRETiPIUxkUhwxCB2//49RowYDEDz5q3In7+gyRWJiNgHhTGRSBg69BuHCmKGYTB8+GC8vb3Jli077dt3MbskERG7oTAmEgl1635OkiRJHCKIAaxfv5bt27fi4uLKiBHjcHNzM7skERG7obcpRSKhQIFCbNjwB/HjJzC7lGh38+YNxo0bCUDHjl209qSISBRTz5hIOFit/gwd+jVnz56xbXOEIBYUFMTgwV/x5MkT8ubNT7NmrcwuSUTE7iiMibxF8GD9NWtW0aVLO/z8/MwuKcb88MO37N+/F3d3D4YPH4Ozs7PZJYmI2B2FMZE3ePWtycGDRxAvXjyzy4oRV65cYurUiQD06NGHjBnfN7cgERE7pTAm8hqOOH1FMKvVytdf98fPz4/ixUvy+edfml2SiIjdUhgTCYMjBzGAmTOncvLkcRImTMTQoaOwWCxmlyQiYrcUxkTCsGDBXIcNYn/9tYMlSxYAMHToSFKlSm1yRSIi9k1TW4iEoVmzlhw7doQmTVo4VBC7ffsW33zTD4AvvmhExYqVTa5IRMT+KYyJ/E9gYKDtbcH48RMwe/ZCh3o8FxAQwIABvXn48CE5c+aiZ89+ZpckIuIQ9JhShBdjxPr06c68ebNs2xwpiAHMmTODw4cPkiBBAsaOnaxZ9kVEYojCmDi8lwfrL1gwh2vX/jW7pBi3Z89uFi6cC8A33wwjQ4aMJlckIuI4FMbEoYX11mT69BnMLitG3b17h4ED+2IYBnXrfk7Vqp+aXZKIiENRGBOH5ejTV8CLcXJffdWHBw/uky1bdvr0+crskkREHI7CmDgkBbEXFiyYw4ED+/DwiM/YsZNxd3c3uyQREYejMCYOac+evx0+iB04sI+5c2cCMHDgYDJlymxyRSIijklTW4hDKlOmHAMGDCJduvQOGcQePLjPV1/1JigoiJo161C9ek2zSxIRcVgKY+IwrFZ/fH2f4+npCUCDBg1NrsgcQUFBDBzYl7t375I5c1b69//a7JJERByaHlOKQwgeI9a2bXMePXpodjmmmj9/Nnv27Mbd3Z1x4ybj4RHf7JJERByawpjYvZcH61+6dIHz58+ZXZJptm3bwuzZ0wEYMGAQWbN+YHJFIiKiMCZ2Lay3JgsXLmp2WaY4f/4sAwe+WOLoyy8bU7NmHZMrEhERUBgTO6bpK/6ft7c33bt3wtf3GUWLFte6kyIisYjCmNglBbH/Z7Va6du3O9ev/0e6dOkZN24yrq6uZpclIiL/ozAmdun+/fucPHnc4YMYwMSJYzhwYB/x48dnypSZeHklMbskERF5iaa2ELuUOnUa5s9fyo0b1ylRopTZ5Zjm559X8sMP3wEwcuR4smbNZnJFIiLyKvWMid2wWv05ceK47euMGd936CB25MghRo0aBkDHjl0pX76iyRWJiEhYFMbELgSPEWvZshG7du00uxzT3bx5g169uhIQYKVSpSq0adPB7JJEROQ1FMYkznt5sL7FYsFisZhdkql8fX3p0aMzDx7cJ1u2HAwfPtrh/0xERGIzhTGJ0/TWZEiGYTBkyEDOnDlFkiRJmDJlpmbYFxGJ5RTGJM5SEAtt0aJ5/P77RlxcXJgwYRpp075ndkkiIvIWCmMSJ1mtVgWxV2zYsI7p0ycD0K/f1xQqVMTkikREJDwUxiROcnJywt3dXUHsf/7++y8GD/4KgMaNm1G//hcmVyQiIuFlMQzDMLsIeXfe3k8JCAgyu4wYFRgYyPnzZ8mRI5fZpUQZFxcnkiRJEKH7efLkCdq0aYav7zM++aQ6I0eOw8lJP2eZLTL3UmIv3U/7kTRpApydY9ffkbGrGpE3sFr9+eGH7wgMDATA2dnZroJYZFy9epkuXdri6/uM4sVLMmzYKAUxEZE4RjPwS5zw8mD9c+fOMGjQcLNLMt3du3fo0KE13t7e5Mr1IRMnTsPV1c3sskREJIL0I7TEeq++NVmxYmWzSzLd48eP6dSpDTduXCd9+ozMmDGPBAkSml2WiIhEgsKYxGqaviI0Pz8/unfvyLlzZ0mWLDmzZy8gadJkZpclIiKRpDAmsZaCWGiBgYEMHNiHQ4cOkCBBAmbOnE+6dOnNLktERN6BwpjEWt98019B7CWGYTB27Ej++GMzrq6uTJkykxw5cppdloiIvCOFMYm1qlX7jIQJEyqI/c/8+bP56acVWCwWRo4cT5Eixc0uSUREooDeppRYq0yZcmzcuBVPz8Rml2K6775bxqxZ04AXs+tXrlzV5IpERCSqqGdMYg2r1Z+RI4fy779XbdsUxGD58sWMHz8KgLZtO/LFF41MrkhERKKSwpjECsGD9Veu/J5OndpitVrNLilWWLJkIRMnjgWgTZsOdOjQxeSKREQkqukxpZju1bcm+/f/GldXV7PLMt2iRfOYNm0SAO3adaJ9+85YLBaTqxIRkaimMCam0vQVYZs7dzbTp08GoEOHLrRr18nkikREJLoojIlpFMTCNnnyZFsQ69SpO23atDe5IhERiU4KY2KaWbOmK4i9Ytas6cyaNR2ALl160KpVO5MrEhGR6KYwJqZp1qwlhw7tp127zg4fxAzDYPbs6cybNwuAnj370LRpK5OrEhGRmKAwJjHKMAzbIHQvryQsXfqDww9KNwyDGTOmsHDhXAC++eYbGjRoQkBAkMmViYhITNDUFhJjrFZ/evfuyg8/fGfb5uhBLCgoiMmTx9mCWN++A2jfXmPEREQciXrGJEa8PFh/166dlC9fkVSpUptdlqn8/PwYNGgAv/++EYC+fb+iadPm5hYlIiIxTmFMot2rb01OmjTD4YPYo0cP6dGjM4cPH8TFxYXBg0dQo0Yts8sSERETKIxJtNL0FaFdv/4fnTq14cqVyyRMmJCJE6dTrFgJs8sSERGTKIxJtFEQC+2ff07QpUt7Hjy4T6pUqZkxYy4ffJDd7LJERMREGsAv0Wbbtq0KYi/ZsWMbrVo15cGD+2TLloNly35UEBMREfWMSfSpUuUT/v33KrlyfejwQeynn75nzJjhBAUFUbJkacaNm0LChAnNLktERGIBhTGJUlarPwEBAXh4xAdw+KV8goKCmDZtEkuWLACgdu16fPXVYC2ELiIiNgpjEmWCx4g9euTNjBnzbIHMUfn6+jJkyEDb1BWdOnWjdev2Dj+3moiIhKQwJlHi1cH6Z86coUCBgmaXZZqrVy/Tu3c3zp8/p6krRETkjTSAX95ZWG9NOnIQ27JlEw0b1uP8+XMkS5ac2bMXKoiJiMhrqWdM3ommr/h/Vqs/U6ZM5LvvlgJQqFBhxoyZRIoUKU2uTEREYjOFMYk0BbH/d+vWTfr27cHx40cBaN68NZ07d8fFRd9iIiLyZvqXQiLtxo0bHDq03+GD2N9/72LgwD54e3uTMGEiRowYS7lyFcwuS0RE4giFMYm0jBnfZ+7cJTx4cI+SJR0viAUGBjJ//mzmzp2JYRjkzJmL8eOnki5derNLExGROERhTCLEavXn6tUrZM2aDYAcOXKaXJE5Hjx4wMCBfdizZzcAdet+Tt++A4kXL57JlYmISFyjtykl3ILHiDVt+gVHjhw2uxzTbN68ibp1q7Nnz27c3d0ZPnwM33wzTEFMREQiRT1jEi6vDtZ/9uyp2SXFuPv37zF69DD++GMzAFmzfsCYMRNtvYQiIiKRoTAmb+Xob00ahsGmTRsYO3YEDx8+xMXFhZYt29KmTXtcXd3MLk9EROI4hTF5I0cPYvfu3WXkyKH8+ecfAGTLloNhw0Y77Fg5ERGJegpj8lqOHMQMw2DDhnWMGzcKH59HuLi40qZNe1q2bKtFvkVEJEopjMlrGQYEBFgdLojdvn2bkSMHs3PndgBy5szF0KGjyZYtu7mFiYiIXVIYk9dyc3NjwoRpnD17hjx58ppdTrTz8/NjxYplLFgwh6dPn+Lq6kq7dp1o1qyVesNERCTaKIxJCFarPxs2rKdmzTpYLBbc3NzsPogZhsHmzb8xZcoEbt68AUDu3HkZMmQkWbN+YHJ1IiJi7xTGxOblMWKXL1+iR48+ZpcU7U6cOMb48aNta0qmTJmKrl17Uq1aDZycNA2fiIhEP4UxAUIP1i9atLjZJUWrGzeuM23aJDZt2gCAu7sHLVq0pmnTFnh4xDe5OhERcSQKY+JQb00+ffqERYvm8+23S/Dz88NisVCjRi06d+5OypSpzC5PREQckMKYg3OUIPbs2VNWr17JkiULuH//HgCFChWhd+/+5Mz5ocnViYiII1MYc2CGYTBgQB+7DmKPHj3k+++/5fvvl/Po0SMA0qfPSI8efShfviIWi8XkCkVExNEpjDkwi8VC+fKV2LVrJxMnTrOrIHb79m2+/XYxq1b9hK/vM+BFCGvevBWffVZLyxiJiEisoTDm4D79tAYlSpQkadJkZpcSJa5evcKSJQtZv34tAQFW4MUSRq1ataVSpSo4OzubXKGIiEhICmMOxmr1Z8qUiTRr1tI2YD2uBzHDMPjnn5MsW7aIP/74naCgIAAKFixMy5ZtKVXqIz2OFBGRWEthzIG8PFj/wIG9fP/9z3G6p+jRo4ds3LieNWtWc+7cGdv2jz4qS8uW7ShQoKCJ1YmIiISPwpiDePWtyW7desfJIBYUFMTBg/v5+eeVbNu2BX9/f+DF0k2VKlWhWbNWZM+ew+QqRUREwk9hzAHYw/QVt2/fYt26Naxdu5rr1/+zbc+WLTu1a9ejWrUaJE7sZV6BIiIikaQwZufichB78OABO3f+yZYtv7Nnzy7bWLCECRPyySfVqVWrLrly5dZ4MBERidMUxuzc5MkT4lQQu3btX/788w+2b9/G0aOHbQEMoFChwtSqVY9Klarg4eFhYpUiIiJRR2HMzjVr1ooDB/bSvXufWBnEDMPg1KmTbN++jT///IMLF86H2J8jRy7Kl69I1arVyJgxk0lVioiIRB+FMTtkGIbt0V2qVKn44Yc1sWawvmEYXL/+H4cPH+Tw4YPs2bOb27dv2fY7OztTuHBRypWrQNmyFUib9j0TqxUREYl+CmN2xmr1Z8CAPlSs+DGffFIdwNQgFhQUxKVLF23h6/Dhg9y5czvEMR4e8SlV6iPKl6/ERx+VwdMzsUnVioiIxDyFsZcEBQUxY8YMVq5cyePHjylSpAiDBg0iffr0YR7v7e3NiBEj2LlzJxaLhU8//ZS+ffvaxjNdu3aN3r17c+7cOYoVK8a4cePw9PS0natOnTr06NGDsmXLRkn9Lw/W37VrJ8WKlYjRCV0Nw+Du3TtcuHCOc+fOcfToYY4cOWhbEzKYi4srH36Ym4IFC1OoUBGKFClGvHjxYqxOERGR2ERh7CWzZs1ixYoVjBkzhtSpUzN+/Hhat27N+vXrcXMLvZZh165d8fX1ZcmSJfj4+DBw4ECePXvG2LFjARg/fjxZsmRh3LhxDBs2jHnz5tG7d28A1q1bh6enZ7QEMTc3NyZOnBatQezZs6dcuHCe8+fP/S98neXChXOhgheAu7sH+fLlp2DBwhQsWJjcufNqAL6IiMj/KIz9j7+/P4sWLaJ3796UK1cOgMmTJ/PRRx+xefNmqlevHuL4I0eOsH//fjZu3EiWLFkAGDZsGK1bt6Znz56kSpWKCxcuMGDAADJmzEilSpX4888/AfDz82PatGlMnTo1Smo3DIPevXtE6VuTVqs/t27d4tatG9y4cYNbt25y8+YNbt68yX///Rtirq+XOTk5kTHj+2TNmo0PP8xDoUKFyZEjF66uru9Uj4iIiL1SGPufM2fO8PTpU0qUKGHb5unpSa5cuThw4ECoMHbw4EFSpEhhC2IARYsWxWKxcOjQIapVq0a6dOk4dOgQpUqV4tChQ7z33ovB6MuWLSNfvnzkyZMnSmq/d+8eW7eGDmKBgYEEBAQQEGDF39/K48c+PHr0iMePH+Hj4/O/X49C/PfevTvcvHmDe/fuYRjGG8+bIkUKsmbNxgcfZLP9N1OmLLi7u0fJdYmIiDgChbH/uXXrxRt9adKkCbE9ZcqUtn0vu337dqhj3dzc8PLy4ubNmwB0796ddu3aMW/ePDJlysTChQt5+PAhixcv5scff4yy2r28vPj7779xcnICwNfXO0SQslggXjyIFy8RyZMnAtKFq12LxYKLiwvOzs7/++WCi8uL/7q6utrOJ1EneP7axIk9eEsWllhO99K+6H7aDyen2DdRuMLY//j6+gKEGhsWL168MMdB+fr6hjmOLF68ePj5+QGQK1cutm/fzoMHD0iRIgUAo0ePplq1aqRMmZJ+/fqxd+9e8uXLx4gRI2yD+yPK1dWVjBkzRuqzEjsp6NoP3Uv7ovsp0UH/V/1P8KO14IWng/n5+YU52Nzd3T3UscHHx48f3/a1s7OzLYj9999/rFu3jo4dO7JixQoePnzIli1b8PLyYsaMGVF5OSIiIhJHKIz9T/Ajxzt37oTYfufOHVKlShXq+NSpU4c61t/fn4cPH5IyZcowzzF58mSaNm1K0qRJ2b9/P2XKlMHNzY2KFSty8ODBKLoSERERiUsUxv4nR44cJEyYkH379tm2+fj4cOrUKYoUKRLq+CJFinDr1i2uXr1q27Z//34AChUqFOr4kydPcuDAAZo3bw686OoOXnfRarWGWINRREREHIfC2P+4ubnRuHFjJkyYwNatWzlz5gw9evQgderUVK5cmcDAQO7evcvz588ByJcvHwULFqRHjx4cP36cvXv3MmjQIGrVqhVmT9r48ePp0qWL7ZFn/vz5Wb9+PZcuXWL16tUULFgwRq9XREREYgeFsZd07dqVevXq8fXXX/Pll1/i7OzMwoULcXV15ebNm5QuXZqNGzcCL940nDFjBunSpaNZs2Z0796dMmXKMGTIkFDt7tixg7t371KnTh3btkaNGpE6dWrq1atHQEAAnTt3jqnLFBERkVjEYrxtMikRERERiTbqGRMRERExkcKYiIiIiIkUxkRERERMpDAmIiIiYiKFMRERERETKYyJiIiImEhhTERERMRECmOxQFBQENOmTeOjjz4if/78tGnThmvXrr32eG9vb3r16kWRIkUoWrQoQ4cOxdfX17b/2rVrNGjQgAIFCtC+fXt8fHxCnKtWrVrs2LEjWq/JUTx8+JBBgwZRpkwZChYsyJdffhlindEWLVqQPXv2EL+aNGnyxja/++47KlasSN68eWnYsCGnTp2y7TMMgxEjRlC4cGGqVKnCnj17Qnx28eLFdOvWLWov0oHcvn071P3Knj07P//8MwCnT5+mcePG5M+fnwoVKrBs2bK3tvnbb79RrVo18ubNS61atULds3nz5lGsWDHKlSvHhg0bQuzbvHkz9evXj7oLdCD79u0L815mz56dihUrAjB79uww97/Jnj17qFOnDvny5aNq1aqh7tnatWspXbo0JUqUYMmSJSH2nTx5kgoVKuDn5xel12rv5s6dG+rvzbd9L0b031Uw+d9WQ0w3ffp0o1ixYsaff/5pnD592mjZsqVRuXJlw8/PL8zjGzdubNStW9c4efKk8ffffxvly5c3+vbta9vfpUsXY8CAAcaVK1eMli1bGuPHj7ftW7NmjdGkSZNovyZH0aJFC6N69erGgQMHjEuXLhlDhw418ubNa1y8eNEwDMMoUaKEsWLFCuPOnTu2X97e3q9t7+effzby5s1r/PLLL8b58+eNPn36GEWLFjXu379vGIZh/Pnnn0bZsmWN06dPGytWrDBKlSplBAUFGYZhGI8ePTJKlixpXLlyJdqv215t377dyJMnj3H79u0Q98zX19d48OCBUaxYMWPAgAHGhQsXjFWrVhl58uQxVq1a9dr29uzZY3z44YfG0qVLjQsXLhhjxowxcufObVy4cMEwDMM4d+6ckT9/fuPw4cPG1q1bjXz58hkPHz40DMMwrFarUblyZWP//v0xcu32xs/PL8Q9vHPnjrF582Yje/bstnvWrVs3o0+fPqGOe50LFy4YefLkMSZNmmRcuHDBWLBggZErVy7j77//NgzDMB48eGDky5fP2LZtm3Ho0CGjQIECxvnz522fb9q0qbFmzZpovW578+233xo5cuQwGjdubNsWnu/FiP67ahjm/tuqMGYyPz8/o0CBAsZ3331n2/bo0SMjb968xvr160Mdf/jwYSNbtmy2v8wNwzD++usvI3v27MatW7cMwzCMTz75xNi5c6dhGIaxYsUKo02b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",
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(6, 6))\n",
"ax.set_aspect(\"equal\");\n",
"\n",
"p_grid = np.linspace(0, 1, 50)\n",
"\n",
"ax.plot(p_grid, theory_win_prob(p_grid), c=\"k\", label=\"Theory\");\n",
"ax.axline((0, 0), slope=1, c=\"k\", ls=\"--\", label=\"Equality\");\n",
"\n",
"ax.set_xlim(0, 1);\n",
"ax.xaxis.set_major_formatter(pct_formatter);\n",
"ax.xaxis.set_major_locator(ticker.MultipleLocator(0.25));\n",
"ax.set_xlabel(\"Probability server wins a point\");\n",
"\n",
"ax.set_ylim(0, 1);\n",
"ax.yaxis.set_major_formatter(pct_formatter);\n",
"ax.yaxis.set_major_locator(ticker.MultipleLocator(0.25));\n",
"ax.set_ylabel(\"Probability server wins\\ngame from deuce\");\n",
"\n",
"ax.legend();"
]
},
{
"cell_type": "markdown",
"id": "11da65d0-8e34-46a3-9545-f8d059f5be09",
"metadata": {},
"source": [
"As a former calculus teacher, this derivation warms hy heart; as a statistician, it piques my curiosity."
]
},
{
"cell_type": "markdown",
"id": "314369ab-6371-48db-a5b4-2bf04b5db872",
"metadata": {},
"source": [
"## Load the data\n",
"\n",
"To see how well this theory holds up in reality, we load point-by-point data from singles matches in most major tournaments since 2011. Many thanks to [Jeff Slackmann](https://github.com/JeffSackmann) of [Tennis Abstract](https://www.tennisabstract.com/) for making this data available under a [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license on [GitHub](https://github.com/JeffSackmann/tennis_slam_pointbypoint)."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "9973ed49-63d9-4b92-bcc9-aebd1cb1addb",
"metadata": {},
"outputs": [],
"source": [
"YEARS = range(2011, 2024)\n",
"TOURNAMENTS = [\"ausopen\", \"frenchopen\", \"usopen\", \"wimbledon\"]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "38fd3c1b-da31-466b-9c0c-6c343146f450",
"metadata": {},
"outputs": [],
"source": [
"DATA_PATH_BASE = \"https://raw.githubusercontent.com/JeffSackmann/tennis_slam_pointbypoint/master/\"\n",
"\n",
"def get_data_path(year, tournament):\n",
" return urljoin(DATA_PATH_BASE, f\"{year}-{tournament}-points.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b0bc3ed4-1106-4e75-bf1a-8d25afd4a188",
"metadata": {},
"outputs": [],
"source": [
"EXCLUDE = {\n",
" # wimbledon was cancelled in 2020 due to covid\n",
" # see https://en.wikipedia.org/wiki/2020_Wimbledon_Championships\n",
" (2020, \"wimbledon\"),\n",
"\n",
" # there is no australian or french open data for 2022 and 2023\n",
" (2022, \"ausopen\"),\n",
" (2022, \"frenchopen\"),\n",
" (2023, \"ausopen\"),\n",
" (2023, \"frenchopen\")\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "898b6a25-9f80-40eb-88b2-e50d2c5cfb79",
"metadata": {},
"outputs": [],
"source": [
"data_paths = [\n",
" get_data_path(year, tournament) for year, tournament in product(YEARS, TOURNAMENTS)\n",
" if (year, tournament) not in EXCLUDE\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c3a30b27-3c4e-40c9-b0c6-cdd581b421b2",
"metadata": {},
"outputs": [],
"source": [
"DTYPES = {\n",
" \"match_id\": str,\n",
" \"SetNo\": int,\n",
" \"GameNo\": int,\n",
" \"P1Score\": str,\n",
" \"P2Score\": str,\n",
" \"PointServer\": int,\n",
" \"PointWinner\": int,\n",
" \"GameWinner\": int\n",
"}\n",
"\n",
"INDEX = [\n",
" \"match_id\",\n",
" \"set_no\",\n",
" \"game_no\"\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "22e9a723-da79-44d9-b1d0-f6876bc58d52",
"metadata": {},
"outputs": [],
"source": [
"def to_snake_case(camel_case):\n",
" chars = []\n",
" \n",
" if camel_case:\n",
" fst, *rest = camel_case\n",
" chars.append(fst.lower())\n",
"\n",
" for char in rest:\n",
" if char.isupper():\n",
" chars.append(\"_\")\n",
"\n",
" chars.append(char.lower())\n",
"\n",
" return \"\".join(chars)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "6a644637-e5b3-42b0-8b0d-085f23b80992",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='47' class='' max='47' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" 100.00% [47/47 00:27&lt;00:00]\n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"point_dfs = [pd.read_csv(path, usecols=DTYPES.keys()) for path in progress_bar(data_paths)]\n",
"\n",
"point_df = (\n",
" pd.concat(point_dfs, ignore_index=True)\n",
" .dropna()\n",
" .astype(DTYPES)\n",
" .rename(columns=to_snake_case)\n",
" .set_index(INDEX)\n",
" .query(\"point_winner != 0\")\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "bcd0689d-79b3-41df-b3a8-69968996f2b9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>game_winner</th>\n",
" <th>point_winner</th>\n",
" <th>point_server</th>\n",
" <th>p1_score</th>\n",
" <th>p2_score</th>\n",
" </tr>\n",
" <tr>\n",
" <th>match_id</th>\n",
" <th>set_no</th>\n",
" <th>game_no</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">2011-ausopen-1101</th>\n",
" <th rowspan=\"5\" valign=\"top\">1</th>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>15</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>30</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>40</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>15</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">2023-wimbledon-2701</th>\n",
" <th rowspan=\"5\" valign=\"top\">2</th>\n",
" <th>10</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>15</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>30</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>40</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>40</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1449025 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" game_winner point_winner point_server \\\n",
"match_id set_no game_no \n",
"2011-ausopen-1101 1 1 0 1 2 \n",
" 1 0 1 2 \n",
" 1 0 1 2 \n",
" 1 1 1 2 \n",
" 2 0 1 1 \n",
"... ... ... ... \n",
"2023-wimbledon-2701 2 10 0 1 1 \n",
" 10 0 1 1 \n",
" 10 0 1 1 \n",
" 10 0 2 1 \n",
" 10 1 1 1 \n",
"\n",
" p1_score p2_score \n",
"match_id set_no game_no \n",
"2011-ausopen-1101 1 1 15 0 \n",
" 1 30 0 \n",
" 1 40 0 \n",
" 1 0 0 \n",
" 2 15 0 \n",
"... ... ... \n",
"2023-wimbledon-2701 2 10 15 0 \n",
" 10 30 0 \n",
" 10 40 0 \n",
" 10 40 15 \n",
" 10 0 0 \n",
"\n",
"[1449025 rows x 5 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"point_df"
]
},
{
"cell_type": "markdown",
"id": "ed431ed2-e029-4c46-b53b-80a88b36c299",
"metadata": {},
"source": [
"There is information on more than 1.4 million points, which should give us plenty of data to compare to our theoretical calculations.\n",
"\n",
"The original data set contains many more columns than we have loaded here, which are only those relevant for the task at hand. These columns are:\n",
"\n",
"* **`match_id`** - a unique identifier for the match\n",
"* **`set_no`** - the number of the set within the match\n",
"* **`game_no`** - the number of the game within the match\n",
"* **`game_winner`** - if this point decided the current game, which player won the game, otherwise zero\n",
"* **`point_winner`** - the player that won the point\n",
"* **`p1_score`** - player one's score at the beginning of the point\n",
"* **`p2_score`** - player two's score at the beginning of the point"
]
},
{
"cell_type": "markdown",
"id": "8e9e53f8-827b-495b-a91e-948c8a35bb4f",
"metadata": {},
"source": [
"## Analysis"
]
},
{
"cell_type": "markdown",
"id": "258b50d9-db30-4331-9400-6166e893bf6d",
"metadata": {},
"source": [
"### Probability server wins the point\n",
"\n",
"First, we use this data to calculate the probability a player wins a point that they serve."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "79528f16-71d8-4918-bd6b-681901f86242",
"metadata": {},
"outputs": [],
"source": [
"point_df[\"server_won_point\"] = point_df[\"point_server\"] == point_df[\"point_winner\"]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "9c01aae7-f918-4fc9-a100-3adb0fa570e0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"server_won_point\n",
"True 0.614043\n",
"False 0.385957\n",
"Name: proportion, dtype: float64"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"point_df[\"server_won_point\"].value_counts(normalize=True)"
]
},
{
"cell_type": "markdown",
"id": "65fc70d0-f0e9-4017-b1bc-86391a442b88",
"metadata": {},
"source": [
"As expected, we see that serving is a significant advantage, with players winning more than 60% of points that they serve.\n",
"\n",
"A quick pivot table gives the probability that each player wins a point that they serve for each match in the data."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "80fa325c-4518-497d-b784-7523e286022c",
"metadata": {},
"outputs": [],
"source": [
"server_point_prob = point_df.pivot_table(\n",
" index=\"match_id\",\n",
" values=\"server_won_point\",\n",
" columns=\"point_server\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "379c09fb-2ba3-427c-b9be-5a3528bafb23",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>point_server</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" </tr>\n",
" <tr>\n",
" <th>match_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2011-ausopen-1101</th>\n",
" <td>0.714286</td>\n",
" <td>0.076923</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2011-ausopen-1103</th>\n",
" <td>0.717391</td>\n",
" <td>0.597826</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2011-ausopen-1105</th>\n",
" <td>0.716981</td>\n",
" <td>0.652174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2011-ausopen-1108</th>\n",
" <td>0.520000</td>\n",
" <td>0.746269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2011-ausopen-1112</th>\n",
" <td>0.553571</td>\n",
" <td>0.651376</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-wimbledon-2503</th>\n",
" <td>0.653465</td>\n",
" <td>0.580247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-wimbledon-2504</th>\n",
" <td>0.514706</td>\n",
" <td>0.650794</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-wimbledon-2601</th>\n",
" <td>0.450000</td>\n",
" <td>0.596774</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-wimbledon-2602</th>\n",
" <td>0.702128</td>\n",
" <td>0.633333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-wimbledon-2701</th>\n",
" <td>0.553846</td>\n",
" <td>0.466667</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7981 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
"point_server 1 2\n",
"match_id \n",
"2011-ausopen-1101 0.714286 0.076923\n",
"2011-ausopen-1103 0.717391 0.597826\n",
"2011-ausopen-1105 0.716981 0.652174\n",
"2011-ausopen-1108 0.520000 0.746269\n",
"2011-ausopen-1112 0.553571 0.651376\n",
"... ... ...\n",
"2023-wimbledon-2503 0.653465 0.580247\n",
"2023-wimbledon-2504 0.514706 0.650794\n",
"2023-wimbledon-2601 0.450000 0.596774\n",
"2023-wimbledon-2602 0.702128 0.633333\n",
"2023-wimbledon-2701 0.553846 0.466667\n",
"\n",
"[7981 rows x 2 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"server_point_prob"
]
},
{
"cell_type": "markdown",
"id": "f3cce3f6-3aef-431a-b705-90949b9324b9",
"metadata": {},
"source": [
"Note that since we have grouped by `match_id`, these probabilities are implicitly conditioned on both the server and their opponent, which is appropriate, as it implicitly accounts for the skill difference between the two players in question."
]
},
{
"cell_type": "markdown",
"id": "55d4d5d3-614c-44c8-95da-04459c48c568",
"metadata": {},
"source": [
"### Identifying games that reach deuce\n",
"\n",
"With these probabilities in hand, we turn to identifying games with deuces and their winners. Recall that a deuce is reached when the score in a game is 40-40. We first identify deuce points and reduce to games that reach deuce."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "72e6fdd1-c4fe-40ec-9565-a836870e9b94",
"metadata": {},
"outputs": [],
"source": [
"point_df[\"is_deuce\"] = (point_df[\"p1_score\"] == \"40\") & (point_df[\"p2_score\"] == \"40\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "f320b0ac-1bfc-4f94-9c0b-6edf4738d8d4",
"metadata": {},
"outputs": [],
"source": [
"deuce_df = (\n",
" point_df.groupby(INDEX)\n",
" [[\"game_winner\", \"point_server\", \"is_deuce\"]]\n",
" .max()\n",
" .rename(columns={\n",
" \"game_winner\": \"winner\",\n",
" \"point_server\": \"server\",\n",
" \"is_deuce\": \"has_deuce\"\n",
" })\n",
" .query(\"has_deuce\")\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "04afea80-155c-4db9-b735-2710bfb33eae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>winner</th>\n",
" <th>server</th>\n",
" <th>has_deuce</th>\n",
" </tr>\n",
" <tr>\n",
" <th>match_id</th>\n",
" <th>set_no</th>\n",
" <th>game_no</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2011-ausopen-1101</th>\n",
" <th>2</th>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">2011-ausopen-1103</th>\n",
" <th>1</th>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">3</th>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">2023-wimbledon-2602</th>\n",
" <th rowspan=\"2\" valign=\"top\">3</th>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"3\" valign=\"top\">2023-wimbledon-2701</th>\n",
" <th rowspan=\"2\" valign=\"top\">1</th>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>55107 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" winner server has_deuce\n",
"match_id set_no game_no \n",
"2011-ausopen-1101 2 2 1 1 True\n",
"2011-ausopen-1103 1 8 2 2 True\n",
" 2 3 1 2 True\n",
" 3 9 2 2 True\n",
" 10 1 1 True\n",
"... ... ... ...\n",
"2023-wimbledon-2602 3 6 1 2 True\n",
" 8 2 2 True\n",
"2023-wimbledon-2701 1 3 1 2 True\n",
" 4 1 1 True\n",
" 2 2 2 1 True\n",
"\n",
"[55107 rows x 3 columns]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deuce_df"
]
},
{
"cell_type": "markdown",
"id": "217595c6-11ef-421c-96f2-ee45a360a029",
"metadata": {},
"source": [
"We see that more than 55,000 games reach deuce, providing plenty of data to compare to the theoritcal results."
]
},
{
"cell_type": "markdown",
"id": "622b5079-95d9-4092-919f-0b83928304df",
"metadata": {},
"source": [
"### Comparing theory and reality\n",
"\n",
"The final step to (in)validating the theoretical result is to join the deuce data to the server point probabilities to produce the probability that the server of each deuce wins a point."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "34b952a7-0031-43f7-9ab0-0a1147e66a3f",
"metadata": {},
"outputs": [],
"source": [
"aligned_server_point_prob, _ = server_point_prob.align(deuce_df, axis=0)\n",
"\n",
"deuce_df[\"server_point_prob\"] = aligned_server_point_prob[1].where(\n",
" deuce_df[\"server\"] == 1,\n",
" aligned_server_point_prob[2]\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "ec13a7b1-ffc8-4837-b345-a96af5dbf030",
"metadata": {},
"outputs": [],
"source": [
"deuce_df[\"server_won\"] = deuce_df[\"server\"] == deuce_df[\"winner\"]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "b6a5cd32-0273-4213-8bb5-8bcc886afbc9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>winner</th>\n",
" <th>server</th>\n",
" <th>has_deuce</th>\n",
" <th>server_point_prob</th>\n",
" <th>server_won</th>\n",
" </tr>\n",
" <tr>\n",
" <th>match_id</th>\n",
" <th>set_no</th>\n",
" <th>game_no</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2011-ausopen-1101</th>\n",
" <th>2</th>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.714286</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">2011-ausopen-1103</th>\n",
" <th>1</th>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.597826</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.597826</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">3</th>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.597826</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.717391</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">2023-wimbledon-2602</th>\n",
" <th rowspan=\"2\" valign=\"top\">3</th>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.633333</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.633333</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"3\" valign=\"top\">2023-wimbledon-2701</th>\n",
" <th rowspan=\"2\" valign=\"top\">1</th>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>0.466667</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.553846</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>0.553846</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>55107 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" winner server has_deuce \\\n",
"match_id set_no game_no \n",
"2011-ausopen-1101 2 2 1 1 True \n",
"2011-ausopen-1103 1 8 2 2 True \n",
" 2 3 1 2 True \n",
" 3 9 2 2 True \n",
" 10 1 1 True \n",
"... ... ... ... \n",
"2023-wimbledon-2602 3 6 1 2 True \n",
" 8 2 2 True \n",
"2023-wimbledon-2701 1 3 1 2 True \n",
" 4 1 1 True \n",
" 2 2 2 1 True \n",
"\n",
" server_point_prob server_won \n",
"match_id set_no game_no \n",
"2011-ausopen-1101 2 2 0.714286 True \n",
"2011-ausopen-1103 1 8 0.597826 True \n",
" 2 3 0.597826 False \n",
" 3 9 0.597826 True \n",
" 10 0.717391 True \n",
"... ... ... \n",
"2023-wimbledon-2602 3 6 0.633333 False \n",
" 8 0.633333 True \n",
"2023-wimbledon-2701 1 3 0.466667 False \n",
" 4 0.553846 True \n",
" 2 2 0.553846 False \n",
"\n",
"[55107 rows x 5 columns]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deuce_df"
]
},
{
"cell_type": "markdown",
"id": "0638be0a-82d0-44bf-a64e-f4596c23d60c",
"metadata": {},
"source": [
"To compare this data to the theoretical result, we group the deuces into fifty bins based on the probability that the server wins a point, each with an equal number of samples, and calculate the empirical rate at which the server won the deuce game within each bin."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "fb10a19a-c290-49fa-852b-4b0a323d8ae4",
"metadata": {},
"outputs": [],
"source": [
"N_BIN = 50"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "2ad66271-93e2-4c5d-a639-76cdb4f4165b",
"metadata": {},
"outputs": [],
"source": [
"deuce_df[\"binned_server_point_prob\"] = (\n",
" pd.qcut(deuce_df[\"server_point_prob\"], N_BIN)\n",
" .apply(lambda interval: interval.mid)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "aedd5b14-18e7-4de9-8e6f-e06ccf7d972d",
"metadata": {},
"outputs": [],
"source": [
"test_df = (\n",
" deuce_df.groupby(\"binned_server_point_prob\")\n",
" [\"server_won\"]\n",
" .mean()\n",
" .reset_index()\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "86b9b8c3-18a5-42b1-90d6-fb1fff51ae83",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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xMREz/cDBgzg888/Z8mSJRw4cICZM2eye/du+vfvf875N23axL59+7j77rsBqF69OgArV67kl19+4fDhw1x11VVFes0i4h1PPTWF//73WQYPLtj4WREpvS55OaTCiIiIOG+l/uTk5HMGxheW0Whk4cKFzJkzh1GjRpGSkkKDBg1YsmSJZxbl66+/zrRp0+jRowdly5blsccey5UwTps2jY0bN7JmzRoArrvuOqZPn86CBQuYO3cutWrVYuHChXmWz5g5cyajR4/2XJe/vz/PPvsskydPxuFwMGnSpPM+3hSRksVsNtO1a3fM5uI1JkVEii+D233ln55OnDiR33//nWXLluUqDxEbG8sDDzxAw4YNef755690WCVaUlK6xjH4ALPZSEREkO5nCZSQEE94eARpWS6S0myUDQ+gZrUo3Usfofem74iMDCp2JUoKnIy9+uqrdO/evVA9OSdOnKBXr14kJyfTrFkzypQpw8mTJ9m6dSthYWG89957VKpU6ZLbL430AeEb9IFfcj009CGSjFWpVv86zBY/rBYjLRuW5+aWVbAUsw9+KTi9N31HcUzGChzNa6+9RqdOnRg0aBBffPHFOeUd8qNs2bKsWLGCfv36kZmZyc6dO8nMzKRfv36sWLFCiZiIlChbt27h78wo/KLqYbWYCQ2yYDQY+OWP46z8+aC3wxORYq7APWNZWVl88803fPrpp/z222+EhIRw66230qNHDxo3bpyvNp566il69+7tWVZJCk9/rfkG/fVdMj00bDipodcQGhpKzeo5MygNBgOZ2U4cTiejejfRAuElnN6bvsMnesb8/f3p1q0bixcvZs2aNQwcOJBt27bRt29funbtypIlS3LNOszLqlWrSE9XEUQRKfl+/30zO/ccwGi2UqFc7sLNAVYz2facMWQiIudTqNSwfPnyDBgwgGHDhtGiRQv27dvHzJkz6dChA5MmTSItLS3P1zVr1uycml8iIiXRwoXzsWcmExwYgNtgyrUvM9uB1WIkItjPS9GJSElwyaUtNm7cyKeffsrXX39NRkYG11xzDc8//zzt2rXjp59+YsqUKRw/fpxFixad89q6deuyePFivvrqK+rVq3fOkkMGg4Hp06dfamgiIlfEli2b2LhxPWazhVaNqrD7WAa4wc9qwmZ3kWV30qJuWT2iFJELKnAyNnfuXFavXk1sbCwVKlTggQceoGfPnlSsWNFzzK233sqff/7Jm2++mWcb3377LdHR0djtdnbs2HHOfkNxXFJdRORffvttHZBTbf+em65i1bpD7DyUSEq6HavVyHVNKnJzS1XhF5ELK/AA/saNG3PDDTfQq1cvrr322vMmTt999x1///23pyL9p59+Srt27YiIiCh81HIODSr1DRokXPJs376NcuXKU65cTs3ExJQs1RnzQXpv+o7iOIC/wMnYrl27qFWrVp5V8m02G//73/88C2CfrVmzZixevJjmzZvTuXNnXn75ZerVq3fpkUsu+oDwDfrA9x26l75F99N3FMdkrMCPKXv16sX777+fZxmL7du3M2jQIP74449z9lmtVj799FMcDgd///0327ZtIzU19bznadmyZUFDExG5Ig4dOkhwcDBly0Z7OxQR8QH5Ssaee+45kpOTAXC73SxYsCDPx427d+8mJCQkzzZ69+7N4sWL+eCDDzAYDEyePDnP49xuNwaDgd27d+fzEkRErhy3283UqU+zc+cOpk2byQ033OTtkESkhMtXMlajRg1eeeUVIGdw/c6dO895TGkymQgJCWHixIl5tjF+/Hi6d+9OUlIS999/P08//TS1atUqZPgiIlfWpk0b2LJlMxaLhauuUuFqESm8fCVjffr0oU+fPgB06tSJl19+mfr16xf4ZLVr1wbgkUceoXPnzoVa31JE5Epzu90sXDgfgJ49+3gG7YuIFEaBx4ytWbOm0Cd95JFHCt2GiMiVtnHjen7/fTNWq5WBA4d4OxwR8RH5Ssbuv/9+nnnmGWrWrMn9999/wWMNBgPLli0rkuBERIoLt9vNK6+8BECvXnd6evbPlLKICPZTcVcRuST5SsbOrn5xsUoYBayUISJSImzY8Bvbtv2O1WplwIDBZNocniKvdrsLi8VIo5hIurWNIcDvkhc3EZFSKF+fGMuXL8/zaxGR0uKvv47g5+dHz553Eh1djvfX7GPTngSC/M2EBlmw2Z1s2pMAQN9Otb0crYiUJMXizzebzYbVatUySCJSbN1559107NgZs9lCYkoWOw8lEuRvJsjfAoDZZAQ37DyUSJeULKIjAy/SoohIjnwlY/Xq1ct3omQwGNi1a9dFjzt48CDz5s3j119/JS0tjQ8//JCPPvqIGjVq0K9fv3ydS0TkSjpT5PXA8dPY7S5Cgyy59vtZTaSk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Vk4nncJo8aNMZChWqxUAW7YTi8VIRLCflyMUEclR4IemH3/8Mc8//zy33347b775Jl988QXLli3j9ttvZ/78+axYseKibWzcuPG8sy5vvPFG1q9fD0CzZs04evRoQUMUEWHb5p85cfh3LH6BhEVE43C6SM+0k25z0CgmUr1iIlJsFLhnbOnSpdx9990888wznm01atSgdevW+Pv78+abb9KjR48LthEeHs6ePXvyXPJoz549nsedGRkZBAQEFDREERE++OA9Yv+3hcZNmmI05TyatFhyBu93axvj7fBERDwKnIwdOXKECRMm5Lmvc+fOfPzxxxdto2vXrsybNw+z2czNN99MZGQkp06d4ttvv2X+/PncddddnD59mmXLltGkSZOChigiwosvLuCjj97njjtuxe62kJRmIyLYTz1iIlLsFDgZK1eu3HlLUxw7dixfg/hHjRrFqVOnePbZZ3n22Wc9241GI7169WL06NF8/fXX7Nq1i2XLlhU0RBER/P39ue++/p7vlYSJSHFV4GSsU6dOvPjii9StW5fGjRt7tv/xxx+89NJL+apJZjabmTFjBsOGDWP9+vUkJSVRrlw5mjdvTpUqVYCcBcN//vlnz6BbEZH8OHBgP9Wrx2AymbwdiohIvuSr6OvZ0tLSuPvuu9m/fz+VKlWiTJkynDx5kr///puaNWvy1ltvER4efpnClfNRIULfoMKShZOamkrXrl2IiirLSy8t9JSz8AbdS9+i++k7SmzR17MFBwfz0Ucf8fHHH7Np0yZOnz7NVVddxcCBA+nZsyf+/noUICLesXTp6yQnJxMREUl0dDlvhyMiki8FTsYefPBBBg0axD333KP6XyJSbMTHx/P22zljTEeOHIvZrLUnRaRkKHA/3e+//37RpYxERK60V1+dT1ZWFk2aNKNDh/yvpysi4m0FTsauv/56Vq1ahd1uvxzxiIgU2MGDB1i5MqeszqhR4/UHo4iUKAXux/fz82PVqlV8+eWX1KxZk8DAwFz7DQaDylGIyBX10ktzcblcdOjQmWbNmns7HBGRAilwMhYXF0ezZs083/97MmYBJ2eKiBRKVlYWp08nYzQaGTlyjLfDEREpsAKXtpDiSdOtfYOmz18at9vN3r1/UrduPW+H4qF76Vt0P31HiS9tsX37dv7++2+qVatGgwYNLldMIiIFYjAYilUiJiJS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",
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(6, 6))\n",
"ax.set_aspect(\"equal\");\n",
"\n",
"ax.plot(p_grid, theory_win_prob(p_grid),\n",
" c=\"k\", ls=\"--\", label=\"Theory\");\n",
"\n",
"test_df.plot(\n",
" kind=\"scatter\", x=\"binned_server_point_prob\", y=\"server_won\",\n",
" zorder=5, alpha=0.75, label=\"Tournament data\",\n",
" ax=ax\n",
");\n",
"\n",
"ax.set_xlim(0, 1);\n",
"ax.xaxis.set_major_formatter(pct_formatter);\n",
"ax.xaxis.set_major_locator(ticker.MultipleLocator(0.25));\n",
"ax.set_xlabel(\"Probability server wins a point\");\n",
"\n",
"ax.set_ylim(0, 1);\n",
"ax.yaxis.set_major_formatter(pct_formatter);\n",
"ax.yaxis.set_major_locator(ticker.MultipleLocator(0.25));\n",
"ax.set_ylabel(\"Probability server wins\\ngame from deuce\");\n",
"\n",
"ax.legend();"
]
},
{
"cell_type": "markdown",
"id": "70ba191d-0c1f-4c25-890f-bc5bc6f5805c",
"metadata": {},
"source": [
"Except for the very first bin, we see quite remarkable agreement between the empirical tournament data and the theoretical result from the prior post. I always enjoy when simple mathematical models map so cleanly to reality!\n",
"\n",
"Note that this analysis could be made more rigorous by only using points that occur in the match prior to the deuce in question to calculate the probability that the server wins a point they serve. For the purposes of this post, I am satisfied using all points in a match to calculate this probability, even though it is leaking some information from the future into the analysis of each deuce.\n",
"\n",
"This post is available as a Jupyter notebook [here](https://nbviewer.org/gist/AustinRochford/8998cd31f43d8adcf5bd743aaa6c10f1)."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "20f8cf90-534f-4c56-9ec8-55cc787338cd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Last updated: Tue Jul 30 2024\n",
"\n",
"Python implementation: CPython\n",
"Python version : 3.10.10\n",
"IPython version : 8.11.0\n",
"\n",
"pandas : 2.0.3\n",
"matplotlib: 3.7.1\n",
"numpy : 1.24.2\n",
"seaborn : 0.12.2\n",
"\n"
]
}
],
"source": [
"%load_ext watermark\n",
"%watermark -n -u -v -iv"
]
}
],
"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.10.10"
},
"nikola": {
"date": "2024-07-30",
"slug": "tennis2",
"title": "A Quantitative Analysis of Deuces in Tennis"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment