{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Autour du Paradoxe de Simpson" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En 1972-1974, à Whickham, une ville du nord-est de l'Angleterre, située à environ 6,5 kilomètres au sud-ouest de Newcastle upon Tyne, un sondage d'un sixième des électeurs a été effectué afin d'éclairer des travaux sur les maladies thyroïdiennes et cardiaques (Tunbridge et al. 1977). Une suite de cette étude a été menée vingt ans plus tard (Vanderpump et al. 1995). Certains des résultats avaient trait au tabagisme et cherchaient à savoir si les individus étaient toujours en vie lors de la seconde étude. Par simplicité, nous nous restreindrons aux femmes et parmi celles-ci aux 1314 qui ont été catégorisées comme \"fumant actuellement\" ou \"n'ayant jamais fumé\". Il y avait relativement peu de femmes dans le sondage initial ayant fumé et ayant arrêté depuis (162) et très peu pour lesquelles l'information n'était pas disponible (18). La survie à 20 ans a été déterminée pour l'ensemble des femmes du premier sondage." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les données de ces études sont disponibles sur le gitlab de l'inria dans un [document csv](https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/-/blob/master/module3/Practical_session/Subject6_smoking.csv). Dans ce document, chaque ligne indique si la personne fume ou non, si elle est vivante ou décédée au moment de la seconde étude, et son âge lors du premier sondage. Nous téléchargeons toujours l'ensemble complet des données du document.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data_url = \"https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/-/raw/master/module3/Practical_session/Subject6_smoking.csv\" " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour nous protéger contre une éventuelle disparition ou modification du serveur du gitlab, nous faisons une copie locale de ce jeux de données que nous préservons avec notre analyse. Il est inutile et même risquée de télécharger les données à chaque exécution, car dans le cas d'une panne nous pourrions remplacer nos données par un fichier défectueux. Pour cette raison, nous téléchargeons les données seulement si la copie locale n'existe pas." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data_file = \"survey-data-subject6.csv\"\n", "\n", "import os\n", "import urllib.request\n", "if not os.path.exists(data_file):\n", " urllib.request.urlretrieve(data_url, data_file)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Le document comporte trois colonnes : la première colonne indique leur habitude de tabagisme, la deuxième renseigne si la personne est vivante ou décédée au moment de la seconde étude et enfin, la troisième colonne indique leur âge lors de la première étude" ] }, { "cell_type": "code", "execution_count": 4, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SmokerStatusAge
0YesAlive21.0
1YesAlive19.3
2NoDead57.5
3NoAlive47.1
4YesAlive81.4
5NoAlive36.8
6NoAlive23.8
7YesDead57.5
8YesAlive24.8
9YesAlive49.5
10YesAlive30.0
11NoDead66.0
12YesAlive49.2
13NoAlive58.4
14NoDead60.6
15NoAlive25.1
16NoAlive43.5
17NoAlive27.1
18NoAlive58.3
19YesAlive65.7
20NoDead73.2
21YesAlive38.3
22NoAlive33.4
23YesDead62.3
24NoAlive18.0
25NoAlive56.2
26YesAlive59.2
27NoAlive25.8
28NoDead36.9
29NoAlive20.2
............
1284YesDead36.0
1285YesAlive48.3
1286NoAlive63.1
1287NoAlive60.8
1288YesDead39.3
1289NoAlive36.7
1290NoAlive63.8
1291NoDead71.3
1292NoAlive57.7
1293NoAlive63.2
1294NoAlive46.6
1295YesDead82.4
1296YesAlive38.3
1297YesAlive32.7
1298NoAlive39.7
1299YesDead60.0
1300NoDead71.0
1301NoAlive20.5
1302NoAlive44.4
1303YesAlive31.2
1304YesAlive47.8
1305YesAlive60.9
1306NoDead61.4
1307YesAlive43.0
1308NoAlive42.1
1309YesAlive35.9
1310NoAlive22.3
1311YesDead62.1
1312NoDead88.6
1313NoAlive39.1
\n", "

1314 rows × 3 columns

\n", "
" ], "text/plain": [ " Smoker Status Age\n", "0 Yes Alive 21.0\n", "1 Yes Alive 19.3\n", "2 No Dead 57.5\n", "3 No Alive 47.1\n", "4 Yes Alive 81.4\n", "5 No Alive 36.8\n", "6 No Alive 23.8\n", "7 Yes Dead 57.5\n", "8 Yes Alive 24.8\n", "9 Yes Alive 49.5\n", "10 Yes Alive 30.0\n", "11 No Dead 66.0\n", "12 Yes Alive 49.2\n", "13 No Alive 58.4\n", "14 No Dead 60.6\n", "15 No Alive 25.1\n", "16 No Alive 43.5\n", "17 No Alive 27.1\n", "18 No Alive 58.3\n", "19 Yes Alive 65.7\n", "20 No Dead 73.2\n", "21 Yes Alive 38.3\n", "22 No Alive 33.4\n", "23 Yes Dead 62.3\n", "24 No Alive 18.0\n", "25 No Alive 56.2\n", "26 Yes Alive 59.2\n", "27 No Alive 25.8\n", "28 No Dead 36.9\n", "29 No Alive 20.2\n", "... ... ... ...\n", "1284 Yes Dead 36.0\n", "1285 Yes Alive 48.3\n", "1286 No Alive 63.1\n", "1287 No Alive 60.8\n", "1288 Yes Dead 39.3\n", "1289 No Alive 36.7\n", "1290 No Alive 63.8\n", "1291 No Dead 71.3\n", "1292 No Alive 57.7\n", "1293 No Alive 63.2\n", "1294 No Alive 46.6\n", "1295 Yes Dead 82.4\n", "1296 Yes Alive 38.3\n", "1297 Yes Alive 32.7\n", "1298 No Alive 39.7\n", "1299 Yes Dead 60.0\n", "1300 No Dead 71.0\n", "1301 No Alive 20.5\n", "1302 No Alive 44.4\n", "1303 Yes Alive 31.2\n", "1304 Yes Alive 47.8\n", "1305 Yes Alive 60.9\n", "1306 No Dead 61.4\n", "1307 Yes Alive 43.0\n", "1308 No Alive 42.1\n", "1309 Yes Alive 35.9\n", "1310 No Alive 22.3\n", "1311 Yes Dead 62.1\n", "1312 No Dead 88.6\n", "1313 No Alive 39.1\n", "\n", "[1314 rows x 3 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_data = pd.read_csv(data_file)\n", "raw_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour nous assurer que le jeu de données est complet, nous vérifions qu'il n'y a pas d'informations manquantes conernant l'une des personnes du sondage. Après vérification, il n'y a pas de données manquantes." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SmokerStatusAge
\n", "
" ], "text/plain": [ "Empty DataFrame\n", "Columns: [Smoker, Status, Age]\n", "Index: []" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_data[raw_data.isnull().any(axis=1)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Effectif et taux de mortalite" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous calculons le nombre total de femmes vivantes et décédées sur la période en fonction de leur habitude de tabagisme" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "total_smoker = 0\n", "total_non_smoker = 0\n", "total_alive = 0\n", "total_dead = 0\n", "\n", "alive_and_smoker = 0\n", "alive_and_non_smoker = 0\n", "dead_and_smoker = 0\n", "dead_and_non_smoker = 0\n", "for i in range(len(raw_data)):\n", " if raw_data.iloc[i][0] == \"Yes\":\n", " total_smoker += 1\n", " if raw_data.iloc[i][1] == \"Alive\":\n", " total_alive +=1\n", " alive_and_smoker += 1\n", " else :\n", " total_dead +=1\n", " dead_and_smoker += 1\n", " else :\n", " total_non_smoker += 1\n", " if raw_data.iloc[i][1] == \"Alive\":\n", " total_alive +=1\n", " alive_and_non_smoker += 1\n", " else :\n", " total_dead +=1\n", " dead_and_non_smoker += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "D'apres nos calculs, dans l'etude il y avait 582 fumeuses dont 139 sont mortes et 732 non-fumeuses dont 230 sont decedees. Nous représentons ensuite ces données sous la forme d'un tableau." ] }, { "cell_type": "code", "execution_count": 7, "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", "
SmokerNon-SmokerTotal
Alive443502945
Dead139230369
Total5827321314
\n", "
" ], "text/plain": [ " Smoker Non-Smoker Total\n", "Alive 443 502 945\n", "Dead 139 230 369\n", "Total 582 732 1314" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = [[alive_and_smoker,alive_and_non_smoker,total_alive],[dead_and_smoker, dead_and_non_smoker,total_dead], [total_smoker,total_non_smoker,(total_alive+total_dead)]]\n", "\n", "pd.DataFrame(data, columns=[\"Smoker\", \"Non-Smoker\", \"Total\"], index = [\"Alive\", \"Dead\",\"Total\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A present, nous allons calculer le taux de mortalite dans chacun de ces deux groupes. Pour cela, nous allons determiner le rapport entre le nombre de femmes décédées dans un groupe et le nombre total de femmes dans ce groupe.\n", "\n", "Le taux de mortalite chez les fumeuses etait de 24% tandis que celui des non-fumeuses etait de 31%. Nous obtenons un resultat assez surprenant car d'apres ces etudes, les femmes non-fumeuses meurent plus que les femmes qui fument, ce qui est contraire aux campagnes de prevention que l'on peut croiser un peu partout." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mortality_rate_smoker = dead_and_smoker/(alive_and_smoker+dead_and_smoker)\n", "mortality_rate_non_smoker = dead_and_non_smoker /(alive_and_non_smoker + dead_and_non_smoker)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous representons les taux de mortalite calcules precedemment dans un diagramme de barres afin d'illustrer visuellement nos resultats et le fait que, d'apres ces sondages, les femmes qui fument meurent moins que celle qui ne fument pas." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0,0.5,'Mortality Rate')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mortality_rate = [mortality_rate_smoker,mortality_rate_non_smoker]\n", "smoking = ['smoker', 'non-smoker']\n", "plt.bar(smoking, mortality_rate,color=['#E69F00', '#56B4E9'],width = 0.5)\n", "plt.xticks(smoking)\n", "plt.yticks(mortality_rate)\n", "plt.xlabel('Smoking')\n", "plt.ylabel('Mortality Rate')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Enfin, nous allons estimer le taux de mortalite chez les femmes du au tabagisme a cette epoque sur la population anglaise d'apres les resultats de ces deux etudes. \n", "\n", "Pour faire cela, nous allons calculer des intervalles de confiance a 95% pour chaque categorie (fumeuses et non-fumeuses). La formule generale pour calculer un intervalle de\n", "confiance au niveau de confiance 0,95 est : $ [f-1/\\sqrt{n} ; f+1/\\sqrt{n}]$ si $n\\le30$ et si $nf\\le5$ et $n(1-f)\\le5$ avec $f$ la fréquence observée dans un échantillon de taille $n$. \n", "\n", "Dans notre cas, la frequence observee $f$ correspond au taux de mortalite et la taille $n$ de l'echantillon correspond au nombre de femmes ayant repondu aux sondages soit 1314." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apres avoir verifie que les conditions pour calculer les intervalles de confiance de chacune des deux categories etaient respectees, nous effectuons les calculs.\n", "\n", "Pour les fumeuses, l'intervalle de confiance a 95% du taux de mortalite chez les femmes est $[0.21 ; 0.27]$. Pour les non-fumeuses, l'intervalle de confiance a 95% du taux de mortalite chez les femmes est $[0.29 ; 0.34]$. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import math\n", "n = 1314\n", "if (n*mortality_rate_smoker <= 5) and (n*(1-mortality_rate_smoker)<=5):\n", " confidence_interval_smoker_low = mortality_rate_smoker-(1/math.sqrt(n))\n", " confidence_interval_smoker_high = mortality_rate_smoker+(1/math.sqrt(n))\n", "if (n*mortality_rate_non_smoker <= 5) and (n*(1-mortality_rate_non_smoker)<=5):\n", " confidence_interval_non_smoker_low = mortality_rate_non_smoker-(1/math.sqrt(n))\n", " confidence_interval_non_smoker_high = mortality_rate_non_smoker+(1/math.sqrt(n))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Effectif et taux de mortalite par tranches d'age" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous allons reprendre les calculs d'effectif et de taux de mortalite calcules precedemment, mais nous allons les categoriser par tranche d'age. Les femmes ayant participe a ces etudes seront reparties dans quatre categories en fonction de leur age : 18-35 ans, 35-55 ans, 55-64 ans, plus de 65 ans." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "class_18_to_35 = []\n", "class_35_to_55 = []\n", "class_55_to_64 = []\n", "class_over_65 = []\n", "for i in range(len(raw_data)):\n", " if raw_data.iloc[i][2] < 35:\n", " class_18_to_35.append(raw_data.iloc[i])\n", " elif 35 <= raw_data.iloc[i][2] < 55:\n", " class_35_to_55.append(raw_data.iloc[i])\n", " elif 55 <= raw_data.iloc[i][2] < 65 :\n", " class_55_to_64.append(raw_data.iloc[i])\n", " else :\n", " class_over_65.append(raw_data.iloc[i])" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "alive_and_smoker_18to35 = 0\n", "alive_and_non_smoker_18to35 = 0\n", "dead_and_smoker_18to35 = 0\n", "dead_and_non_smoker_18to35 = 0\n", "for i in range(len(class_18_to_35)):\n", " if class_18_to_35[i][0] == \"Yes\":\n", " if class_18_to_35[i][1] == \"Alive\":\n", " alive_and_smoker_18to35 += 1\n", " else :\n", " dead_and_smoker_18to35 += 1\n", " else :\n", " if class_18_to_35[i][1] == \"Alive\":\n", " alive_and_non_smoker_18to35 += 1\n", " else :\n", " dead_and_non_smoker_18to35 += 1\n", "\n", "alive_and_smoker_35to55 = 0\n", "alive_and_non_smoker_35to55 = 0\n", "dead_and_smoker_35to55 = 0\n", "dead_and_non_smoker_35to55 = 0\n", "for i in range(len(class_35_to_55)):\n", " if class_35_to_55[i][0] == \"Yes\":\n", " if class_35_to_55[i][1] == \"Alive\":\n", " alive_and_smoker_35to55 += 1\n", " else :\n", " dead_and_smoker_35to55 += 1\n", " else :\n", " if class_35_to_55[i][1] == \"Alive\":\n", " alive_and_non_smoker_35to55 += 1\n", " else :\n", " dead_and_non_smoker_35to55 += 1\n", "\n", "alive_and_smoker_55to64 = 0\n", "alive_and_non_smoker_55to64 = 0\n", "dead_and_smoker_55to64 = 0\n", "dead_and_non_smoker_55to64 = 0\n", "for i in range(len(class_55_to_64)):\n", " if class_55_to_64[i][0] == \"Yes\":\n", " if class_55_to_64[i][1] == \"Alive\":\n", " alive_and_smoker_55to64 += 1\n", " else :\n", " dead_and_smoker_55to64 += 1\n", " else :\n", " if class_55_to_64[i][1] == \"Alive\":\n", " alive_and_non_smoker_55to64 += 1\n", " else :\n", " dead_and_non_smoker_55to64 += 1\n", "\n", "alive_and_smoker_over65 = 0\n", "alive_and_non_smoker_over65 = 0\n", "dead_and_smoker_over65 = 0\n", "dead_and_non_smoker_over65 = 0\n", "for i in range(len(class_over_65)):\n", " if class_over_65[i][0] == \"Yes\":\n", " if class_over_65[i][1] == \"Alive\":\n", " alive_and_smoker_over65 += 1\n", " else :\n", " dead_and_smoker_over65 += 1\n", " else :\n", " if class_over_65[i][1] == \"Alive\":\n", " alive_and_non_smoker_over65 += 1\n", " else :\n", " dead_and_non_smoker_over65 += 1" ] }, { "cell_type": "code", "execution_count": 13, "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", "
Smoker [18-35]Non-Smoker [18-35]Smoker [35-55]Non-Smoker [35-55]Smoker [55-64]Non-Smoker [55-64]Smoker [65+]Non-Smoker [65+]
Alive1822211901726481728
Dead763919514042165
\n", "
" ], "text/plain": [ " Smoker [18-35] Non-Smoker [18-35] Smoker [35-55] Non-Smoker [35-55] \\\n", "Alive 182 221 190 172 \n", "Dead 7 6 39 19 \n", "\n", " Smoker [55-64] Non-Smoker [55-64] Smoker [65+] Non-Smoker [65+] \n", "Alive 64 81 7 28 \n", "Dead 51 40 42 165 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_18to35 = [[alive_and_smoker_18to35,alive_and_non_smoker_18to35],[dead_and_smoker_18to35, dead_and_non_smoker_18to35]]\n", "data_35to55 = [[alive_and_smoker_35to55,alive_and_non_smoker_35to55],[dead_and_smoker_35to55, dead_and_non_smoker_35to55]]\n", "data_55to64 = [[alive_and_smoker_55to64,alive_and_non_smoker_55to64],[dead_and_smoker_55to64, dead_and_non_smoker_55to64]]\n", "data_over65 = [[alive_and_smoker_over65,alive_and_non_smoker_over65],[dead_and_smoker_over65, dead_and_non_smoker_over65]]\n", "\n", "df1 = pd.DataFrame(data_18to35, columns=[\"Smoker [18-35]\", \"Non-Smoker [18-35]\"], index = [\"Alive\", \"Dead\"])\n", "df2 = pd.DataFrame(data_35to55, columns=[\"Smoker [35-55]\", \"Non-Smoker [35-55]\"], index = [\"Alive\", \"Dead\"])\n", "df3 = pd.DataFrame(data_55to64, columns=[\"Smoker [55-64]\", \"Non-Smoker [55-64]\"], index = [\"Alive\", \"Dead\"])\n", "df4 = pd.DataFrame(data_over65, columns=[\"Smoker [65+]\", \"Non-Smoker [65+]\"], index = [\"Alive\", \"Dead\"])\n", "\n", "df_total = pd.concat([df1,df2,df3,df4],axis=1)\n", "df_total" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.037037037037037035 0.02643171806167401\n", "0.1703056768558952 0.09947643979057591\n", "0.4434782608695652 0.3305785123966942\n", "0.8571428571428571 0.8549222797927462\n" ] } ], "source": [ "mortality_rate_smoker_18to35 = dead_and_smoker_18to35/(alive_and_smoker_18to35 + dead_and_smoker_18to35)\n", "mortality_rate_non_smoker_18to35 = dead_and_non_smoker_18to35/(alive_and_non_smoker_18to35 + dead_and_non_smoker_18to35)\n", "\n", "mortality_rate_smoker_35to55 = dead_and_smoker_35to55/(alive_and_smoker_35to55 + dead_and_smoker_35to55)\n", "mortality_rate_non_smoker_35to55 = dead_and_non_smoker_35to55/(alive_and_non_smoker_35to55 + dead_and_non_smoker_35to55)\n", "\n", "mortality_rate_smoker_55to64 = dead_and_smoker_55to64/(alive_and_smoker_55to64 + dead_and_smoker_55to64)\n", "mortality_rate_non_smoker_55to64 = dead_and_non_smoker_55to64/(alive_and_non_smoker_55to64 + dead_and_non_smoker_55to64)\n", "\n", "mortality_rate_smoker_over65 = dead_and_smoker_over65/(alive_and_smoker_over65 + dead_and_smoker_over65)\n", "mortality_rate_non_smoker_over65 = dead_and_non_smoker_over65/(alive_and_non_smoker_over65 + dead_and_non_smoker_over65)\n", "\n", "print(mortality_rate_smoker_18to35,mortality_rate_non_smoker_18to35)\n", "print(mortality_rate_smoker_35to55,mortality_rate_non_smoker_35to55)\n", "print(mortality_rate_smoker_55to64,mortality_rate_non_smoker_55to64)\n", "print(mortality_rate_smoker_over65,mortality_rate_non_smoker_over65)\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mortality_rate_smoker = (mortality_rate_smoker_18to35,mortality_rate_smoker_35to55,mortality_rate_smoker_55to64,mortality_rate_smoker_over65)\n", "mortality_rate_non_smoker = (mortality_rate_non_smoker_18to35,mortality_rate_non_smoker_35to55,mortality_rate_non_smoker_55to64,mortality_rate_non_smoker_over65)\n", "age = ['18-35','35-55','55-64','65+']\n", "indices = range(len(mortality_rate_smoker))\n", "width = np.min(np.diff(indices))/3.\n", "\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "ax.bar(indices-width/2.,mortality_rate_smoker,width,color='#E69F00',label='Smoker')\n", "ax.bar(indices+width/2.,mortality_rate_non_smoker,width,color='#56B4E9',label='Non-Smoker')\n", "#tiks = ax.get_xticks().tolist()\n", "plt.xticks(indices + width / 2, age)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }