{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis of results of the 2015 FINA World Swimming Championships\n", "> In this chapter, you will practice your EDA, parameter estimation, and hypothesis testing skills on the results of the 2015 FINA World Swimming Championships. This is the Summary of lecture \"Case Studies in Statistical Thinking\", via datacamp.\n", "\n", "- toc: true \n", "- badges: true\n", "- comments: true\n", "- author: Chanseok Kang\n", "- categories: [Python, Datacamp, Statistics]\n", "- image: images/swim_slowdown.png" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import dc_stat_think as dcst\n", "\n", "plt.rcParams['figure.figsize'] = (10, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction to swimming data\n", "- Strokes at the World Championships\n", " - Freestyle\n", " - Breaststroke\n", " - Butterfly\n", " - Backstroke\n", "- Events at the World Championships\n", " - Defined by gender, distance, stroke\n", "- Rounds of events\n", " - Heats: First round\n", " - Semifinals: Penultimate round in some events\n", " - Finals: The final round; the winner is champion\n", "- Data source\n", " - Data are freely available from [OMEGA](http://www.omegatiming.com)\n", "- Domain-specific knowledge\n", " - Imperative\n", " - An absolute pleasure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Graphical EDA of men's 200 free heats\n", "In the heats, all contestants swim, the very fast and the very slow. To explore how the swim times are distributed, plot an ECDF of the men's 200 freestyle.\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
athleteidlastnamefirstnamebirthdategendernamecodeeventidheatlane...swimtimesplitcumswimtimesplitdistancedaytimerounddistancerelaycountstrokesplitswimtime
0100784BORSHINOEL1996-02-13FAlbaniaALB114...63.65129.6350930.0PRE1001FLY29.63
1100784BORSHINOEL1996-02-13FAlbaniaALB114...63.65263.65100930.0PRE1001FLY34.02
2100784BORSHINOEL1996-02-13FAlbaniaALB2018...140.28131.33501014.0PRE2001FLY31.33
3100784BORSHINOEL1996-02-13FAlbaniaALB2018...140.28266.811001014.0PRE2001FLY35.48
4100784BORSHINOEL1996-02-13FAlbaniaALB2018...140.283103.291501014.0PRE2001FLY36.48
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " athleteid lastname firstname birthdate gender name code eventid \\\n", "0 100784 BORSHI NOEL 1996-02-13 F Albania ALB 1 \n", "1 100784 BORSHI NOEL 1996-02-13 F Albania ALB 1 \n", "2 100784 BORSHI NOEL 1996-02-13 F Albania ALB 20 \n", "3 100784 BORSHI NOEL 1996-02-13 F Albania ALB 20 \n", "4 100784 BORSHI NOEL 1996-02-13 F Albania ALB 20 \n", "\n", " heat lane ... swimtime split cumswimtime splitdistance daytime \\\n", "0 1 4 ... 63.65 1 29.63 50 930.0 \n", "1 1 4 ... 63.65 2 63.65 100 930.0 \n", "2 1 8 ... 140.28 1 31.33 50 1014.0 \n", "3 1 8 ... 140.28 2 66.81 100 1014.0 \n", "4 1 8 ... 140.28 3 103.29 150 1014.0 \n", "\n", " round distance relaycount stroke splitswimtime \n", "0 PRE 100 1 FLY 29.63 \n", "1 PRE 100 1 FLY 34.02 \n", "2 PRE 200 1 FLY 31.33 \n", "3 PRE 200 1 FLY 35.48 \n", "4 PRE 200 1 FLY 36.48 \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "swim = pd.read_csv('./dataset/2015_FINA.csv', skiprows=4)\n", "swim.head()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "mens_200_free_heats_df = swim[(swim['gender'] == 'M') & \n", " (swim['distance'] == 200) & \n", " (swim['stroke'] == 'FREE') &\n", " (swim['round'] == 'PRE') &\n", " (swim['split'] == 4)]\n", "mens_200_free_heats = mens_200_free_heats_df['cumswimtime'].unique()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Generate x and y values for ECDF: x, y\n", "x, y = dcst.ecdf(mens_200_free_heats)\n", "\n", "# Plot the ECDF as dots\n", "_ = plt.plot(x, y, marker='.', linestyle='none')\n", "\n", "# Label axes and show plot\n", "_ = plt.xlabel('time (s)')\n", "_ = plt.ylabel('ECDF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that fast swimmers are below 115 seconds, with a smattering of slow swimmers past that, including one very slow swimmer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 200 m free time with confidence interval\n", "Now, you will practice parameter estimation and computation of confidence intervals by computing the mean and median swim time for the men's 200 freestyle heats. The median is useful because it is immune to heavy tails in the distribution of swim times, such as the slow swimmers in the heats." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "mean time: 111.63 sec.\n", "95% conf int of mean: [110.49, 112.92] sec.\n", "\n", "median time: 110.04 sec.\n", "95% conf int of median: [108.96, 111.01] sec.\n", "\n" ] } ], "source": [ "# Compute mean and median swim times\n", "mean_time = np.mean(mens_200_free_heats)\n", "median_time = np.median(mens_200_free_heats)\n", "\n", "# Draw 10,000 bootstrap replicates of the mean and median\n", "bs_reps_mean = dcst.draw_bs_reps(mens_200_free_heats, np.mean, size=10000)\n", "bs_reps_median = dcst.draw_bs_reps(mens_200_free_heats, np.median, size=10000)\n", "\n", "# Compute the 95% confidence intervals\n", "conf_int_mean = np.percentile(bs_reps_mean, [2.5, 97.5])\n", "conf_int_median = np.percentile(bs_reps_median, [2.5, 97.5])\n", "\n", "# Print the result to the screen\n", "print(\"\"\"\n", "mean time: {0:.2f} sec.\n", "95% conf int of mean: [{1:.2f}, {2:.2f}] sec.\n", "\n", "median time: {3:.2f} sec.\n", "95% conf int of median: [{4:.2f}, {5:.2f}] sec.\n", "\"\"\".format(mean_time, *conf_int_mean, median_time, *conf_int_median))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Do swimmers go faster in the finals?\n", "- Question : Do swimmers swim faster in the finals than in other rounds?\n", " - Individual swimmers, or the whole field?\n", " - Faster than heats? Faster than semifinals?\n", " - For what strokes? For what distances?\n", " \n", "- Question: Do individual female swimmers swim faster in the finals compared to the semifinals?\n", " - Events: 50, 100, 200 meter freestyle, breaststroke, butterfly, backstroke\n", " \n", "- Fractional improvement\n", "\n", "$$ f = \\frac{\\text{semifinals time} - \\text{finals time}}{\\text{semifinals time}} $$\n", "\n", "- Sharpened questions\n", " - What is the frational improvement of individual female swimmers from the semifinals to the finals?\n", " - Is the observed fractional improvement commensurate with there being no difference in performance in the semifinals and finals?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### EDA: finals versus semifinals\n", "First, you will get an understanding of how athletes' performance changes from the semifinals to the finals by computing the fractional improvement from the semifinals to finals and plotting an ECDF of all of these values.\n", "\n", "The arrays `final_times` and `semi_times` contain the swim times of the respective rounds. The arrays are aligned such that `final_times[i]` and `semi_times[i]` are for the same swimmer/event. If you are interested in the strokes/events, you can check out the data frame df in your namespace, which has more detailed information, but is not used in the analysis." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
athleteidlastnamefirstnamebirthdategendernamecodeeventidheatlane...swimtimesplitcumswimtimesplitdistancedaytimerounddistancerelaycountstrokesplitswimtime
303100537CAMPBELLBRONTE1994-05-14FAustraliaAUS22325...53.00253.001001732.0SEM1001FREE27.44
305100537CAMPBELLBRONTE1994-05-14FAustraliaAUS12313...52.52252.521001732.0FIN1001FREE27.37
307100537CAMPBELLBRONTE1994-05-14FAustraliaAUS23426...24.32124.32501828.0SEM501FREE24.32
308100537CAMPBELLBRONTE1994-05-14FAustraliaAUS13416...24.12124.12501805.0FIN501FREE24.12
315100631CAMPBELLCATE1992-05-20FAustraliaAUS22314...52.84252.841001732.0SEM1001FREE27.49
\n", "

5 rows × 22 columns

\n", "
" ], "text/plain": [ " athleteid lastname firstname birthdate gender name code \\\n", "303 100537 CAMPBELL BRONTE 1994-05-14 F Australia AUS \n", "305 100537 CAMPBELL BRONTE 1994-05-14 F Australia AUS \n", "307 100537 CAMPBELL BRONTE 1994-05-14 F Australia AUS \n", "308 100537 CAMPBELL BRONTE 1994-05-14 F Australia AUS \n", "315 100631 CAMPBELL CATE 1992-05-20 F Australia AUS \n", "\n", " eventid heat lane ... swimtime split cumswimtime splitdistance \\\n", "303 223 2 5 ... 53.00 2 53.00 100 \n", "305 123 1 3 ... 52.52 2 52.52 100 \n", "307 234 2 6 ... 24.32 1 24.32 50 \n", "308 134 1 6 ... 24.12 1 24.12 50 \n", "315 223 1 4 ... 52.84 2 52.84 100 \n", "\n", " daytime round distance relaycount stroke splitswimtime \n", "303 1732.0 SEM 100 1 FREE 27.44 \n", "305 1732.0 FIN 100 1 FREE 27.37 \n", "307 1828.0 SEM 50 1 FREE 24.32 \n", "308 1805.0 FIN 50 1 FREE 24.12 \n", "315 1732.0 SEM 100 1 FREE 27.49 \n", "\n", "[5 rows x 22 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "women_swim_df = swim[(swim['gender'] == \"F\") & \n", " (swim['stroke'] != \"MEDLEY\") & \n", " (swim['distance'].isin([100, 50, 200])) & \n", " (swim['round'].isin(['SEM', 'FIN'])) & \n", " (swim['splitdistance'] == swim['distance'])]\n", "women_swim_df.head(n = 5)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "women_swim_df = women_swim_df[['athleteid', 'stroke', 'distance', 'lastname', 'cumswimtime', 'round']]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "women_swim_df_fin = women_swim_df.loc[(women_swim_df['round'] == 'FIN')]\n", "women_swim_df_sem = women_swim_df.loc[(women_swim_df['round'] == 'SEM')]\n", "\n", "women_swim_df_w = women_swim_df_fin.merge(women_swim_df_sem, how = 'left', on = ['athleteid', 'stroke', 'distance', 'lastname'])\n", "\n", "df = women_swim_df_w.rename(index = str, columns = {\"cumswimtime_x\" : \"final_swimtime\", \"cumswimtime_y\" : \"semi_swimtime\"})\n", "df = df[['athleteid', 'stroke', 'distance', 'lastname', 'final_swimtime', 'semi_swimtime']]\n", "\n", "final_times = df['final_swimtime'].values\n", "semi_times = df['semi_swimtime'].values" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
athleteidstrokedistancelastnamefinal_swimtimesemi_swimtime
0100537FREE100CAMPBELL52.5253.00
1100537FREE50CAMPBELL24.1224.32
2100631FREE100CAMPBELL52.8252.84
3100631FREE50CAMPBELL24.3624.22
4100650FLY100MCKEON57.6757.59
.....................
91105595BACK200FRANKLIN126.34127.79
92105607BREAST50HARDY30.2030.25
93105640FLY200MCLAUGHLIN126.95127.52
94105676BACK100BAKER59.9959.63
95105686FLY200ADAMS126.40127.57
\n", "

96 rows × 6 columns

\n", "
" ], "text/plain": [ " athleteid stroke distance lastname final_swimtime semi_swimtime\n", "0 100537 FREE 100 CAMPBELL 52.52 53.00\n", "1 100537 FREE 50 CAMPBELL 24.12 24.32\n", "2 100631 FREE 100 CAMPBELL 52.82 52.84\n", "3 100631 FREE 50 CAMPBELL 24.36 24.22\n", "4 100650 FLY 100 MCKEON 57.67 57.59\n", ".. ... ... ... ... ... ...\n", "91 105595 BACK 200 FRANKLIN 126.34 127.79\n", "92 105607 BREAST 50 HARDY 30.20 30.25\n", "93 105640 FLY 200 MCLAUGHLIN 126.95 127.52\n", "94 105676 BACK 100 BAKER 59.99 59.63\n", "95 105686 FLY 200 ADAMS 126.40 127.57\n", "\n", "[96 rows x 6 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Compute fractional difference in time between finals and semis\n", "f = (df['semi_swimtime'] - df['final_swimtime']) / df['semi_swimtime']\n", "\n", "# Generate x and y values for the ECDF: x, y\n", "x, y = dcst.ecdf(f)\n", "\n", "# Make a plot of the ECDF\n", "_ = plt.plot(x, y, marker='.', linestyle='none')\n", "\n", "# Label axes\n", "_ = plt.xlabel('f')\n", "_ = plt.ylabel('ECDF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The median of the ECDF is juuuust above zero. But at first glance, it does not look like there is much of any difference between semifinals and finals. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameter estimates of difference between finals and semifinals\n", "Compute the mean fractional improvement from the semifinals to finals, along with a 95% confidence interval of the mean." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "mean frac. diff.: 0.00040\n", "95% conf int of mean frac. diff.: [-0.00093, 0.00173]\n" ] } ], "source": [ "# Mean fractional time difference: f_mean\n", "f_mean = np.mean(f)\n", "\n", "# Get bootstrap reps of means: bs_reps\n", "bs_reps = dcst.draw_bs_reps(f, np.mean, size=10000)\n", "\n", "# Compute confidence intervals: conf_int\n", "conf_int = np.percentile(bs_reps, [2.5, 97.5])\n", "\n", "# Report\n", "print(\"\"\"\n", "mean frac. diff.: {0:.5f}\n", "95% conf int of mean frac. diff.: [{1:.5f}, {2:.5f}]\"\"\".format(f_mean, *conf_int))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like the mean finals time is juuuust faster than the mean semifinal time, and they very well may be the same. We'll test this hypothesis next." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### How to do the permutation test\n", "Based on our EDA and parameter estimates, it is tough to discern improvement from the semifinals to finals. In the next exercise, you will test the hypothesis that there is no difference in performance between the semifinals and finals. A permutation test is fitting for this. We'll get test statistics with following strategy:\n", "- Take an array of semifinal times and an array of final times for each swimmer for each stroke/distance pair.\n", "- Go through each array, and for each index, swap the entry in the respective final and semifinal array with a 50% probability.\n", "- Use the resulting final and semifinal arrays to compute f and then the mean of f.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generating permutation samples\n", "As you worked out in the last exercise, we need to generate a permutation sample by randomly swapping corresponding entries in the `semi_times` and `final_times` array. Write a function with signature `swap_random(a, b)` that returns arrays where random indices have the entries in a and b swapped." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def swap_random(a, b):\n", " \"\"\"Randomly swap entries in two arrays\"\"\"\n", " # Indices to swap\n", " swap_inds = np.random.random(size=len(a)) < 0.5\n", " \n", " # Make copies of arrays a and b for output\n", " a_out = np.copy(a)\n", " b_out = np.copy(b)\n", " \n", " # Swap values\n", " a_out[swap_inds] = b[swap_inds]\n", " b_out[swap_inds] = a[swap_inds]\n", " \n", " return a_out, b_out" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hypothesis test: Do women swim the same way in semis and finals?\n", "Test the hypothesis that performance in the finals and semifinals are identical using the mean of the fractional improvement as your test statistic. The test statistic under the null hypothesis is considered to be at least as extreme as what was observed if it is greater than or equal to `f_mean`." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p = 0.255\n" ] } ], "source": [ "# Set up array of permutation replicates\n", "perm_reps = np.empty(1000)\n", "\n", "for i in range(1000):\n", " # Generate a permutation sample\n", " semi_perm, final_perm = swap_random(semi_times, final_times)\n", " \n", " # Compute f from the permutation sample\n", " f = (semi_perm - final_perm) / semi_perm\n", " \n", " # Compute and store permutation replicate\n", " perm_reps[i] = np.mean(f)\n", " \n", "# Compute and print p-value\n", "print('p =', np.sum(perm_reps >= f_mean) / 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The p-value is large, about 0.28, which suggests that the results of the 2015 World Championships are consistent with there being no difference in performance between the finals and semifinals." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How does the performance of swimmers decline over long events?\n", "- Swimming background\n", " - Split: The time is takes to swim one length of the pool\n", "- Quantifying slowdown\n", " - Use women's 800m freestyle heats\n", " - Omit first and last 100 meters\n", " - Compute mean split time for each split number\n", " - Perform linear regression to get slowdown per split\n", " - Perform hypothesis test: can the slowdown be explained by random variation?\n", "- Hypothesis tests for correlation\n", " - Posit null hypothesis: split time and split number are completely uncorrelated\n", " - Simulate data assuming null hypothesis is true\n", " - Use pearson correlation, $\\rho$ as test statistic\n", " - Compute p-value as the fraction of replicates that have $\\rho$ at least as large as observed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### EDA: Plot all your data\n", "To get a graphical overview of a data set, it is often useful to plot all of your data. In this exercise, plot all of the splits for all female swimmers in the 800 meter heats. The data are available in a Numpy arrays `split_number` and `splits`. The arrays are organized such that `splits[i,j]` is the split time for swimmer i for `split_number[j]`." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "free_800_w = swim.loc[(swim['gender'] == 'F') &\n", " (swim['stroke'] == 'FREE') &\n", " (swim['distance'] == 800) &\n", " (swim['round'].isin(['PRE'])) &\n", " (~swim['split'].isin([1,2,15,16]))]\n", "free_800_w = free_800_w[['split', 'splitswimtime']]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "splits = np.reshape(free_800_w['splitswimtime'].values, (-1, 12))\n", "split_number = free_800_w['split'].unique()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the splits for each swimmer\n", "for splitset in splits:\n", " _ = plt.plot(split_number, splitset, linewidth=1, color='lightgray')\n", " \n", "# Compute the mean split times\n", "mean_splits = np.mean(splits, axis=0)\n", "\n", "# Plot the mean split time\n", "_ = plt.plot(split_number, mean_splits, marker='.', linewidth=3, markersize=12)\n", "\n", "# Label axes\n", "_ = plt.xlabel('split number')\n", "_ = plt.ylabel('split time (s)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that there is wide variability in the splits among the swimmers, and what appears to be a slight trend toward slower split times." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear regression of average split time\n", "We will assume that the swimmers slow down in a linear fashion over the course of the 800 m event. The slowdown per split is then the slope of the mean split time versus split number plot. Perform a linear regression to estimate the slowdown per split and compute a pairs bootstrap 95% confidence interval on the slowdown. Also show a plot of the best fit line.\n", "\n", "> Note: We can compute error bars for the mean split times and use those in the regression analysis, but we will not take those into account here, as that is beyond the scope of this course." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "mean slowdown: 0.065 sec./split\n", "95% conf int of mean slowdown: [0.052, 0.079] sec./split\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Perform regression\n", "slowdown, split_3 = np.polyfit(split_number, mean_splits, 1)\n", "\n", "# Compute pairs bootstrap\n", "bs_reps, _ = dcst.draw_bs_pairs_linreg(split_number, mean_splits, size=10000)\n", "\n", "# Compute confidence interval\n", "conf_int = np.percentile(bs_reps, [2.5, 97.5])\n", "\n", "# Plot the data with regressions line\n", "_ = plt.plot(split_number, mean_splits, marker='.', linestyle='none')\n", "_ = plt.plot(split_number, slowdown * split_number + split_3, '-')\n", "\n", "# Label axes and show plot\n", "_ = plt.xlabel('split number')\n", "_ = plt.ylabel('split time (s)')\n", "\n", "# Print the slowdown per split\n", "print(\"\"\"\n", "mean slowdown: {0:.3f} sec./split\n", "95% conf int of mean slowdown: [{1:.3f}, {2:.3f}] sec./split\"\"\".format(\n", " slowdown, *conf_int))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a small (about 6 hundreths of a second), but discernible, slowdown per split. We'll do a hypothesis test next." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hypothesis test: are they slowing down?\n", "Now we will test the null hypothesis that the swimmer's split time is not at all correlated with the distance they are at in the swim. We will use the Pearson correlation coefficient (computed using dcst.pearson_r()) as the test statistic." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p = 0.0\n" ] } ], "source": [ "# Observed correlation\n", "rho = dcst.pearson_r(split_number, mean_splits)\n", "\n", "# Initialize permutation reps\n", "perm_reps_rho = np.empty(10000)\n", "\n", "# Make permutation reps\n", "for i in range(10000):\n", " # Scramble_split number array\n", " scrambled_split_number = np.random.permutation(split_number)\n", " \n", " # Compute the Pearson correlation coefficient\n", " perm_reps_rho[i] = dcst.pearson_r(scrambled_split_number, mean_splits)\n", " \n", "# Compute and print p-value\n", "p_val = np.sum(perm_reps_rho >= rho) / 10000\n", "print('p =', p_val)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The tiny effect is very real! With 10,000 replicates, we never got a correlation as big as observed under the hypothesis that the swimmers do not change speed as the race progresses. In fact, I did the test with a million replicates, and still never got a single replicate as big as the observed Pearson correlation coefficient." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }