"## Étape 1 : Calcul des effectifs vivants et décédés par statut de fumeur"
"## Étape 1 : Importation des bibliothèques et des données"
]
},
{
...
...
@@ -47,12 +47,12 @@
"hidePrompt": false
},
"source": [
"Représentez dans un tableau le nombre total de femmes vivantes et décédées sur la période en fonction de leur habitude de tabagisme. Calculez dans chaque groupe (fumeuses / non fumeuses) le taux de mortalité (le rapport entre le nombre de femmes décédées dans un groupe et le nombre total de femmes dans ce groupe). Vous pourrez proposer une représentation graphique de ces données et calculer des intervalles de confiance si vous le souhaitez. En quoi ce résultat est-il surprenant ?"
"La première étape consiste à importer les bibliothèques nécessaires (Pandas pour la gestion des données, Statsmodels pour la régression logistique, Seaborn et Matplotlib pour les visualisations), puis à charger les données depuis un fichier CSV."
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 71,
"metadata": {
"hideCode": false,
"hidePrompt": false
...
...
@@ -60,18 +60,905 @@
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.pyplot as plt # Pour afficher les graphiques\n",
"import seaborn as sns # Pour la visualisation\n",
"import pandas as pd\n",
"import isoweek"
"import isoweek\n",
"import statsmodels.api as sm # Pour la régression logistique"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Charger les données depuis un fichier CSV"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 72,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"df = pd.read_csv('Subject6_smoking.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"On affiche les 5 premières lignes du fichier pour vérifier si tout fonctionne bien"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"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>Smoker</th>\n",
" <th>Status</th>\n",
" <th>Age</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>21.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>19.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>47.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>81.4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"## Étape 2 : Calcul des effectifs vivants et décédés par statut de fumeur"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"Dans cette étape, nous voulons calculer combien de femmes sont vivantes ou décédées en fonction de leur statut de fumeur (fumeuse ou non). On utilise ```groupby()``` pour regrouper les données par ```Smoker``` et ```Status```, puis on utilise ```size()``` pour compter le nombre d'éléments dans chaque groupe."
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Groupement des données par statut de fumeur et statut de vie/mort"
"Affichage des résultats avec le taux de mortalité"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>Mortality Rate</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>No</th>\n",
" <td>502</td>\n",
" <td>230</td>\n",
" <td>0.314208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>443</td>\n",
" <td>139</td>\n",
" <td>0.238832</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead Mortality Rate\n",
"Smoker \n",
"No 502 230 0.314208\n",
"Yes 443 139 0.238832"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"## Étape 4 : Introduction des classes d'âge"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"Les classes d'âge sont divisées en intervalles (18-34, 34-54, 55-64, 65+), et ces catégories sont ajoutées à notre DataFrame à l'aide de la fonction ```pd.cut()```."
"Cette section vous donnera les coefficients du modèle et vous permettra d'interpréter l'effet de l'âge et du tabagisme sur la probabilité de décès."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Étape 6: Visualisation des résultats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dans cette étape, nous créons un graphique pour visualiser le taux de mortalité par groupe d'âge et statut de fumeur. Nous utilisons Seaborn pour créer un diagramme à barres."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calcul du taux de mortalité par statut de fumeur et groupe d'âge"