{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Analyse 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\n",
"import isoweek\n",
"import numpy\n",
"from sklearn.linear_model import LogisticRegression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Importation données"
]
},
{
"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?inline=false\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour nous protéger contre une éventuelle disparition ou modification du serveur du Réseau Sentinelles, nous faisons une copie locale de ce jeux de données que nous préservons avec notre analyse. 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 = \"donnees-Simpson.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": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Smoker | \n",
" Status | \n",
" Age | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Yes | \n",
" Alive | \n",
" 21.0 | \n",
"
\n",
" \n",
" | 1 | \n",
" Yes | \n",
" Alive | \n",
" 19.3 | \n",
"
\n",
" \n",
" | 2 | \n",
" No | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
" | 3 | \n",
" No | \n",
" Alive | \n",
" 47.1 | \n",
"
\n",
" \n",
" | 4 | \n",
" Yes | \n",
" Alive | \n",
" 81.4 | \n",
"
\n",
" \n",
" | 5 | \n",
" No | \n",
" Alive | \n",
" 36.8 | \n",
"
\n",
" \n",
" | 6 | \n",
" No | \n",
" Alive | \n",
" 23.8 | \n",
"
\n",
" \n",
" | 7 | \n",
" Yes | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
" | 8 | \n",
" Yes | \n",
" Alive | \n",
" 24.8 | \n",
"
\n",
" \n",
" | 9 | \n",
" Yes | \n",
" Alive | \n",
" 49.5 | \n",
"
\n",
" \n",
" | 10 | \n",
" Yes | \n",
" Alive | \n",
" 30.0 | \n",
"
\n",
" \n",
" | 11 | \n",
" No | \n",
" Dead | \n",
" 66.0 | \n",
"
\n",
" \n",
" | 12 | \n",
" Yes | \n",
" Alive | \n",
" 49.2 | \n",
"
\n",
" \n",
" | 13 | \n",
" No | \n",
" Alive | \n",
" 58.4 | \n",
"
\n",
" \n",
" | 14 | \n",
" No | \n",
" Dead | \n",
" 60.6 | \n",
"
\n",
" \n",
" | 15 | \n",
" No | \n",
" Alive | \n",
" 25.1 | \n",
"
\n",
" \n",
" | 16 | \n",
" No | \n",
" Alive | \n",
" 43.5 | \n",
"
\n",
" \n",
" | 17 | \n",
" No | \n",
" Alive | \n",
" 27.1 | \n",
"
\n",
" \n",
" | 18 | \n",
" No | \n",
" Alive | \n",
" 58.3 | \n",
"
\n",
" \n",
" | 19 | \n",
" Yes | \n",
" Alive | \n",
" 65.7 | \n",
"
\n",
" \n",
" | 20 | \n",
" No | \n",
" Dead | \n",
" 73.2 | \n",
"
\n",
" \n",
" | 21 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
" | 22 | \n",
" No | \n",
" Alive | \n",
" 33.4 | \n",
"
\n",
" \n",
" | 23 | \n",
" Yes | \n",
" Dead | \n",
" 62.3 | \n",
"
\n",
" \n",
" | 24 | \n",
" No | \n",
" Alive | \n",
" 18.0 | \n",
"
\n",
" \n",
" | 25 | \n",
" No | \n",
" Alive | \n",
" 56.2 | \n",
"
\n",
" \n",
" | 26 | \n",
" Yes | \n",
" Alive | \n",
" 59.2 | \n",
"
\n",
" \n",
" | 27 | \n",
" No | \n",
" Alive | \n",
" 25.8 | \n",
"
\n",
" \n",
" | 28 | \n",
" No | \n",
" Dead | \n",
" 36.9 | \n",
"
\n",
" \n",
" | 29 | \n",
" No | \n",
" Alive | \n",
" 20.2 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 1284 | \n",
" Yes | \n",
" Dead | \n",
" 36.0 | \n",
"
\n",
" \n",
" | 1285 | \n",
" Yes | \n",
" Alive | \n",
" 48.3 | \n",
"
\n",
" \n",
" | 1286 | \n",
" No | \n",
" Alive | \n",
" 63.1 | \n",
"
\n",
" \n",
" | 1287 | \n",
" No | \n",
" Alive | \n",
" 60.8 | \n",
"
\n",
" \n",
" | 1288 | \n",
" Yes | \n",
" Dead | \n",
" 39.3 | \n",
"
\n",
" \n",
" | 1289 | \n",
" No | \n",
" Alive | \n",
" 36.7 | \n",
"
\n",
" \n",
" | 1290 | \n",
" No | \n",
" Alive | \n",
" 63.8 | \n",
"
\n",
" \n",
" | 1291 | \n",
" No | \n",
" Dead | \n",
" 71.3 | \n",
"
\n",
" \n",
" | 1292 | \n",
" No | \n",
" Alive | \n",
" 57.7 | \n",
"
\n",
" \n",
" | 1293 | \n",
" No | \n",
" Alive | \n",
" 63.2 | \n",
"
\n",
" \n",
" | 1294 | \n",
" No | \n",
" Alive | \n",
" 46.6 | \n",
"
\n",
" \n",
" | 1295 | \n",
" Yes | \n",
" Dead | \n",
" 82.4 | \n",
"
\n",
" \n",
" | 1296 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
" | 1297 | \n",
" Yes | \n",
" Alive | \n",
" 32.7 | \n",
"
\n",
" \n",
" | 1298 | \n",
" No | \n",
" Alive | \n",
" 39.7 | \n",
"
\n",
" \n",
" | 1299 | \n",
" Yes | \n",
" Dead | \n",
" 60.0 | \n",
"
\n",
" \n",
" | 1300 | \n",
" No | \n",
" Dead | \n",
" 71.0 | \n",
"
\n",
" \n",
" | 1301 | \n",
" No | \n",
" Alive | \n",
" 20.5 | \n",
"
\n",
" \n",
" | 1302 | \n",
" No | \n",
" Alive | \n",
" 44.4 | \n",
"
\n",
" \n",
" | 1303 | \n",
" Yes | \n",
" Alive | \n",
" 31.2 | \n",
"
\n",
" \n",
" | 1304 | \n",
" Yes | \n",
" Alive | \n",
" 47.8 | \n",
"
\n",
" \n",
" | 1305 | \n",
" Yes | \n",
" Alive | \n",
" 60.9 | \n",
"
\n",
" \n",
" | 1306 | \n",
" No | \n",
" Dead | \n",
" 61.4 | \n",
"
\n",
" \n",
" | 1307 | \n",
" Yes | \n",
" Alive | \n",
" 43.0 | \n",
"
\n",
" \n",
" | 1308 | \n",
" No | \n",
" Alive | \n",
" 42.1 | \n",
"
\n",
" \n",
" | 1309 | \n",
" Yes | \n",
" Alive | \n",
" 35.9 | \n",
"
\n",
" \n",
" | 1310 | \n",
" No | \n",
" Alive | \n",
" 22.3 | \n",
"
\n",
" \n",
" | 1311 | \n",
" Yes | \n",
" Dead | \n",
" 62.1 | \n",
"
\n",
" \n",
" | 1312 | \n",
" No | \n",
" Dead | \n",
" 88.6 | \n",
"
\n",
" \n",
" | 1313 | \n",
" No | \n",
" Alive | \n",
" 39.1 | \n",
"
\n",
" \n",
"
\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": [
"On cherche s'il y a des donnees vides, et on les supprime s'il y en a"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Smoker | \n",
" Status | \n",
" Age | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Yes | \n",
" Alive | \n",
" 21.0 | \n",
"
\n",
" \n",
" | 1 | \n",
" Yes | \n",
" Alive | \n",
" 19.3 | \n",
"
\n",
" \n",
" | 2 | \n",
" No | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
" | 3 | \n",
" No | \n",
" Alive | \n",
" 47.1 | \n",
"
\n",
" \n",
" | 4 | \n",
" Yes | \n",
" Alive | \n",
" 81.4 | \n",
"
\n",
" \n",
" | 5 | \n",
" No | \n",
" Alive | \n",
" 36.8 | \n",
"
\n",
" \n",
" | 6 | \n",
" No | \n",
" Alive | \n",
" 23.8 | \n",
"
\n",
" \n",
" | 7 | \n",
" Yes | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
" | 8 | \n",
" Yes | \n",
" Alive | \n",
" 24.8 | \n",
"
\n",
" \n",
" | 9 | \n",
" Yes | \n",
" Alive | \n",
" 49.5 | \n",
"
\n",
" \n",
" | 10 | \n",
" Yes | \n",
" Alive | \n",
" 30.0 | \n",
"
\n",
" \n",
" | 11 | \n",
" No | \n",
" Dead | \n",
" 66.0 | \n",
"
\n",
" \n",
" | 12 | \n",
" Yes | \n",
" Alive | \n",
" 49.2 | \n",
"
\n",
" \n",
" | 13 | \n",
" No | \n",
" Alive | \n",
" 58.4 | \n",
"
\n",
" \n",
" | 14 | \n",
" No | \n",
" Dead | \n",
" 60.6 | \n",
"
\n",
" \n",
" | 15 | \n",
" No | \n",
" Alive | \n",
" 25.1 | \n",
"
\n",
" \n",
" | 16 | \n",
" No | \n",
" Alive | \n",
" 43.5 | \n",
"
\n",
" \n",
" | 17 | \n",
" No | \n",
" Alive | \n",
" 27.1 | \n",
"
\n",
" \n",
" | 18 | \n",
" No | \n",
" Alive | \n",
" 58.3 | \n",
"
\n",
" \n",
" | 19 | \n",
" Yes | \n",
" Alive | \n",
" 65.7 | \n",
"
\n",
" \n",
" | 20 | \n",
" No | \n",
" Dead | \n",
" 73.2 | \n",
"
\n",
" \n",
" | 21 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
" | 22 | \n",
" No | \n",
" Alive | \n",
" 33.4 | \n",
"
\n",
" \n",
" | 23 | \n",
" Yes | \n",
" Dead | \n",
" 62.3 | \n",
"
\n",
" \n",
" | 24 | \n",
" No | \n",
" Alive | \n",
" 18.0 | \n",
"
\n",
" \n",
" | 25 | \n",
" No | \n",
" Alive | \n",
" 56.2 | \n",
"
\n",
" \n",
" | 26 | \n",
" Yes | \n",
" Alive | \n",
" 59.2 | \n",
"
\n",
" \n",
" | 27 | \n",
" No | \n",
" Alive | \n",
" 25.8 | \n",
"
\n",
" \n",
" | 28 | \n",
" No | \n",
" Dead | \n",
" 36.9 | \n",
"
\n",
" \n",
" | 29 | \n",
" No | \n",
" Alive | \n",
" 20.2 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 1284 | \n",
" Yes | \n",
" Dead | \n",
" 36.0 | \n",
"
\n",
" \n",
" | 1285 | \n",
" Yes | \n",
" Alive | \n",
" 48.3 | \n",
"
\n",
" \n",
" | 1286 | \n",
" No | \n",
" Alive | \n",
" 63.1 | \n",
"
\n",
" \n",
" | 1287 | \n",
" No | \n",
" Alive | \n",
" 60.8 | \n",
"
\n",
" \n",
" | 1288 | \n",
" Yes | \n",
" Dead | \n",
" 39.3 | \n",
"
\n",
" \n",
" | 1289 | \n",
" No | \n",
" Alive | \n",
" 36.7 | \n",
"
\n",
" \n",
" | 1290 | \n",
" No | \n",
" Alive | \n",
" 63.8 | \n",
"
\n",
" \n",
" | 1291 | \n",
" No | \n",
" Dead | \n",
" 71.3 | \n",
"
\n",
" \n",
" | 1292 | \n",
" No | \n",
" Alive | \n",
" 57.7 | \n",
"
\n",
" \n",
" | 1293 | \n",
" No | \n",
" Alive | \n",
" 63.2 | \n",
"
\n",
" \n",
" | 1294 | \n",
" No | \n",
" Alive | \n",
" 46.6 | \n",
"
\n",
" \n",
" | 1295 | \n",
" Yes | \n",
" Dead | \n",
" 82.4 | \n",
"
\n",
" \n",
" | 1296 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
" | 1297 | \n",
" Yes | \n",
" Alive | \n",
" 32.7 | \n",
"
\n",
" \n",
" | 1298 | \n",
" No | \n",
" Alive | \n",
" 39.7 | \n",
"
\n",
" \n",
" | 1299 | \n",
" Yes | \n",
" Dead | \n",
" 60.0 | \n",
"
\n",
" \n",
" | 1300 | \n",
" No | \n",
" Dead | \n",
" 71.0 | \n",
"
\n",
" \n",
" | 1301 | \n",
" No | \n",
" Alive | \n",
" 20.5 | \n",
"
\n",
" \n",
" | 1302 | \n",
" No | \n",
" Alive | \n",
" 44.4 | \n",
"
\n",
" \n",
" | 1303 | \n",
" Yes | \n",
" Alive | \n",
" 31.2 | \n",
"
\n",
" \n",
" | 1304 | \n",
" Yes | \n",
" Alive | \n",
" 47.8 | \n",
"
\n",
" \n",
" | 1305 | \n",
" Yes | \n",
" Alive | \n",
" 60.9 | \n",
"
\n",
" \n",
" | 1306 | \n",
" No | \n",
" Dead | \n",
" 61.4 | \n",
"
\n",
" \n",
" | 1307 | \n",
" Yes | \n",
" Alive | \n",
" 43.0 | \n",
"
\n",
" \n",
" | 1308 | \n",
" No | \n",
" Alive | \n",
" 42.1 | \n",
"
\n",
" \n",
" | 1309 | \n",
" Yes | \n",
" Alive | \n",
" 35.9 | \n",
"
\n",
" \n",
" | 1310 | \n",
" No | \n",
" Alive | \n",
" 22.3 | \n",
"
\n",
" \n",
" | 1311 | \n",
" Yes | \n",
" Dead | \n",
" 62.1 | \n",
"
\n",
" \n",
" | 1312 | \n",
" No | \n",
" Dead | \n",
" 88.6 | \n",
"
\n",
" \n",
" | 1313 | \n",
" No | \n",
" Alive | \n",
" 39.1 | \n",
"
\n",
" \n",
"
\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": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data[raw_data.isnull().any(axis=1)]\n",
"data = raw_data.dropna().copy()\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Premiere analyse"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il n y a pas de ligne vide. On peut commencer l analyse en calculant le nombre de fumeurs vivants ou morts, ainsi que le nombre de non-fumeurs vivants ou morts."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"smoker_alive = 0\n",
"smoker_dead = 0\n",
"no_smoker_alive = 0\n",
"no_smoker_dead = 0\n",
"for it in range(len(data)):\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Alive\"):\n",
" smoker_alive = smoker_alive + 1\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Dead\"):\n",
" smoker_dead = smoker_dead + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Alive\"):\n",
" no_smoker_alive = no_smoker_alive + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Dead\"):\n",
" no_smoker_dead = no_smoker_dead + 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On met en forme ces donnees dans un tableau"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" - | \n",
" Non Smoker | \n",
" Smoker | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Alive | \n",
" 502 | \n",
" 443 | \n",
"
\n",
" \n",
" | 1 | \n",
" Dead | \n",
" 230 | \n",
" 139 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" - Non Smoker Smoker\n",
"0 Alive 502 443\n",
"1 Dead 230 139"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tableau = [ { \"-\":\"Alive\", \"Smoker\":smoker_alive, \"Non Smoker\":no_smoker_alive },\n",
" { \"-\":\"Dead\", \"Smoker\":smoker_dead, \"Non Smoker\":no_smoker_dead },]\n",
"df = pd.DataFrame(tableau)\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calcul du taux de mortalité des deux groupes (Fumeurs et Non Fumeurs) et on ajout à notre tableau"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" - | \n",
" Non Smoker | \n",
" Smoker | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Alive | \n",
" 502 | \n",
" 443 | \n",
"
\n",
" \n",
" | 1 | \n",
" Dead | \n",
" 230 | \n",
" 139 | \n",
"
\n",
" \n",
" | 2 | \n",
" Mortality (%) | \n",
" 31 | \n",
" 23 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" - Non Smoker Smoker\n",
"0 Alive 502 443\n",
"1 Dead 230 139\n",
"2 Mortality (%) 31 23"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"smoker_mortality_rate = int(100*smoker_dead/(smoker_alive+smoker_dead))\n",
"no_smoker_mortality_rate = int(100*no_smoker_dead/(no_smoker_alive+no_smoker_dead))\n",
"\n",
"tableau = [ { \"-\":\"Alive\", \"Smoker\":smoker_alive, \"Non Smoker\":no_smoker_alive },\n",
" { \"-\":\"Dead\", \"Smoker\":smoker_dead, \"Non Smoker\":no_smoker_dead }, \n",
" { \"-\":\"Mortality (%)\", \"Smoker\":smoker_mortality_rate, \"Non Smoker\":no_smoker_mortality_rate }]\n",
"df = pd.DataFrame(tableau)\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ce resultat est surprenant, on voit que le taux de mortalité est plus élevé chez les personnes déclarées comme \"Non-Fumeurs\".\n",
"On s'attendrait à voir le résultat inverse."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deuxieme analyse"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On fait une seconde analyse, en séparant les données par classe d'age. 4 classes d'age sont ainsi définies : 18-34 ans, 35-54 ans, 55-64 ans, plus de 65 ans."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"smoker_alive_18_34 = 0\n",
"smoker_dead_18_34 = 0\n",
"no_smoker_alive_18_34 = 0\n",
"no_smoker_dead_18_34 = 0\n",
"\n",
"smoker_alive_35_54 = 0\n",
"smoker_dead_35_54 = 0\n",
"no_smoker_alive_35_54 = 0\n",
"no_smoker_dead_35_54 = 0\n",
"\n",
"smoker_alive_55_64 = 0\n",
"smoker_dead_55_64 = 0\n",
"no_smoker_alive_55_64 = 0\n",
"no_smoker_dead_55_64 = 0\n",
"\n",
"smoker_alive_65 = 0\n",
"smoker_dead_65 = 0\n",
"no_smoker_alive_65 = 0\n",
"no_smoker_dead_65 = 0\n",
"\n",
"for it in range(len(data)):\n",
" if(data[\"Age\"][it]<=34):\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Alive\"):\n",
" smoker_alive_18_34 = smoker_alive_18_34 + 1\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Dead\"):\n",
" smoker_dead_18_34 = smoker_dead_18_34 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Alive\"):\n",
" no_smoker_alive_18_34 = no_smoker_alive_18_34 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Dead\"):\n",
" no_smoker_dead_18_34 = no_smoker_dead_18_34 + 1\n",
" \n",
" if(data[\"Age\"][it]>34 and data[\"Age\"][it]<=54):\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Alive\"):\n",
" smoker_alive_35_54 = smoker_alive_35_54 + 1\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Dead\"):\n",
" smoker_dead_35_54 = smoker_dead_35_54 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Alive\"):\n",
" no_smoker_alive_35_54 = no_smoker_alive_35_54 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Dead\"):\n",
" no_smoker_dead_35_54 = no_smoker_dead_35_54 + 1\n",
" \n",
" if(data[\"Age\"][it]>54 and data[\"Age\"][it]<=64):\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Alive\"):\n",
" smoker_alive_55_64 = smoker_alive_55_64 + 1\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Dead\"):\n",
" smoker_dead_55_64 = smoker_dead_55_64 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Alive\"):\n",
" no_smoker_alive_55_64 = no_smoker_alive_55_64 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Dead\"):\n",
" no_smoker_dead_55_64 = no_smoker_dead_55_64 + 1\n",
" \n",
" if(data[\"Age\"][it]>64):\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Alive\"):\n",
" smoker_alive_65 = smoker_alive_65 + 1\n",
" if(data[\"Smoker\"][it]==\"Yes\" and data[\"Status\"][it]==\"Dead\"):\n",
" smoker_dead_65 = smoker_dead_65 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Alive\"):\n",
" no_smoker_alive_65 = no_smoker_alive_65 + 1\n",
" if(data[\"Smoker\"][it]==\"No\" and data[\"Status\"][it]==\"Dead\"):\n",
" no_smoker_dead_65 = no_smoker_dead_65 + 1\n",
"\n",
"smoker_18_34_mortality_rate = int(100*smoker_dead_18_34/(smoker_alive_18_34+smoker_dead_18_34))\n",
"no_smoker_18_34_mortality_rate = int(100*no_smoker_dead_18_34/(no_smoker_alive_18_34+no_smoker_dead_18_34))\n",
"\n",
"smoker_35_54_mortality_rate = int(100*smoker_dead_35_54/(smoker_alive_35_54+smoker_dead_35_54))\n",
"no_smoker_35_54_mortality_rate = int(100*no_smoker_dead_35_54/(no_smoker_alive_35_54+no_smoker_dead_35_54))\n",
"\n",
"smoker_55_64_mortality_rate = int(100*smoker_dead_55_64/(smoker_alive_55_64+smoker_dead_55_64))\n",
"no_smoker_55_64_mortality_rate = int(100*no_smoker_dead_55_64/(no_smoker_alive_55_64+no_smoker_dead_55_64))\n",
"\n",
"smoker_65_mortality_rate = int(100*smoker_dead_65/(smoker_alive_65+smoker_dead_65))\n",
"no_smoker_65_mortality_rate = int(100*no_smoker_dead_65/(no_smoker_alive_65+no_smoker_dead_65))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut maintenant mettre ces donnees dans un tableau pour les visualiser"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" - | \n",
" Non Smoker | \n",
" Smoker | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Alive (18-34) | \n",
" 213 | \n",
" 176 | \n",
"
\n",
" \n",
" | 1 | \n",
" Dead (18-34) | \n",
" 6 | \n",
" 5 | \n",
"
\n",
" \n",
" | 2 | \n",
" Mortality (18-34(%)) | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" | 3 | \n",
" Alive (35-54) | \n",
" 180 | \n",
" 196 | \n",
"
\n",
" \n",
" | 4 | \n",
" Dead (35-54) | \n",
" 19 | \n",
" 41 | \n",
"
\n",
" \n",
" | 5 | \n",
" Mortality (35-54(%)) | \n",
" 9 | \n",
" 17 | \n",
"
\n",
" \n",
" | 6 | \n",
" Alive (55-64) | \n",
" 81 | \n",
" 64 | \n",
"
\n",
" \n",
" | 7 | \n",
" Dead (55-64) | \n",
" 40 | \n",
" 51 | \n",
"
\n",
" \n",
" | 8 | \n",
" Mortality (55-64(%)) | \n",
" 33 | \n",
" 44 | \n",
"
\n",
" \n",
" | 9 | \n",
" Alive (65+) | \n",
" 28 | \n",
" 7 | \n",
"
\n",
" \n",
" | 10 | \n",
" Dead (65+) | \n",
" 165 | \n",
" 42 | \n",
"
\n",
" \n",
" | 11 | \n",
" Mortality (65+(%)) | \n",
" 85 | \n",
" 85 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" - Non Smoker Smoker\n",
"0 Alive (18-34) 213 176\n",
"1 Dead (18-34) 6 5\n",
"2 Mortality (18-34(%)) 2 2\n",
"3 Alive (35-54) 180 196\n",
"4 Dead (35-54) 19 41\n",
"5 Mortality (35-54(%)) 9 17\n",
"6 Alive (55-64) 81 64\n",
"7 Dead (55-64) 40 51\n",
"8 Mortality (55-64(%)) 33 44\n",
"9 Alive (65+) 28 7\n",
"10 Dead (65+) 165 42\n",
"11 Mortality (65+(%)) 85 85"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tableau_2 = [ { \"-\":\"Alive (18-34)\", \"Smoker\":smoker_alive_18_34, \"Non Smoker\":no_smoker_alive_18_34 },\n",
" { \"-\":\"Dead (18-34)\", \"Smoker\":smoker_dead_18_34, \"Non Smoker\":no_smoker_dead_18_34 }, \n",
" { \"-\":\"Mortality (18-34(%))\", \"Smoker\":smoker_18_34_mortality_rate, \"Non Smoker\":no_smoker_18_34_mortality_rate },\n",
" { \"-\":\"Alive (35-54)\", \"Smoker\":smoker_alive_35_54, \"Non Smoker\":no_smoker_alive_35_54 },\n",
" { \"-\":\"Dead (35-54)\", \"Smoker\":smoker_dead_35_54, \"Non Smoker\":no_smoker_dead_35_54 }, \n",
" { \"-\":\"Mortality (35-54(%))\", \"Smoker\":smoker_35_54_mortality_rate, \"Non Smoker\":no_smoker_35_54_mortality_rate },\n",
" { \"-\":\"Alive (55-64)\", \"Smoker\":smoker_alive_55_64, \"Non Smoker\":no_smoker_alive_55_64 },\n",
" { \"-\":\"Dead (55-64)\", \"Smoker\":smoker_dead_55_64, \"Non Smoker\":no_smoker_dead_55_64 }, \n",
" { \"-\":\"Mortality (55-64(%))\", \"Smoker\":smoker_55_64_mortality_rate, \"Non Smoker\":no_smoker_55_64_mortality_rate },\n",
" { \"-\":\"Alive (65+)\", \"Smoker\":smoker_alive_65, \"Non Smoker\":no_smoker_alive_65 },\n",
" { \"-\":\"Dead (65+)\", \"Smoker\":smoker_dead_65, \"Non Smoker\":no_smoker_dead_65 }, \n",
" { \"-\":\"Mortality (65+(%))\", \"Smoker\":smoker_65_mortality_rate, \"Non Smoker\":no_smoker_65_mortality_rate }]\n",
"df_2 = pd.DataFrame(tableau_2)\n",
"df_2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On va représenter graphiquement la mortalité en fonction de la tranche d'age afin de simplifier l'analyse"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"smoker_mortality = [smoker_18_34_mortality_rate,smoker_35_54_mortality_rate,\n",
" smoker_55_64_mortality_rate,smoker_65_mortality_rate]\n",
"no_smoker_mortality = [no_smoker_18_34_mortality_rate,no_smoker_35_54_mortality_rate,\n",
" no_smoker_55_64_mortality_rate,no_smoker_65_mortality_rate]\n",
"ages = [\"18-34\",\"35-54\",\"55-64\",\"65+\"]\n",
"\n",
"fig = plt.figure()\n",
"plt.plot(ages,smoker_mortality,label = \"smokers\")\n",
"plt.plot(ages,no_smoker_mortality,label = \"non smokers\")\n",
"plt.xlabel(\"Classes d'ages\")\n",
"plt.ylabel(\"Mortalité (%)\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On voit que pour les deux classes d'ages 18-34 et 65+, le taux de mortalité est le même pour les fumeurs et les non-fumeurs. En revanche, pour les classes d'age 35-54 et 55-64, le taux de mortalité des fumeurs est nettement plus élevé que celui des non-fumeurs. Cela peut s'expliquer par le fait que l'age est un critère qui influe sur le taux de mortalité."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Troisieme analyse"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Afin de quantifier l impact de l age sur la mortalite, nous allons realiser une regression logistique. Nous pourrons ainsi analyser les donnees de mortalité lié au tabagisme sans être induit en erreur par la classification par age."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"21.0"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted_data = data.sort_values(\"Age\")\n",
"\n",
"Bool_Death_smoker = []\n",
"Bool_Death_no_smoker = []\n",
"Ages_smoker = []\n",
"Ages_no_smoker = []\n",
"\n",
"for it in range(len(sorted_data)):\n",
" if(sorted_data[\"Status\"][it]==\"Alive\" and sorted_data[\"Smoker\"][it]==\"Yes\"):\n",
" Bool_Death_smoker.append(1)\n",
" Ages_smoker.append(sorted_data[\"Age\"][it])\n",
" if(sorted_data[\"Status\"][it]==\"Dead\" and sorted_data[\"Smoker\"][it]==\"Yes\"):\n",
" Bool_Death_smoker.append(0)\n",
" Ages_smoker.append(sorted_data[\"Age\"][it])\n",
" if(sorted_data[\"Status\"][it]==\"Alive\" and sorted_data[\"Smoker\"][it]==\"No\"):\n",
" Bool_Death_no_smoker.append(1)\n",
" Ages_no_smoker.append(sorted_data[\"Age\"][it])\n",
" if(sorted_data[\"Status\"][it]==\"Dead\" and sorted_data[\"Smoker\"][it]==\"No\"):\n",
" Bool_Death_no_smoker.append(0)\n",
" Ages_no_smoker.append(sorted_data[\"Age\"][it])\n",
"\n",
"sorted_data[\"Age\"][0]"
]
},
{
"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
}