From fac621ed9a19158315b7c81b9a2df381b9c9bae1 Mon Sep 17 00:00:00 2001 From: 264af2e9a1e4e844f861df089a5604e3 <264af2e9a1e4e844f861df089a5604e3@app-learninglab.inria.fr> Date: Wed, 30 Oct 2024 20:29:09 +0000 Subject: [PATCH] no commit message --- module3/exo2/exerciceTabac.ipynb | 1196 ++++++++++++++++++++++++------ 1 file changed, 970 insertions(+), 226 deletions(-) diff --git a/module3/exo2/exerciceTabac.ipynb b/module3/exo2/exerciceTabac.ipynb index 36d21e7..53c32d0 100644 --- a/module3/exo2/exerciceTabac.ipynb +++ b/module3/exo2/exerciceTabac.ipynb @@ -14,7 +14,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Contexte :" + "## Contexte :" ] }, { @@ -28,7 +28,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### L'étude de ce sujet se fera en 3 étapes :" + "## L'étude de ce sujet se fera en 3 étapes :" ] }, { @@ -46,7 +46,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Etape 1 :" + "## Etape 1 : Calcul du taux de mortalité pour les fumeuses et les non fumeuses" ] }, { @@ -61,13 +61,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import pandas as pd\n", - "import isoweek" + "import statsmodels.api as sm\n", + "import numpy as np\n" ] }, { @@ -88,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 3, "metadata": { "scrolled": true }, @@ -558,7 +559,7 @@ "[1314 rows x 3 columns]" ] }, - "execution_count": 20, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -579,20 +580,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#trier = raw_data.sort_values(by = [\"Smoker\"])\n", "masq = raw_data[\"Smoker\"] == \"Yes\"\n", "fumeuses = raw_data.loc[masq]\n", - "nonFumeuses = trier.loc[raw_data[\"Smoker\"]==\"No\"]\n", + "nonFumeuses = raw_data.loc[raw_data[\"Smoker\"]==\"No\"]\n", "\n" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -1060,7 +1061,7 @@ "[582 rows x 3 columns]" ] }, - "execution_count": 21, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -1072,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -1103,184 +1104,184 @@ " \n", " \n", " \n", - " 1313\n", + " 2\n", " No\n", - " Alive\n", - " 39.1\n", + " Dead\n", + " 57.5\n", " \n", " \n", - " 1048\n", + " 3\n", " No\n", " Alive\n", - " 28.5\n", + " 47.1\n", " \n", " \n", - " 568\n", + " 5\n", " No\n", " Alive\n", - " 33.5\n", + " 36.8\n", " \n", " \n", - " 1047\n", + " 6\n", " No\n", " Alive\n", - " 62.6\n", + " 23.8\n", " \n", " \n", - " 570\n", + " 11\n", " No\n", " Dead\n", - " 56.2\n", + " 66.0\n", " \n", " \n", - " 1046\n", + " 13\n", " No\n", " Alive\n", - " 20.3\n", + " 58.4\n", " \n", " \n", - " 1045\n", + " 14\n", " No\n", - " Alive\n", - " 48.5\n", + " Dead\n", + " 60.6\n", " \n", " \n", - " 1044\n", + " 15\n", " No\n", " Alive\n", - " 32.2\n", + " 25.1\n", " \n", " \n", - " 574\n", + " 16\n", " No\n", " Alive\n", - " 51.6\n", + " 43.5\n", " \n", " \n", - " 576\n", + " 17\n", " No\n", " Alive\n", - " 41.4\n", + " 27.1\n", " \n", " \n", - " 577\n", + " 18\n", " No\n", - " Dead\n", - " 65.4\n", + " Alive\n", + " 58.3\n", " \n", " \n", - " 578\n", + " 20\n", " No\n", " Dead\n", - " 67.7\n", + " 73.2\n", " \n", " \n", - " 579\n", + " 22\n", " No\n", " Alive\n", - " 37.8\n", + " 33.4\n", " \n", " \n", - " 1042\n", + " 24\n", " No\n", " Alive\n", - " 61.5\n", + " 18.0\n", " \n", " \n", - " 581\n", + " 25\n", " No\n", " Alive\n", - " 23.9\n", + " 56.2\n", " \n", " \n", - " 582\n", + " 27\n", " No\n", " Alive\n", - " 60.1\n", + " 25.8\n", " \n", " \n", - " 585\n", + " 28\n", " No\n", " Dead\n", - " 75.6\n", + " 36.9\n", " \n", " \n", - " 586\n", + " 29\n", " No\n", - " Dead\n", - " 72.1\n", + " Alive\n", + " 20.2\n", " \n", " \n", - " 1039\n", + " 33\n", " No\n", " Alive\n", - " 21.7\n", + " 19.4\n", " \n", " \n", - " 588\n", + " 34\n", " No\n", - " Dead\n", - " 55.3\n", + " Alive\n", + " 56.9\n", " \n", " \n", - " 1038\n", + " 41\n", " No\n", " Dead\n", - " 81.8\n", + " 69.7\n", " \n", " \n", - " 590\n", + " 43\n", " No\n", " Dead\n", - " 79.3\n", + " 75.8\n", " \n", " \n", - " 564\n", + " 44\n", " No\n", - " Dead\n", - " 29.8\n", + " Alive\n", + " 25.3\n", " \n", " \n", - " 1051\n", + " 45\n", " No\n", - " Alive\n", - " 53.8\n", + " Dead\n", + " 83.0\n", " \n", " \n", - " 1052\n", + " 47\n", " No\n", " Alive\n", - " 20.7\n", + " 18.5\n", " \n", " \n", - " 561\n", + " 50\n", " No\n", " Alive\n", - " 62.4\n", + " 82.8\n", " \n", " \n", - " 529\n", + " 51\n", " No\n", " Alive\n", - " 25.5\n", + " 45.0\n", " \n", " \n", - " 1068\n", + " 52\n", " No\n", - " Alive\n", - " 49.4\n", + " Dead\n", + " 73.3\n", " \n", " \n", - " 533\n", + " 54\n", " No\n", " Alive\n", - " 35.1\n", + " 28.4\n", " \n", " \n", - " 534\n", + " 55\n", " No\n", - " Alive\n", - " 38.0\n", + " Dead\n", + " 73.7\n", " \n", " \n", " ...\n", @@ -1289,184 +1290,184 @@ " ...\n", " \n", " \n", - " 1128\n", + " 1262\n", " No\n", " Alive\n", - " 19.1\n", + " 41.2\n", " \n", " \n", - " 396\n", + " 1265\n", " No\n", " Alive\n", - " 20.4\n", + " 26.7\n", " \n", " \n", - " 261\n", + " 1266\n", " No\n", " Alive\n", - " 49.1\n", + " 41.8\n", " \n", " \n", - " 1190\n", + " 1267\n", " No\n", " Alive\n", - " 38.7\n", + " 33.7\n", " \n", " \n", - " 268\n", + " 1268\n", " No\n", " Alive\n", - " 52.4\n", + " 56.5\n", " \n", " \n", - " 256\n", + " 1272\n", " No\n", " Alive\n", - " 52.6\n", + " 33.0\n", " \n", " \n", - " 398\n", + " 1274\n", " No\n", " Alive\n", - " 46.2\n", + " 25.7\n", " \n", " \n", - " 277\n", + " 1275\n", " No\n", " Alive\n", - " 55.3\n", + " 19.5\n", " \n", " \n", - " 1183\n", + " 1277\n", " No\n", " Alive\n", - " 57.5\n", + " 23.4\n", " \n", " \n", - " 278\n", + " 1279\n", " No\n", - " Dead\n", - " 87.7\n", + " Alive\n", + " 34.4\n", " \n", " \n", - " 383\n", + " 1280\n", " No\n", " Dead\n", - " 74.1\n", + " 83.9\n", " \n", " \n", - " 1196\n", + " 1281\n", " No\n", - " Dead\n", - " 76.2\n", + " Alive\n", + " 34.9\n", " \n", " \n", - " 273\n", + " 1283\n", " No\n", - " Alive\n", - " 36.5\n", + " Dead\n", + " 86.3\n", " \n", " \n", - " 252\n", + " 1286\n", " No\n", " Alive\n", - " 20.1\n", + " 63.1\n", " \n", " \n", - " 384\n", + " 1287\n", " No\n", " Alive\n", - " 37.0\n", + " 60.8\n", " \n", " \n", - " 403\n", + " 1289\n", " No\n", - " Dead\n", - " 78.0\n", + " Alive\n", + " 36.7\n", " \n", " \n", - " 250\n", + " 1290\n", " No\n", " Alive\n", - " 30.8\n", + " 63.8\n", " \n", " \n", - " 249\n", + " 1291\n", " No\n", " Dead\n", - " 84.3\n", + " 71.3\n", " \n", " \n", - " 404\n", + " 1292\n", " No\n", " Alive\n", - " 26.8\n", + " 57.7\n", " \n", " \n", - " 1131\n", + " 1293\n", " No\n", " Alive\n", - " 22.9\n", + " 63.2\n", " \n", " \n", - " 1184\n", + " 1294\n", " No\n", " Alive\n", - " 46.5\n", + " 46.6\n", " \n", " \n", - " 282\n", + " 1298\n", " No\n", " Alive\n", - " 18.5\n", + " 39.7\n", " \n", " \n", - " 1194\n", + " 1300\n", " No\n", " Dead\n", - " 83.3\n", + " 71.0\n", " \n", " \n", - " 255\n", + " 1301\n", " No\n", " Alive\n", - " 19.6\n", + " 20.5\n", " \n", " \n", - " 405\n", + " 1302\n", " No\n", " Alive\n", - " 63.0\n", + " 44.4\n", " \n", " \n", - " 276\n", + " 1306\n", " No\n", - " Alive\n", - " 38.4\n", + " Dead\n", + " 61.4\n", " \n", " \n", - " 1124\n", + " 1308\n", " No\n", " Alive\n", - " 52.0\n", + " 42.1\n", " \n", " \n", - " 275\n", + " 1310\n", " No\n", " Alive\n", - " 38.8\n", + " 22.3\n", " \n", " \n", - " 1185\n", + " 1312\n", " No\n", " Dead\n", - " 73.8\n", + " 88.6\n", " \n", " \n", - " 280\n", + " 1313\n", " No\n", " Alive\n", - " 74.1\n", + " 39.1\n", " \n", " \n", "\n", @@ -1475,72 +1476,72 @@ ], "text/plain": [ " Smoker Status Age\n", - "1313 No Alive 39.1\n", - "1048 No Alive 28.5\n", - "568 No Alive 33.5\n", - "1047 No Alive 62.6\n", - "570 No Dead 56.2\n", - "1046 No Alive 20.3\n", - "1045 No Alive 48.5\n", - "1044 No Alive 32.2\n", - "574 No Alive 51.6\n", - "576 No Alive 41.4\n", - "577 No Dead 65.4\n", - "578 No Dead 67.7\n", - "579 No Alive 37.8\n", - "1042 No Alive 61.5\n", - "581 No Alive 23.9\n", - "582 No Alive 60.1\n", - "585 No Dead 75.6\n", - "586 No Dead 72.1\n", - "1039 No Alive 21.7\n", - "588 No Dead 55.3\n", - "1038 No Dead 81.8\n", - "590 No Dead 79.3\n", - "564 No Dead 29.8\n", - "1051 No Alive 53.8\n", - "1052 No Alive 20.7\n", - "561 No Alive 62.4\n", - "529 No Alive 25.5\n", - "1068 No Alive 49.4\n", - "533 No Alive 35.1\n", - "534 No Alive 38.0\n", + "2 No Dead 57.5\n", + "3 No Alive 47.1\n", + "5 No Alive 36.8\n", + "6 No Alive 23.8\n", + "11 No Dead 66.0\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", + "20 No Dead 73.2\n", + "22 No Alive 33.4\n", + "24 No Alive 18.0\n", + "25 No Alive 56.2\n", + "27 No Alive 25.8\n", + "28 No Dead 36.9\n", + "29 No Alive 20.2\n", + "33 No Alive 19.4\n", + "34 No Alive 56.9\n", + "41 No Dead 69.7\n", + "43 No Dead 75.8\n", + "44 No Alive 25.3\n", + "45 No Dead 83.0\n", + "47 No Alive 18.5\n", + "50 No Alive 82.8\n", + "51 No Alive 45.0\n", + "52 No Dead 73.3\n", + "54 No Alive 28.4\n", + "55 No Dead 73.7\n", "... ... ... ...\n", - "1128 No Alive 19.1\n", - "396 No Alive 20.4\n", - "261 No Alive 49.1\n", - "1190 No Alive 38.7\n", - "268 No Alive 52.4\n", - "256 No Alive 52.6\n", - "398 No Alive 46.2\n", - "277 No Alive 55.3\n", - "1183 No Alive 57.5\n", - "278 No Dead 87.7\n", - "383 No Dead 74.1\n", - "1196 No Dead 76.2\n", - "273 No Alive 36.5\n", - "252 No Alive 20.1\n", - "384 No Alive 37.0\n", - "403 No Dead 78.0\n", - "250 No Alive 30.8\n", - "249 No Dead 84.3\n", - "404 No Alive 26.8\n", - "1131 No Alive 22.9\n", - "1184 No Alive 46.5\n", - "282 No Alive 18.5\n", - "1194 No Dead 83.3\n", - "255 No Alive 19.6\n", - "405 No Alive 63.0\n", - "276 No Alive 38.4\n", - "1124 No Alive 52.0\n", - "275 No Alive 38.8\n", - "1185 No Dead 73.8\n", - "280 No Alive 74.1\n", + "1262 No Alive 41.2\n", + "1265 No Alive 26.7\n", + "1266 No Alive 41.8\n", + "1267 No Alive 33.7\n", + "1268 No Alive 56.5\n", + "1272 No Alive 33.0\n", + "1274 No Alive 25.7\n", + "1275 No Alive 19.5\n", + "1277 No Alive 23.4\n", + "1279 No Alive 34.4\n", + "1280 No Dead 83.9\n", + "1281 No Alive 34.9\n", + "1283 No Dead 86.3\n", + "1286 No Alive 63.1\n", + "1287 No Alive 60.8\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", + "1298 No Alive 39.7\n", + "1300 No Dead 71.0\n", + "1301 No Alive 20.5\n", + "1302 No Alive 44.4\n", + "1306 No Dead 61.4\n", + "1308 No Alive 42.1\n", + "1310 No Alive 22.3\n", + "1312 No Dead 88.6\n", + "1313 No Alive 39.1\n", "\n", "[732 rows x 3 columns]" ] }, - "execution_count": 22, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -1559,7 +1560,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -1643,7 +1644,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -1671,7 +1672,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -1720,7 +1721,7 @@ "1 nonFumeuses 31.420765" ] }, - "execution_count": 36, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1740,7 +1741,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -1780,7 +1781,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Etape 2" + "## Etape 2 : Calcul du taux de mortalité pour les fumeuses et les non fumeuses selon des classes d'âge" ] }, { @@ -1792,7 +1793,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -1818,7 +1819,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -1826,7 +1827,7 @@ "output_type": "stream", "text": [ "179\n", - "5 fumeuses ayant entre 18 et 34 ans lors du premier sondage sont décédées durant la période de 20 ans\n" + "5 fumeuses ayant entre 18 et 34 ans lors du premier sondage sont décédées durant la période avant la suite de l'étude\n" ] } ], @@ -1835,7 +1836,7 @@ "t2 = test.loc[test[\"Age\"]>=18]\n", "print(len(t2))\n", "nbDecedees18_34F = len(t2.loc[t2[\"Status\"]==\"Dead\"])\n", - "print(nbDecedees18_34F, \"fumeuses ayant entre 18 et 34 ans lors du premier sondage sont décédées durant la période de 20 ans\")" + "print(nbDecedees18_34F, \"fumeuses ayant entre 18 et 34 ans lors du premier sondage sont décédées durant la période avant la suite de l'étude\")" ] }, { @@ -1847,7 +1848,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -1856,7 +1857,7 @@ "2.793296089385475" ] }, - "execution_count": 64, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1875,7 +1876,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -1894,7 +1895,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -1916,7 +1917,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1938,7 +1939,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -1960,7 +1961,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1982,7 +1983,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -1993,7 +1994,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -2021,6 +2022,749 @@ "plt.show()\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "En faisant des classes d'âge, nous obtenons pour les classes centrales comme 34-54 et 54-64 un résultat totalement opposé à celui de l'étape précédente. Il y a, pour ces 2 classes, significativement plus de morts dans le groupe des fumeuses que dans le groupe de non fumeuses durant la période de temps entre le premier sondage et la suite de l'étude. Ce qui se rapproche plus de ce que nous aurions pu supposer avec seulement nos connaissances.\n", + "Nous pouvons donc avancer que l'âge des femmes est une variable non négligeable dans cette étude puisqu'en le prenant en compte, nous obtenons des résultats différents.\n", + "Ce qui entrerait en accord avec la description du [paradoxe de simpson](https://fr.wikipedia.org/wiki/Paradoxe_de_Simpson)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Etape 3 : Régression logistique" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ajout d'une colonne Death contenant 1 si la personne est morte pendant la période entre le premier sondage et la suite de l'étude." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SmokerStatusAgeDeath
0YesAlive21.00
1YesAlive19.30
2NoDead57.51
3NoAlive47.10
4YesAlive81.40
5NoAlive36.80
6NoAlive23.80
7YesDead57.51
8YesAlive24.80
9YesAlive49.50
10YesAlive30.00
11NoDead66.01
12YesAlive49.20
13NoAlive58.40
14NoDead60.61
15NoAlive25.10
16NoAlive43.50
17NoAlive27.10
18NoAlive58.30
19YesAlive65.70
20NoDead73.21
21YesAlive38.30
22NoAlive33.40
23YesDead62.31
24NoAlive18.00
25NoAlive56.20
26YesAlive59.20
27NoAlive25.80
28NoDead36.91
29NoAlive20.20
...............
1284YesDead36.01
1285YesAlive48.30
1286NoAlive63.10
1287NoAlive60.80
1288YesDead39.31
1289NoAlive36.70
1290NoAlive63.80
1291NoDead71.31
1292NoAlive57.70
1293NoAlive63.20
1294NoAlive46.60
1295YesDead82.41
1296YesAlive38.30
1297YesAlive32.70
1298NoAlive39.70
1299YesDead60.01
1300NoDead71.01
1301NoAlive20.50
1302NoAlive44.40
1303YesAlive31.20
1304YesAlive47.80
1305YesAlive60.90
1306NoDead61.41
1307YesAlive43.00
1308NoAlive42.10
1309YesAlive35.90
1310NoAlive22.30
1311YesDead62.11
1312NoDead88.61
1313NoAlive39.10
\n", + "

1314 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Smoker Status Age Death\n", + "0 Yes Alive 21.0 0\n", + "1 Yes Alive 19.3 0\n", + "2 No Dead 57.5 1\n", + "3 No Alive 47.1 0\n", + "4 Yes Alive 81.4 0\n", + "5 No Alive 36.8 0\n", + "6 No Alive 23.8 0\n", + "7 Yes Dead 57.5 1\n", + "8 Yes Alive 24.8 0\n", + "9 Yes Alive 49.5 0\n", + "10 Yes Alive 30.0 0\n", + "11 No Dead 66.0 1\n", + "12 Yes Alive 49.2 0\n", + "13 No Alive 58.4 0\n", + "14 No Dead 60.6 1\n", + "15 No Alive 25.1 0\n", + "16 No Alive 43.5 0\n", + "17 No Alive 27.1 0\n", + "18 No Alive 58.3 0\n", + "19 Yes Alive 65.7 0\n", + "20 No Dead 73.2 1\n", + "21 Yes Alive 38.3 0\n", + "22 No Alive 33.4 0\n", + "23 Yes Dead 62.3 1\n", + "24 No Alive 18.0 0\n", + "25 No Alive 56.2 0\n", + "26 Yes Alive 59.2 0\n", + "27 No Alive 25.8 0\n", + "28 No Dead 36.9 1\n", + "29 No Alive 20.2 0\n", + "... ... ... ... ...\n", + "1284 Yes Dead 36.0 1\n", + "1285 Yes Alive 48.3 0\n", + "1286 No Alive 63.1 0\n", + "1287 No Alive 60.8 0\n", + "1288 Yes Dead 39.3 1\n", + "1289 No Alive 36.7 0\n", + "1290 No Alive 63.8 0\n", + "1291 No Dead 71.3 1\n", + "1292 No Alive 57.7 0\n", + "1293 No Alive 63.2 0\n", + "1294 No Alive 46.6 0\n", + "1295 Yes Dead 82.4 1\n", + "1296 Yes Alive 38.3 0\n", + "1297 Yes Alive 32.7 0\n", + "1298 No Alive 39.7 0\n", + "1299 Yes Dead 60.0 1\n", + "1300 No Dead 71.0 1\n", + "1301 No Alive 20.5 0\n", + "1302 No Alive 44.4 0\n", + "1303 Yes Alive 31.2 0\n", + "1304 Yes Alive 47.8 0\n", + "1305 Yes Alive 60.9 0\n", + "1306 No Dead 61.4 1\n", + "1307 Yes Alive 43.0 0\n", + "1308 No Alive 42.1 0\n", + "1309 Yes Alive 35.9 0\n", + "1310 No Alive 22.3 0\n", + "1311 Yes Dead 62.1 1\n", + "1312 No Dead 88.6 1\n", + "1313 No Alive 39.1 0\n", + "\n", + "[1314 rows x 4 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw_data[\"Death\"] = raw_data[\"Status\"].apply(lambda x: 1 if x == \"Dead\" else 0) #Usage d'apply pour appliquer la fonction\n", + "raw_data #anonyme lambda sur chaque ligne de la DataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Création de nouveaux DataFrame contenant les mêmes valeurs que *fumeuses* et *nonFumeuses*" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "nonFumeusesv2 = raw_data.loc[raw_data[\"Smoker\"]==\"No\"]\n", + "fumeusesv2 = raw_data.loc[raw_data[\"Smoker\"]==\"Yes\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Régression logistique sur le groupe des fumeuses" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 0.412727\n", + " Iterations 7\n", + "Fumeuses:\n", + " Logit Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Death No. Observations: 582\n", + "Model: Logit Df Residuals: 580\n", + "Method: MLE Df Model: 1\n", + "Date: Wed, 30 Oct 2024 Pseudo R-squ.: 0.2492\n", + "Time: 18:10:51 Log-Likelihood: -240.21\n", + "converged: True LL-Null: -319.94\n", + " LLR p-value: 1.477e-36\n", + "==============================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const -5.5081 0.466 -11.814 0.000 -6.422 -4.594\n", + "Age 0.0890 0.009 10.203 0.000 0.072 0.106\n", + "==============================================================================\n" + ] + } + ], + "source": [ + "# Modèle pour les fumeuses\n", + "X_fumeuses = sm.add_constant(fumeusesv2['Age']) # Ajout de l'intercept\n", + "y_fumeuses = fumeusesv2['Death']\n", + "model_fumeuses = sm.Logit(y_fumeuses, X_fumeuses).fit()\n", + "\n", + "# Affichage du résumé des résultats\n", + "print(\"Fumeuses:\\n\", model_fumeuses.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Régression logistique pour le groupe des non fumeuses" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 0.354560\n", + " Iterations 7\n", + "Non-fumeuses:\n", + " Logit Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Death No. Observations: 732\n", + "Model: Logit Df Residuals: 730\n", + "Method: MLE Df Model: 1\n", + "Date: Wed, 30 Oct 2024 Pseudo R-squ.: 0.4304\n", + "Time: 18:12:25 Log-Likelihood: -259.54\n", + "converged: True LL-Null: -455.62\n", + " LLR p-value: 2.808e-87\n", + "==============================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const -6.7955 0.479 -14.174 0.000 -7.735 -5.856\n", + "Age 0.1073 0.008 13.742 0.000 0.092 0.123\n", + "==============================================================================\n" + ] + } + ], + "source": [ + "# Modèle pour les non-fumeuses\n", + "X_non_fumeuses = sm.add_constant(nonFumeusesv2['Age']) # Ajout de l'intercept\n", + "y_non_fumeuses = nonFumeusesv2['Death']\n", + "model_non_fumeuses = sm.Logit(y_non_fumeuses, X_non_fumeuses).fit()\n", + "\n", + "# Affichage du résumé des résultats\n", + "print(\"Non-fumeuses:\\n\", model_non_fumeuses.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Création d'une série de valeurs d'âge régulièrement espacées allant de la plus petite à la plus grande avec 100 points intermédiaires." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "age_range = np.linspace(raw_data['Age'].min(), raw_data['Age'].max(), 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Prédictions pour les fumeuses\n", + "pred_fumeuses = model_fumeuses.predict(sm.add_constant(age_range))\n", + "\n", + "# Prédictions pour les non-fumeuses\n", + "pred_non_fumeuses = model_non_fumeuses.predict(sm.add_constant(age_range))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Graphique de probabilité de décès en fonction de l'âge\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(age_range, pred_fumeuses, label=\"Fumeuses\", color=\"salmon\")\n", + "plt.plot(age_range, pred_non_fumeuses, label=\"Non Fumeuses\", color=\"skyblue\")\n", + "\n", + "# Ajout d'intervalles de confiance pour chaque groupe\n", + "plt.fill_between(age_range, pred_fumeuses - 1.96 * np.std(pred_fumeuses), pred_fumeuses + 1.96 * np.std(pred_fumeuses), color=\"salmon\", alpha=0.2)\n", + "plt.fill_between(age_range, pred_non_fumeuses - 1.96 * np.std(pred_non_fumeuses), pred_non_fumeuses + 1.96 * np.std(pred_non_fumeuses), color=\"skyblue\", alpha=0.2)\n", + "\n", + "# Mise en forme du graphique\n", + "plt.xlabel(\"Âge\")\n", + "plt.ylabel(\"Probabilité de décès\")\n", + "plt.title(\"Probabilité de décès en fonction de l'âge et du statut (fumeuses ou non fumeuses)\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, { "cell_type": "code", "execution_count": null, -- 2.18.1