Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save petermchale/cd0017e9d568796355337b4f4da865c5 to your computer and use it in GitHub Desktop.
Save petermchale/cd0017e9d568796355337b4f4da865c5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "313b67ae",
"metadata": {},
"source": [
"## Hypothesis\n",
"\n",
"We hypothesized that females tend to smile more than males. \n",
"\n",
"## Experimental Design \n",
"\n",
"To test the hypothesis, we spent an afternoon at the shopping mall, where we smiled at strangers we made eye contact with, and counted how many smiled back and how many didn't. "
]
},
{
"cell_type": "markdown",
"id": "22fe4736",
"metadata": {},
"source": [
"## Construct a Contingency Table"
]
},
{
"cell_type": "markdown",
"id": "05a3f478",
"metadata": {},
"source": [
"The data we collated is shown below"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f210e499",
"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>female</th>\n",
" <th>male</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>smile</th>\n",
" <td>28</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>no smile</th>\n",
" <td>25</td>\n",
" <td>31</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" female male\n",
"smile 28 15\n",
"no smile 25 31"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.DataFrame(\n",
" data = {\n",
" 'female': [28, 25],\n",
" 'male': [15, 31]\n",
" }, \n",
" index = pd.Index([\n",
" 'smile', \n",
" 'no smile']\n",
" ))\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "91a2dab2",
"metadata": {},
"source": [
"## Visualize the contingency table as a mosaic plot"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ff09fc7b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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7u5uXXvttbr44ot1zz33KD8/X5mZmbrrrrsUjUb1L//yL8rOzlZRUZEef/zxxFifPTw3mLVr1+rss89WamqqiouLdfPNN6ubc0kAAMBhJD2ampqadPnll+v6669XXV2dVq9era997WtyHEeS9Nprr2n37t1644039LOf/UxLly7VggULlJWVpQ0bNug73/mOFi1apI8//thoe9u3b9f8+fO1cOFCvffee3rmmWe0du1a3XjjjYdcJxwOq6OjI/HV9ek1eQAAwNgxKqIpGo3qa1/7mkpLS1VZWanFixcr8OlVkbOzs/XAAw9oypQpuv766zVlyhT19PTo9ttvV1lZmW677TZ5vV6tXbvWaHs1NTW68sor9f3vf19lZWWaOXOmHnjgAS1fvlx9fX2HXCcjIyPxNWPGjCF7/gAA4NiQ9Gg69dRT9Q//8A+qrKzU17/+dT322GNqa2tLfP+UU06R64DP7crPz1dlZWVi2bZt5eTkqKWlxWh77777rp544gkFAoHE1/nnn694PK76+vpB17ntttsUCoUSX2+99dZRPlsc797YsUMvfvihJKmtt1d3rl6d3AkBAIZM0k8Et21br7zyitavX6+VK1fqwQcf1I9//GNt2LBBkuQ54MrLkmRZ1qD3xQ3fqt3V1aVFixbp5ptvHvC9E044YdB1fD6ffD5fYjnAZ4PhEL5cUpLsKQAAhknSo0n6JHrOOussnXXWWbrjjjtUUlKi559/fli2NX36dNXW1urEE08clvEBAMDxKenRtGHDBq1atUrz5s1TXl6eNmzYoL1796q8vFzvvffekG/v1ltv1Zlnnqkbb7xR3/rWt+T3+1VbW6tXXnlFDz300JBvD8eOuONoxbZt2tzcrLjjKCctTVdWVuon69frK2VlWtfYqL5oVOdNnqw8v18vbNmirkhE1UVFml1aKkl6vb5eHeGwLjr55AHj9/T366WtW/VRW5u8tq05paU6jctjAMAxI+nRFAwG9cYbb+i+++5TR0eHSkpK9NOf/lQXXHCBnnnmmSHf3rRp07RmzRr9+Mc/1tlnny3HcTR58mRddtllQ74tHFu279+vnaGQvnfmmfLatvZ0dcn96fl0O9rbdcOMGdrV0aGnNm9WWXa2rq+qUnckokf//GdV5ucrOzX1sOM/X1encWlp+kF1tdp6e/Xku+9qfCCg8RzuBYBjQtKj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Hbr99tv161//+pDjm76m4BjlAGPIz3/+c6ekpMRxHMfp6+tz0tLSnPXr1x/0mG9+85vO5Zdf7jiO47z++uuOJOfVV19NfL+mpsaR5Gzfvj1x36JFi5zzzz//kNvdu3evI8nZvHmz4ziOU19f70hy3nnnHcdxHOfuu+925s2bd9A6O3fudCQ5W7ZsOernC+DvZs+e7cyaNSuxHI1GHb/f71x99dWJ+5qamhxJzptvvjnoGDfccIOzcOHCxPI111zjXHTRRY7jmL2m4NjGOU0Ys7Zt26aenh6dd955B90fiURUVVV10H3Tpk1L3M7Pz1daWpomTZp00H1vvfVWYnnr1q264447tGHDBu3bty+xh6mxsVFTp04dMJd3331Xr7/+ugKBwIDvbd++XSeddNLRPUkABznwd9m2beXk5KiysjJxX35+viSppaVFkvQf//Ef+u///m81Njaqt7dXkUhEp5122qBjH8lrCo5NRBPGrK6uLknSiy++qAkTJhz0vc9+vpTH40nctizroOW/3XfgobcLL7xQJSUleuyxx1RYWKh4PK6pU6cqEokcci4XXnih/v3f/33A9woKCo7siQE4pMF+dz/7+y19cm7S008/rVtuuUU//elPVV1drfT0dP3kJz/Rhg0bBh37SF5TcGwimjBmVVRUyOfzqbGxUbNnzx6ycVtbW7VlyxY99thjOvvssyVJa9euPew606dP13PPPafS0lK53fxaAqPBunXrNHPmTC1evDhx3+He0DFcrykYPXh1xpiVnp6uW265RUuWLFE8HtesWbMUCoW0bt06BYNBXXPNNUc1blZWlnJycvSLX/xCBQUFamxs1I9+9KPDrnPDDTfoscce0+WXX64f/vCHys7O1rZt2/T000/rv/7rv2Tb9lHNBcDRKysr0/Lly/Xyyy9r4sSJ+p//+R+9/fbbmjhx4qCPH67XFIweRBPGtLvvvlu5ubmqqanRRx99pMzMTE2fPl233377UY/pcrn09NNP6+abb9bUqVM1ZcoUPfDAA5ozZ84h1yksLNS6det06623at68eQqHwyopKdH8+fPlcvEmVyAZFi1apHfeeUeXXXaZLMvS5ZdfrsWLFycuSTCY4XhNwehhOY7jJHsSAAAAox3/hQUAADBANAEAABggmgAAAAwQTQAAAAaIJgAAAANEEwAAgAGiCQAAwADRBAAAYIBoAgAAMEA0AQAAGCCaAAAADBBNAAAABv4/4XegJ8K+nggAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from statsmodels.graphics.mosaicplot import mosaic\n",
"\n",
"d = {}\n",
"for k1, v1 in df.to_dict().items(): \n",
" for k2, v2 in v1.items(): \n",
" d[(k1, k2)] = v2\n",
"_ = mosaic(d) "
]
},
{
"cell_type": "markdown",
"id": "45cfde08",
"metadata": {},
"source": [
"## Compute the size of the association between variables, and its significance"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3eeb140f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"odds ratio: 2.3146666666666667\n",
"p-value: 0.06676269027846655\n"
]
}
],
"source": [
"from scipy.stats import fisher_exact\n",
"\n",
"odds_ratio, pvalue = fisher_exact(table=df.to_numpy(), alternative='two-sided')\n",
"\n",
"print(f'odds ratio: {odds_ratio}')\n",
"print(f'p-value: {pvalue}')"
]
},
{
"cell_type": "markdown",
"id": "16e74904",
"metadata": {},
"source": [
"The odds of smiling if you're female is about 2.3 times larger than if you're male. \n",
"\n",
"The p-value indicates that the probability that we would observe these data, or an even more imbalanced data set, by chance is about 6.7%. A commonly used significance level is 5%–if we adopt that, our observed imbalance is on the border of being statistically significant. \n",
"\n",
"With that caveat, we may conclude that females tend to smile more than males."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0b87d5dd",
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment