{
"cells": [
{
"cell_type": "markdown",
"id": "d6714b52",
"metadata": {},
"source": [
"# One sample t-test"
]
},
{
"cell_type": "markdown",
"id": "741220b6",
"metadata": {},
"source": [
"### Set up Python libraries\n",
"\n",
"As usual, run the code cell below to import the relevant Python libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "692abf91",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Set-up Python libraries - you need to run this but you don't need to change it\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import scipy.stats as stats\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"sns.set_theme(style='white')\n",
"import statsmodels.api as sm\n",
"import statsmodels.formula.api as smf\n",
"import warnings \n",
"warnings.simplefilter('ignore', category=FutureWarning)"
]
},
{
"cell_type": "markdown",
"id": "54180c0e",
"metadata": {},
"source": [
"## Example\n",
"\n",
"\n",
"\n",
"Here are the heights in cm of eight men on a rowing team"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "cbac3239",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
height
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
180.7
\n",
"
\n",
"
\n",
"
1
\n",
"
185.1
\n",
"
\n",
"
\n",
"
2
\n",
"
198.1
\n",
"
\n",
"
\n",
"
3
\n",
"
175.3
\n",
"
\n",
"
\n",
"
4
\n",
"
181.3
\n",
"
\n",
"
\n",
"
5
\n",
"
179.4
\n",
"
\n",
"
\n",
"
6
\n",
"
166.5
\n",
"
\n",
"
\n",
"
7
\n",
"
176.9
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" height\n",
"0 180.7\n",
"1 185.1\n",
"2 198.1\n",
"3 175.3\n",
"4 181.3\n",
"5 179.4\n",
"6 166.5\n",
"7 176.9"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"heights = pd.read_csv('https://raw.githubusercontent.com/jillxoreilly/StatsCourseBook_2024/main/data/rowersHeights.csv')\n",
"display(heights)"
]
},
{
"cell_type": "markdown",
"id": "9ee2764d",
"metadata": {},
"source": [
"An observer notes that the men seem quite tall, and hypothesises that rowers are generally tall as tall people can row faster.\n",
"\n",
"Use a one-sample t-test to determine whether the mean height of the rowing team is \n",
"significantly greater than the average height of men in the UK (175 cm)."
]
},
{
"cell_type": "markdown",
"id": "bf65d4b7",
"metadata": {},
"source": [
"### Plot the data\n",
"\n",
"First we plot the data to check if they are roughly normally distributed and check for outliers. \n",
"As before, a KDE plot is useful to show the shape of the distribution, and a rug plot to show individual values, \n",
"as the sample size is so small \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b5c48b94",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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6+/pLwN94OjoiK+//hqLFy/GY489BrlcjgceeABz5sxpbGMs5wK4teJsXV1d49TyPzOWczFgwACsXbsWn3zyCTZt2gQHBwcMGzYM//znPxvbGMu56NOnD9555x2sWbMGixYtgq+vL5YsWYKHHnqosY2hnItdu3ahrq4Ou3fvxu7du5s8NnbsWLz33ntYt24d3nnnHYwdOxYuLi7497//jbFjxza2M6ZzcTeGci60QRBFUZS6CCIiIiKpcMwQERERGTWGISIiIjJqDENERERk1BiGiIiIyKgxDBEREZFRYxgiIiIio8YwREQEgKuMEBkvhiEi6lBDhw7F7Nmz272fn376CcHBwcjJydH6cz799FOsX7++VfvcsGED/vWvf7W6hrZQqVQYPnw4UlNTO/R1iOgWhiEi0gv3338/vvvuO7i6ump938uXL0dNTc1d212+fBlr1qzBrFmztF7D/5LL5Zg5cyZmz57deNd1Iuo4DENEpBccHR3Ro0cPSW8VsGTJEowcORJubm4d/loPPvggZDIZvv322w5/LSJjxzBERB2urq4OH3zwAfr3748ePXpgypQpyMrKatImKSkJEyZMQFRUFHr37o3XXnsNxcXFjY+31OX1888/Y+TIkYiIiMAjjzyC+Ph4hIaG4qeffmqy71OnTuGJJ55AREQE7r///iZdYsHBwQCAVatWNX7dkgsXLuDAgQMYPXp0k+3Xrl3DjBkz0Lt3b8TGxmLq1Km4ePEiACAnJwfBwcHYtWsXpk2bhh49euC+++7D6tWrUVlZiddffx29evXCfffdhyVLljQbtzR69Ghs2LABKpWqNaeZiNqIYYiIOtxvv/2Gixcv4r333sObb76J06dP45VXXml8PDExEZMmTYK5uTmWL1+O119/HSdOnMAzzzyD2traFve5detWzJ49G9HR0Vi9ejWGDx+OadOmQa1WN2v71ltv4eGHH8batWsRGRmJDz74APv37wcAfPfddwCA8ePHN37dku3bt8PFxQXR0dGN24qKivDoo4/iypUrmD9/PpYuXYqysjJMmjSpSZCbO3cugoKC8Omnn6Jv375YsWIFxo8fD3Nzc6xYsQJDhw7FunXr8Pvvvzd5zYceegiFhYU4ceJEK84yEbUV71pPRB3Ozc0Nq1evhpmZGQAgKysLa9asQWVlJaytrfHhhx/Cz88Pa9euhUwmAwBERUVh1KhR+PHHH/H000832+eKFSswZMgQLFq0CAAwcOBAmJmZ4cMPP2zW9tVXX8WTTz4JAOjRowf27duH48ePY8iQIejRowcAwN3dvfHrlhw/fhwREREQBKFx2xdffIHa2lp88cUXcHFxAQB0794djz/+OFJTUxEUFNRY28svvwwACAgIwK+//gonJye8+eabAID+/ftj586dOHnyZJO7zfv6+sLOzg7x8fEYMGDAXc8zEbUNrwwRUYeLjIxsDEIA4O3tDQAoLy9HTU0NTp06hcGDB0MURdTX16O+vh7e3t7w9/fH0aNHm+0vKysLeXl5GDFiRJPto0aNavH1Y2JiGr+2tLSEs7MzysvL7+kYsrOz4eXl1WRbcnIyevTo0RiEAMDV1RX79+/H0KFDG7f17Nmz8euGtlFRUY3bBEGAnZ0dKioqmr1uly5d7mkGHRHdO14ZIqIOZ2lp2eT/TUxu/R2m0WhQXl4OjUaDzz//HJ9//nmz5yoUimbbGrqgnJycmmz/31DyvywsLJq9/r2uK1RZWdlsP6Wlpc0CUkusra3vWtPtWFhYoLKysnVFElGbMAwRkaSsrKwgCAImTZrU4pWdlkKDu7s7AODmzZtNtv/5/7XJ3t6+2ZUbGxubJmODGsTHx8PLy6tJl1pblZeXo0uXLu3eDxHdHrvJiEhS1tbWCA0NxZUrVxAREdH4LzAwEKtWrUJCQkKz57i7u8PHxwe7d+9usn3Xrl1tqqHhStWdeHp6Ij8/v8m2mJgYpKamNglhxcXFmDp1Kvbu3dumWv6XKIooLCyEp6dnu/dFRLfHMEREknv11Vdx5MgRzJw5EwcPHsS+ffvw3HPP4dixYwgLC2vWXhAEzJgxA3v27MH8+fNx5MgRrFu3DitWrADQunDzv2xtbZGSkoLExMTbdp/1798fKSkpTR6fNGkSFAoFnn32Wfz+++/Yv38/pk2bBldXV4wZM+aeamjJ+fPnUVFRgYEDB7Z7X0R0ewxDRCS5AQMGYP369SgoKMCMGTPw73//GzKZDF988cVtZ3iNHj0aCxcuRHx8PF544QX8+uuvmDt3LoDmY5Tu5oUXXsDp06cxderUZld/Gjz44IMoKSnB6dOnG7d5eHjgm2++gbu7O+bMmYPZs2fDxcUFmzZtgr29/T3V0JJDhw41m85PRNoniLw7IRHpoR07diA0NBTdunVr3HbgwAH8/e9/x7Zt2xASEqL113zhhRfg6OiId999V+v7/jNRFPHggw/i6aefxqRJkzr89YiMGa8MEZFe+uWXXzB16lRs374dSUlJ2LJlC95880307t27Q4IQALzyyivYtWsX8vLyOmT//2vnzp3QaDR44oknOvy1iIwdrwwRkV4qKSnBhx9+iEOHDqG4uBjOzs4YPnw4ZsyYASsrqw573c8++wwZGRn46KOPOuw1VCoVRo0ahcWLFzdZI4mIOgbDEBERERk1dpMRERGRUWMYIiIiIqPGMERERERGjWGIiIiIjBrDEBERERk1hiEiIiIyagxDREREZNQYhoiIiMioMQwRERGRUfs/8Zs4MdFKSqYAAAAASUVORK5CYII=",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot = sns.kdeplot(data = heights, fill=True)\n",
"sns.rugplot(data = heights, height=0.1)\n",
"plt.xlabel(\"height (cm)\", fontsize = 12)\n",
"plt.ylabel(\"density\", fontsize = 12)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "ac06a0ef",
"metadata": {},
"source": [
"As usual, it's difficult to say if the data are normally distributed from a plot of a small sample - \n",
"they don't look too bad although there is one very tall outlier.\n",
"\n",
"However, height is generally normally distributed so let's go ahead and use the t-test."
]
},
{
"cell_type": "markdown",
"id": "82caf902",
"metadata": {},
"source": [
"### Hypotheses\n",
"\n",
"\n",
"$\\mathcal{H_o}$: the mean height of rowers is greater than the population average of 175cm\n",
"\n",
"$\\mathcal{H_a}$: the mean higher of rowers is not different from the population average of 175cm\n",
" \n",
"This is a one-tailed test as the observer's hypothesis (described above) is directional - \n",
"she thinks taller people are more likely to be good rowers\n",
"\n",
"We will test at the $\\alpha = 0.05$ significance level"
]
},
{
"cell_type": "markdown",
"id": "88e5cc3d",
"metadata": {},
"source": [
"### Descriptive Statistics\n",
"\n",
"First, we obtain the relevant desriptive statistics. By relevant, I mean the ones that go into the equation for the t-test:\n",
"\n",
"$$ t = \\frac{\\bar{x}}{\\frac{s}{\\sqrt{n}}} $$\n",
"\n",
"This would be the sample mean $\\bar{x}$, the standard deviation $s$, and the sample size $n$.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "11eeb386",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
height
\n",
"
\n",
" \n",
" \n",
"
\n",
"
count
\n",
"
8.000000
\n",
"
\n",
"
\n",
"
mean
\n",
"
180.412500
\n",
"
\n",
"
\n",
"
std
\n",
"
9.013868
\n",
"
\n",
"
\n",
"
min
\n",
"
166.500000
\n",
"
\n",
"
\n",
"
25%
\n",
"
176.500000
\n",
"
\n",
"
\n",
"
50%
\n",
"
180.050000
\n",
"
\n",
"
\n",
"
75%
\n",
"
182.250000
\n",
"
\n",
"
\n",
"
max
\n",
"
198.100000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" height\n",
"count 8.000000\n",
"mean 180.412500\n",
"std 9.013868\n",
"min 166.500000\n",
"25% 176.500000\n",
"50% 180.050000\n",
"75% 182.250000\n",
"max 198.100000"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heights.describe()"
]
},
{
"cell_type": "markdown",
"id": "ad893005",
"metadata": {},
"source": [
"It looks like the mean height of rowers (180.4cm) is above the population mean of 175cm.\n",
"\n",
"Is this a big difference? It is less than one standard deviation above the mean: s=8.4 and (180.4-175)=5.4. \n",
"It turns out (from the normal distribution) that if the average rower was an actual person, they would be taller than about 75% of others, so tall, but not remarkably so. \n",
"\n",
"However, another key element is the variability in the dataset - if the rowers are consistently quite tall (that is most of them are tall), they may as a group be significantly taller than average."
]
},
{
"cell_type": "markdown",
"id": "5118a55a",
"metadata": {},
"source": [
"### Carry out the test\n",
"\n",
"To do the t-test itself we use a one-sample t-test using the function ttest_1samp (that's `stats.1samp()` for one sample) from \n",
"`scipy.stats`"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "fc50b0c4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Ttest_1sampResult(statistic=1.6983675966357161, pvalue=0.06662234508287802)"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stats.ttest_1samp(heights, 175, alternative='greater')"
]
},
{
"cell_type": "markdown",
"id": "56a0749d",
"metadata": {},
"source": [
"The inputs to stats.ttest_1samp are the sample (from our Pandas data frame heights) and the value to which they are to be compared (the average height of british men, 175cm),\n",
"and the argument alternative='greater', which tells the computer to run a one tailed test \n",
"that mean of the first input heights is greater than the reference value 175.\n",
"\n",
"The outputs are statistic ($t=1.70$) and pvalue ($p=0.067$) - if this is less than our $\\alpha$ value 0.5, there is a significant difference.\n",
"\n",
"### Degrees of freedom\n",
"\n",
"In a scientific write-up we also need to report the degrees of freedom of the test. This tells us how many observations (data-points) the test was based on, corrected for the number of means we had to estimate from the data in order to do the test.\n",
"\n",
"In the case of the one sample t-test $df = n-1$ so in this case, df=7 and we can report out test results as:\n",
"\n",
"$t(7) = 1.70, p=0.067$ (one-tailed)\n",
"\n",
"### Interpretation\n",
"\n",
"Our t value of 1.67 means that the difference between the mean height of the rowers and the standard value (175cm, the mean height of British men) is 1.67 times the standard error (where $ SE = \\frac{s}{\\sqrt{n}}$).\n",
"\n",
"Such a large difference (in the expected direction) would occur 0.067 (6.7%) of the time due to chance if the null hypothesis were true (rowers were no taller than other men), hence the p value of 0.067. This is higher than our alpha value (0.05) so the test is not significant.\n",
"\n",
"This diagram shows the expected distribution of t-values if the null were true, with our obtained t-value marked:\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"id": "1746c632",
"metadata": {},
"source": [
"### Draw conclusions\n",
"\n",
"As p>0.05 the test is not significant and we fail to reject the null hypothesis. There is not sufficient evidence to support the hypothesis that rowers are taller than average."
]
},
{
"cell_type": "markdown",
"id": "2309a35d",
"metadata": {},
"source": [
"## Write-up \n",
" \n",
"\n",
"
\n",
" \n",
"Above, I walked you through how to run the t-test and why we make different choices. \n",
" \n",
"In this section we practice writing up our analysis in the correct style for a scientific report. \n",
" \n",
"Replace the XXXs with the correct values! \n",
"\n",
"
\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"id": "eb2962b0",
"metadata": {},
"source": [
"To test the hypothesis that rowers are taller than average, we measaured the heights of 8 male rowers and compared to the national value for mean height of British men (obtained from Wikipedia): 175cm.\n",
"\n",
"The data are shown below:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "513809b5",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"plot = sns.kdeplot(data = heights, fill=True)\n",
"sns.rugplot(data = heights, height=0.1)\n",
"plt.xlabel(\"height (cm)\", fontsize = 12)\n",
"plt.ylabel(\"density\", fontsize = 12)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "4b88dc33",
"metadata": {},
"source": [
"The mean height of the rowers was XXX.X cm and the standard deviation was X.XX cm."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "2e3ee40e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
height
\n",
"
\n",
" \n",
" \n",
"
\n",
"
count
\n",
"
8.000000
\n",
"
\n",
"
\n",
"
mean
\n",
"
180.412500
\n",
"
\n",
"
\n",
"
std
\n",
"
9.013868
\n",
"
\n",
"
\n",
"
min
\n",
"
166.500000
\n",
"
\n",
"
\n",
"
25%
\n",
"
176.500000
\n",
"
\n",
"
\n",
"
50%
\n",
"
180.050000
\n",
"
\n",
"
\n",
"
75%
\n",
"
182.250000
\n",
"
\n",
"
\n",
"
max
\n",
"
198.100000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" height\n",
"count 8.000000\n",
"mean 180.412500\n",
"std 9.013868\n",
"min 166.500000\n",
"25% 176.500000\n",
"50% 180.050000\n",
"75% 182.250000\n",
"max 198.100000"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heights = pandas.read_csv('data/rowersHeights.csv')\n",
"heights.describe()"
]
},
{
"cell_type": "markdown",
"id": "cac7ffd1",
"metadata": {},
"source": [
"We used a one-sample t-test (alpha = X, XX tailed). The use of the t-test (assumption of normality) was justified theoretically on the grounds that heights are typically normally distributed."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "9b8270ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Ttest_1sampResult(statistic=array([1.6983676]), pvalue=array([0.06662235]))"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stats.ttest_1samp(heights, 175, alternative='greater')"
]
},
{
"cell_type": "markdown",
"id": "f8ad7dd7",
"metadata": {},
"source": [
"The results of the t-test $t(XX) =$ X.XX, $p=$X.XX (XX-tailed) suggest that there is insufficient evidence ot reject the null and we cannot conclude that rowers are taller than average."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fd282232",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}