Commit de ce que j'ai fait sur le paadoxe de Simpson, surtout un prétexte pour...

Commit de ce que j'ai fait sur le paadoxe de Simpson, surtout un prétexte pour découvrir pandas, je n'ai pas essayé de faire les régressions.
parent 9f6e799b
{ {
"cells": [], "cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Analyse des épidémoies de varicelle"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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>week</th>\n",
" <th>indicator</th>\n",
" <th>inc</th>\n",
" <th>inc_low</th>\n",
" <th>inc_up</th>\n",
" <th>inc100</th>\n",
" <th>inc100_low</th>\n",
" <th>inc100_up</th>\n",
" <th>geo_insee</th>\n",
" <th>geo_name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>202450</td>\n",
" <td>7</td>\n",
" <td>7532</td>\n",
" <td>4384</td>\n",
" <td>10680</td>\n",
" <td>11</td>\n",
" <td>6</td>\n",
" <td>16</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>202449</td>\n",
" <td>7</td>\n",
" <td>6015</td>\n",
" <td>3576</td>\n",
" <td>8454</td>\n",
" <td>9</td>\n",
" <td>5</td>\n",
" <td>13</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>202448</td>\n",
" <td>7</td>\n",
" <td>4189</td>\n",
" <td>1454</td>\n",
" <td>6924</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>10</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>202447</td>\n",
" <td>7</td>\n",
" <td>1931</td>\n",
" <td>726</td>\n",
" <td>3136</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>202446</td>\n",
" <td>7</td>\n",
" <td>2260</td>\n",
" <td>863</td>\n",
" <td>3657</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>202445</td>\n",
" <td>7</td>\n",
" <td>2713</td>\n",
" <td>1216</td>\n",
" <td>4210</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>202444</td>\n",
" <td>7</td>\n",
" <td>2135</td>\n",
" <td>676</td>\n",
" <td>3594</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>202443</td>\n",
" <td>7</td>\n",
" <td>2124</td>\n",
" <td>641</td>\n",
" <td>3607</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>202442</td>\n",
" <td>7</td>\n",
" <td>2621</td>\n",
" <td>1246</td>\n",
" <td>3996</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>202441</td>\n",
" <td>7</td>\n",
" <td>2035</td>\n",
" <td>381</td>\n",
" <td>3689</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>202440</td>\n",
" <td>7</td>\n",
" <td>2125</td>\n",
" <td>725</td>\n",
" <td>3525</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>202439</td>\n",
" <td>7</td>\n",
" <td>2898</td>\n",
" <td>1333</td>\n",
" <td>4463</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>202438</td>\n",
" <td>7</td>\n",
" <td>751</td>\n",
" <td>0</td>\n",
" <td>1513</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>202437</td>\n",
" <td>7</td>\n",
" <td>916</td>\n",
" <td>28</td>\n",
" <td>1804</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>202436</td>\n",
" <td>7</td>\n",
" <td>2235</td>\n",
" <td>870</td>\n",
" <td>3600</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>202435</td>\n",
" <td>7</td>\n",
" <td>1620</td>\n",
" <td>285</td>\n",
" <td>2955</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>202434</td>\n",
" <td>7</td>\n",
" <td>2560</td>\n",
" <td>622</td>\n",
" <td>4498</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>202433</td>\n",
" <td>7</td>\n",
" <td>1971</td>\n",
" <td>536</td>\n",
" <td>3406</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>202432</td>\n",
" <td>7</td>\n",
" <td>4399</td>\n",
" <td>1944</td>\n",
" <td>6854</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>11</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>202431</td>\n",
" <td>7</td>\n",
" <td>4500</td>\n",
" <td>2213</td>\n",
" <td>6787</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>202430</td>\n",
" <td>7</td>\n",
" <td>7004</td>\n",
" <td>4278</td>\n",
" <td>9730</td>\n",
" <td>11</td>\n",
" <td>7</td>\n",
" <td>15</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>202429</td>\n",
" <td>7</td>\n",
" <td>9270</td>\n",
" <td>6303</td>\n",
" <td>12237</td>\n",
" <td>14</td>\n",
" <td>10</td>\n",
" <td>18</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>202428</td>\n",
" <td>7</td>\n",
" <td>9364</td>\n",
" <td>6498</td>\n",
" <td>12230</td>\n",
" <td>14</td>\n",
" <td>10</td>\n",
" <td>18</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>202427</td>\n",
" <td>7</td>\n",
" <td>10247</td>\n",
" <td>7090</td>\n",
" <td>13404</td>\n",
" <td>15</td>\n",
" <td>10</td>\n",
" <td>20</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>202426</td>\n",
" <td>7</td>\n",
" <td>14368</td>\n",
" <td>10399</td>\n",
" <td>18337</td>\n",
" <td>22</td>\n",
" <td>16</td>\n",
" <td>28</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>202425</td>\n",
" <td>7</td>\n",
" <td>11174</td>\n",
" <td>8039</td>\n",
" <td>14309</td>\n",
" <td>17</td>\n",
" <td>12</td>\n",
" <td>22</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>202424</td>\n",
" <td>7</td>\n",
" <td>12621</td>\n",
" <td>9357</td>\n",
" <td>15885</td>\n",
" <td>19</td>\n",
" <td>14</td>\n",
" <td>24</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>202423</td>\n",
" <td>7</td>\n",
" <td>14657</td>\n",
" <td>11339</td>\n",
" <td>17975</td>\n",
" <td>22</td>\n",
" <td>17</td>\n",
" <td>27</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>202422</td>\n",
" <td>7</td>\n",
" <td>11628</td>\n",
" <td>8361</td>\n",
" <td>14895</td>\n",
" <td>17</td>\n",
" <td>12</td>\n",
" <td>22</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>202421</td>\n",
" <td>7</td>\n",
" <td>9701</td>\n",
" <td>6851</td>\n",
" <td>12551</td>\n",
" <td>15</td>\n",
" <td>11</td>\n",
" <td>19</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1746</th>\n",
" <td>199126</td>\n",
" <td>7</td>\n",
" <td>17608</td>\n",
" <td>11304</td>\n",
" <td>23912</td>\n",
" <td>31</td>\n",
" <td>20</td>\n",
" <td>42</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1747</th>\n",
" <td>199125</td>\n",
" <td>7</td>\n",
" <td>16169</td>\n",
" <td>10700</td>\n",
" <td>21638</td>\n",
" <td>28</td>\n",
" <td>18</td>\n",
" <td>38</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1748</th>\n",
" <td>199124</td>\n",
" <td>7</td>\n",
" <td>16171</td>\n",
" <td>10071</td>\n",
" <td>22271</td>\n",
" <td>28</td>\n",
" <td>17</td>\n",
" <td>39</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1749</th>\n",
" <td>199123</td>\n",
" <td>7</td>\n",
" <td>11947</td>\n",
" <td>7671</td>\n",
" <td>16223</td>\n",
" <td>21</td>\n",
" <td>13</td>\n",
" <td>29</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1750</th>\n",
" <td>199122</td>\n",
" <td>7</td>\n",
" <td>15452</td>\n",
" <td>9953</td>\n",
" <td>20951</td>\n",
" <td>27</td>\n",
" <td>17</td>\n",
" <td>37</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1751</th>\n",
" <td>199121</td>\n",
" <td>7</td>\n",
" <td>14903</td>\n",
" <td>8975</td>\n",
" <td>20831</td>\n",
" <td>26</td>\n",
" <td>16</td>\n",
" <td>36</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1752</th>\n",
" <td>199120</td>\n",
" <td>7</td>\n",
" <td>19053</td>\n",
" <td>12742</td>\n",
" <td>25364</td>\n",
" <td>34</td>\n",
" <td>23</td>\n",
" <td>45</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1753</th>\n",
" <td>199119</td>\n",
" <td>7</td>\n",
" <td>16739</td>\n",
" <td>11246</td>\n",
" <td>22232</td>\n",
" <td>29</td>\n",
" <td>19</td>\n",
" <td>39</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1754</th>\n",
" <td>199118</td>\n",
" <td>7</td>\n",
" <td>21385</td>\n",
" <td>13882</td>\n",
" <td>28888</td>\n",
" <td>38</td>\n",
" <td>25</td>\n",
" <td>51</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1755</th>\n",
" <td>199117</td>\n",
" <td>7</td>\n",
" <td>13462</td>\n",
" <td>8877</td>\n",
" <td>18047</td>\n",
" <td>24</td>\n",
" <td>16</td>\n",
" <td>32</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1756</th>\n",
" <td>199116</td>\n",
" <td>7</td>\n",
" <td>14857</td>\n",
" <td>10068</td>\n",
" <td>19646</td>\n",
" <td>26</td>\n",
" <td>18</td>\n",
" <td>34</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1757</th>\n",
" <td>199115</td>\n",
" <td>7</td>\n",
" <td>13975</td>\n",
" <td>9781</td>\n",
" <td>18169</td>\n",
" <td>25</td>\n",
" <td>18</td>\n",
" <td>32</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1758</th>\n",
" <td>199114</td>\n",
" <td>7</td>\n",
" <td>12265</td>\n",
" <td>7684</td>\n",
" <td>16846</td>\n",
" <td>22</td>\n",
" <td>14</td>\n",
" <td>30</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1759</th>\n",
" <td>199113</td>\n",
" <td>7</td>\n",
" <td>9567</td>\n",
" <td>6041</td>\n",
" <td>13093</td>\n",
" <td>17</td>\n",
" <td>11</td>\n",
" <td>23</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1760</th>\n",
" <td>199112</td>\n",
" <td>7</td>\n",
" <td>10864</td>\n",
" <td>7331</td>\n",
" <td>14397</td>\n",
" <td>19</td>\n",
" <td>13</td>\n",
" <td>25</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1761</th>\n",
" <td>199111</td>\n",
" <td>7</td>\n",
" <td>15574</td>\n",
" <td>11184</td>\n",
" <td>19964</td>\n",
" <td>27</td>\n",
" <td>19</td>\n",
" <td>35</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1762</th>\n",
" <td>199110</td>\n",
" <td>7</td>\n",
" <td>16643</td>\n",
" <td>11372</td>\n",
" <td>21914</td>\n",
" <td>29</td>\n",
" <td>20</td>\n",
" <td>38</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1763</th>\n",
" <td>199109</td>\n",
" <td>7</td>\n",
" <td>13741</td>\n",
" <td>8780</td>\n",
" <td>18702</td>\n",
" <td>24</td>\n",
" <td>15</td>\n",
" <td>33</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1764</th>\n",
" <td>199108</td>\n",
" <td>7</td>\n",
" <td>13289</td>\n",
" <td>8813</td>\n",
" <td>17765</td>\n",
" <td>23</td>\n",
" <td>15</td>\n",
" <td>31</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1765</th>\n",
" <td>199107</td>\n",
" <td>7</td>\n",
" <td>12337</td>\n",
" <td>8077</td>\n",
" <td>16597</td>\n",
" <td>22</td>\n",
" <td>15</td>\n",
" <td>29</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1766</th>\n",
" <td>199106</td>\n",
" <td>7</td>\n",
" <td>10877</td>\n",
" <td>7013</td>\n",
" <td>14741</td>\n",
" <td>19</td>\n",
" <td>12</td>\n",
" <td>26</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1767</th>\n",
" <td>199105</td>\n",
" <td>7</td>\n",
" <td>10442</td>\n",
" <td>6544</td>\n",
" <td>14340</td>\n",
" <td>18</td>\n",
" <td>11</td>\n",
" <td>25</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1768</th>\n",
" <td>199104</td>\n",
" <td>7</td>\n",
" <td>7913</td>\n",
" <td>4563</td>\n",
" <td>11263</td>\n",
" <td>14</td>\n",
" <td>8</td>\n",
" <td>20</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1769</th>\n",
" <td>199103</td>\n",
" <td>7</td>\n",
" <td>15387</td>\n",
" <td>10484</td>\n",
" <td>20290</td>\n",
" <td>27</td>\n",
" <td>18</td>\n",
" <td>36</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1770</th>\n",
" <td>199102</td>\n",
" <td>7</td>\n",
" <td>16277</td>\n",
" <td>11046</td>\n",
" <td>21508</td>\n",
" <td>29</td>\n",
" <td>20</td>\n",
" <td>38</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1771</th>\n",
" <td>199101</td>\n",
" <td>7</td>\n",
" <td>15565</td>\n",
" <td>10271</td>\n",
" <td>20859</td>\n",
" <td>27</td>\n",
" <td>18</td>\n",
" <td>36</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1772</th>\n",
" <td>199052</td>\n",
" <td>7</td>\n",
" <td>19375</td>\n",
" <td>13295</td>\n",
" <td>25455</td>\n",
" <td>34</td>\n",
" <td>23</td>\n",
" <td>45</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1773</th>\n",
" <td>199051</td>\n",
" <td>7</td>\n",
" <td>19080</td>\n",
" <td>13807</td>\n",
" <td>24353</td>\n",
" <td>34</td>\n",
" <td>25</td>\n",
" <td>43</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1774</th>\n",
" <td>199050</td>\n",
" <td>7</td>\n",
" <td>11079</td>\n",
" <td>6660</td>\n",
" <td>15498</td>\n",
" <td>20</td>\n",
" <td>12</td>\n",
" <td>28</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1775</th>\n",
" <td>199049</td>\n",
" <td>7</td>\n",
" <td>1143</td>\n",
" <td>0</td>\n",
" <td>2610</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>FR</td>\n",
" <td>France</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1776 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" week indicator inc inc_low inc_up inc100 inc100_low \\\n",
"0 202450 7 7532 4384 10680 11 6 \n",
"1 202449 7 6015 3576 8454 9 5 \n",
"2 202448 7 4189 1454 6924 6 2 \n",
"3 202447 7 1931 726 3136 3 1 \n",
"4 202446 7 2260 863 3657 3 1 \n",
"5 202445 7 2713 1216 4210 4 2 \n",
"6 202444 7 2135 676 3594 3 1 \n",
"7 202443 7 2124 641 3607 3 1 \n",
"8 202442 7 2621 1246 3996 4 2 \n",
"9 202441 7 2035 381 3689 3 1 \n",
"10 202440 7 2125 725 3525 3 1 \n",
"11 202439 7 2898 1333 4463 4 2 \n",
"12 202438 7 751 0 1513 1 0 \n",
"13 202437 7 916 28 1804 1 0 \n",
"14 202436 7 2235 870 3600 3 1 \n",
"15 202435 7 1620 285 2955 2 0 \n",
"16 202434 7 2560 622 4498 4 1 \n",
"17 202433 7 1971 536 3406 3 1 \n",
"18 202432 7 4399 1944 6854 7 3 \n",
"19 202431 7 4500 2213 6787 7 4 \n",
"20 202430 7 7004 4278 9730 11 7 \n",
"21 202429 7 9270 6303 12237 14 10 \n",
"22 202428 7 9364 6498 12230 14 10 \n",
"23 202427 7 10247 7090 13404 15 10 \n",
"24 202426 7 14368 10399 18337 22 16 \n",
"25 202425 7 11174 8039 14309 17 12 \n",
"26 202424 7 12621 9357 15885 19 14 \n",
"27 202423 7 14657 11339 17975 22 17 \n",
"28 202422 7 11628 8361 14895 17 12 \n",
"29 202421 7 9701 6851 12551 15 11 \n",
"... ... ... ... ... ... ... ... \n",
"1746 199126 7 17608 11304 23912 31 20 \n",
"1747 199125 7 16169 10700 21638 28 18 \n",
"1748 199124 7 16171 10071 22271 28 17 \n",
"1749 199123 7 11947 7671 16223 21 13 \n",
"1750 199122 7 15452 9953 20951 27 17 \n",
"1751 199121 7 14903 8975 20831 26 16 \n",
"1752 199120 7 19053 12742 25364 34 23 \n",
"1753 199119 7 16739 11246 22232 29 19 \n",
"1754 199118 7 21385 13882 28888 38 25 \n",
"1755 199117 7 13462 8877 18047 24 16 \n",
"1756 199116 7 14857 10068 19646 26 18 \n",
"1757 199115 7 13975 9781 18169 25 18 \n",
"1758 199114 7 12265 7684 16846 22 14 \n",
"1759 199113 7 9567 6041 13093 17 11 \n",
"1760 199112 7 10864 7331 14397 19 13 \n",
"1761 199111 7 15574 11184 19964 27 19 \n",
"1762 199110 7 16643 11372 21914 29 20 \n",
"1763 199109 7 13741 8780 18702 24 15 \n",
"1764 199108 7 13289 8813 17765 23 15 \n",
"1765 199107 7 12337 8077 16597 22 15 \n",
"1766 199106 7 10877 7013 14741 19 12 \n",
"1767 199105 7 10442 6544 14340 18 11 \n",
"1768 199104 7 7913 4563 11263 14 8 \n",
"1769 199103 7 15387 10484 20290 27 18 \n",
"1770 199102 7 16277 11046 21508 29 20 \n",
"1771 199101 7 15565 10271 20859 27 18 \n",
"1772 199052 7 19375 13295 25455 34 23 \n",
"1773 199051 7 19080 13807 24353 34 25 \n",
"1774 199050 7 11079 6660 15498 20 12 \n",
"1775 199049 7 1143 0 2610 2 0 \n",
"\n",
" inc100_up geo_insee geo_name \n",
"0 16 FR France \n",
"1 13 FR France \n",
"2 10 FR France \n",
"3 5 FR France \n",
"4 5 FR France \n",
"5 6 FR France \n",
"6 5 FR France \n",
"7 5 FR France \n",
"8 6 FR France \n",
"9 5 FR France \n",
"10 5 FR France \n",
"11 6 FR France \n",
"12 2 FR France \n",
"13 2 FR France \n",
"14 5 FR France \n",
"15 4 FR France \n",
"16 7 FR France \n",
"17 5 FR France \n",
"18 11 FR France \n",
"19 10 FR France \n",
"20 15 FR France \n",
"21 18 FR France \n",
"22 18 FR France \n",
"23 20 FR France \n",
"24 28 FR France \n",
"25 22 FR France \n",
"26 24 FR France \n",
"27 27 FR France \n",
"28 22 FR France \n",
"29 19 FR France \n",
"... ... ... ... \n",
"1746 42 FR France \n",
"1747 38 FR France \n",
"1748 39 FR France \n",
"1749 29 FR France \n",
"1750 37 FR France \n",
"1751 36 FR France \n",
"1752 45 FR France \n",
"1753 39 FR France \n",
"1754 51 FR France \n",
"1755 32 FR France \n",
"1756 34 FR France \n",
"1757 32 FR France \n",
"1758 30 FR France \n",
"1759 23 FR France \n",
"1760 25 FR France \n",
"1761 35 FR France \n",
"1762 38 FR France \n",
"1763 33 FR France \n",
"1764 31 FR France \n",
"1765 29 FR France \n",
"1766 26 FR France \n",
"1767 25 FR France \n",
"1768 20 FR France \n",
"1769 36 FR France \n",
"1770 38 FR France \n",
"1771 36 FR France \n",
"1772 45 FR France \n",
"1773 43 FR France \n",
"1774 28 FR France \n",
"1775 5 FR France \n",
"\n",
"[1776 rows x 10 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_data=pd.read_csv('inc-7-PAY.csv',skiprows=1)\n",
"raw_data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 1776 entries, 0 to 1775\n",
"Data columns (total 10 columns):\n",
"week 1776 non-null int64\n",
"indicator 1776 non-null int64\n",
"inc 1776 non-null int64\n",
"inc_low 1776 non-null int64\n",
"inc_up 1776 non-null int64\n",
"inc100 1776 non-null int64\n",
"inc100_low 1776 non-null int64\n",
"inc100_up 1776 non-null int64\n",
"geo_insee 1776 non-null object\n",
"geo_name 1776 non-null object\n",
"dtypes: int64(8), object(2)\n",
"memory usage: 138.8+ KB\n"
]
}
],
"source": [
"raw_data.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On voit ici qu'il n'y a aucune données manquantes entre fin 1990 et fin 2024, et toutes les données numériques sont au format `int`."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
...@@ -16,10 +1056,9 @@ ...@@ -16,10 +1056,9 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.3" "version": "3.6.4"
} }
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2
} }
{ {
"cells": [], "cells": [
{
"cell_type": "markdown",
"metadata": { "metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"# Autour du paradoxe de Simpson"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"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",
" <tr>\n",
" <th>5</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>23.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>24.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>66.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>60.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>43.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>27.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>65.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>73.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>33.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>18.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>56.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>59.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>36.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1284</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>36.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1285</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>48.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1286</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1287</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>60.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1288</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>39.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1289</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1290</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1291</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1292</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>57.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1293</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1294</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>46.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1295</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>82.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1296</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1297</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>32.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1298</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1299</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1300</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1301</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1302</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>44.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1303</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>31.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1304</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>47.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1305</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>60.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1306</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>61.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1307</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>43.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1308</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>42.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1309</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>35.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1310</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>22.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1311</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>88.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1313</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1314 rows × 3 columns</p>\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\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": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees = pd.read_csv('Subject6_smoking.csv')\n",
"donnees"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 1314 entries, 0 to 1313\n",
"Data columns (total 3 columns):\n",
"Smoker 1314 non-null object\n",
"Status 1314 non-null object\n",
"Age 1314 non-null float64\n",
"dtypes: float64(1), object(2)\n",
"memory usage: 30.9+ KB\n"
]
}
],
"source": [
"donnees.info()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"Pour faire un peu de statistiques sur ces données, on peut représenter `Yes` par `1` et `No`par `0`, et `Alive`par `1`et `Dead` par `0`. On va en fait procéder autrement mais c'était ma première approche naïve, je laisse donc mon code initial ainsi que les résultats obtenus. Au lieu d'utiliser la methode `apply` j'aurais également pu utiliser la méthode `replace`."
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"``` \n",
"def convert(x):\n",
" if (x=='Yes') | (x==\"Alive\"):\n",
" return 1\n",
" elif (x=='No') | (x=='Dead'):\n",
" return 0\n",
"\n",
"donnees['Smoker'] = donnees['Smoker'].apply(convert)\n",
"donnees['Status'] = donnees['Status'].apply(convert)\n",
"donnees[['Smoker','Status']].sum()\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"Parmi les 1314 femmes sondées, il y a donc 582 fumeuses, et 945 des femmes (fumeuses et non fumeuses) sont encore vivantes 20 ans après."
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"Ré-obtenons ces informations à l'aide des méthodes de regroupement."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"outputs": [
{
"data": {
"text/plain": [
"No 732\n",
"Yes 582\n",
"Name: Smoker, dtype: int64"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees['Smoker'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"hideCode": false,
"hidePrompt": true,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Alive 945\n",
"Dead 369\n",
"Name: Status, dtype: int64"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees['Status'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"Maintenant regardons les infos jointes, pour essayer de comprendre les dépendances. Pour ça, on pourrait écrire \n",
"```\n",
"donnees[['Smoker,'Status']].value_counts()\n",
"```\n",
"pour avoir le tableau souhaité, mais ce notebook jupyter utilise une version non à jour de panda où on ne peut pas utiliser `value_counts` sur un `dataframe`, donc on ruse."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"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></th>\n",
" <th>Total</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th>Status</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">No</th>\n",
" <th>Alive</th>\n",
" <td>502</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dead</th>\n",
" <td>230</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Yes</th>\n",
" <th>Alive</th>\n",
" <td>443</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dead</th>\n",
" <td>139</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Total\n",
"Smoker Status \n",
"No Alive 502\n",
" Dead 230\n",
"Yes Alive 443\n",
" Dead 139"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tableau = donnees.groupby(['Smoker','Status']).count()\n",
"tableau = tableau.rename(columns={'Age':'Total'})\n",
"tableau"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"MultiIndex: 4 entries, (No, Alive) to (Yes, Dead)\n",
"Data columns (total 1 columns):\n",
"Total 4 non-null int64\n",
"dtypes: int64(1)\n",
"memory usage: 238.0+ bytes\n"
]
}
],
"source": [
"tableau.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Un autre moyen d'obtenir le même tableau (toujours avec le même souci de nom)."
]
},
{
"cell_type": "code",
"execution_count": 55,
"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></th>\n",
" <th>Age</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th>Status</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">No</th>\n",
" <th>Alive</th>\n",
" <td>502</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dead</th>\n",
" <td>230</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Yes</th>\n",
" <th>Alive</th>\n",
" <td>443</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dead</th>\n",
" <td>139</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <th></th>\n",
" <td>1314</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age\n",
"Smoker Status \n",
"No Alive 502\n",
" Dead 230\n",
"Yes Alive 443\n",
" Dead 139\n",
"All 1314"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees.pivot_table(index = ['Smoker','Status'], aggfunc='count', margins=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Une manière plus agréable visuellement d'avoir les mêmes données, et en supprimpant le problème de nom :"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"scrolled": true
},
"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>All</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>732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>443</td>\n",
" <td>139</td>\n",
" <td>582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>945</td>\n",
" <td>369</td>\n",
" <td>1314</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All\n",
"Smoker \n",
"No 502 230 732\n",
"Yes 443 139 582\n",
"All 945 369 1314"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table2 = donnees.pivot_table(index = 'Smoker',values='Age', columns='Status', aggfunc='count', margins=True) \n",
"table2"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 3 entries, No to All\n",
"Data columns (total 3 columns):\n",
"Alive 3 non-null int64\n",
"Dead 3 non-null int64\n",
"All 3 non-null int64\n",
"dtypes: int64(3)\n",
"memory usage: 96.0+ bytes\n"
]
}
],
"source": [
"table2.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remarquons que si on ne précise pas `values='Age'`, on obtient quelque chose de proche mais avec un souci de nom à nouveau."
]
},
{
"cell_type": "code",
"execution_count": 68,
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">Age</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</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>732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>443</td>\n",
" <td>139</td>\n",
" <td>582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>945</td>\n",
" <td>369</td>\n",
" <td>1314</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Age \n",
"Status Alive Dead All\n",
"Smoker \n",
"No 502 230 732\n",
"Yes 443 139 582\n",
"All 945 369 1314"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table3 = donnees.pivot_table(index = 'Smoker', columns='Status', aggfunc='count', margins=True) \n",
"table3"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 3 entries, No to All\n",
"Data columns (total 3 columns):\n",
"(Age, Alive) 3 non-null int64\n",
"(Age, Dead) 3 non-null int64\n",
"(Age, All) 3 non-null int64\n",
"dtypes: int64(3)\n",
"memory usage: 96.0+ bytes\n"
]
}
],
"source": [
"table3.info()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": true
},
"source": [
"Evaluons maintenant le taux de mortalité selon si on fume ou non."
]
},
{
"cell_type": "code",
"execution_count": 73,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</th>\n",
" <th>ratio_deces</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></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>732</td>\n",
" <td>0.314208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>443</td>\n",
" <td>139</td>\n",
" <td>582</td>\n",
" <td>0.238832</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>945</td>\n",
" <td>369</td>\n",
" <td>1314</td>\n",
" <td>0.280822</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All ratio_deces\n",
"Smoker \n",
"No 502 230 732 0.314208\n",
"Yes 443 139 582 0.238832\n",
"All 945 369 1314 0.280822"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table2['ratio_deces'] = table2['Dead']/table2['All']\n",
"table2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On observe donc que les fumeuses ont eu un taux de décès plus faible !\n",
"\n",
"Le problème avec notre étude, c'est que l'âge (qui est clairement un facteur dans la mort des individus) des participants n'a pas été pris en compte, or le fait de fumer (ou non) pour une femme dans les années 70 est corrélé avec l'âge et nos groupes de sont pas équivalent du point de vue de l'âge. On peut facilement le vérifier ici :"
]
},
{
"cell_type": "code",
"execution_count": 72,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</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>40.347410</td>\n",
" <td>70.481739</td>\n",
" <td>49.815847</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>39.648984</td>\n",
" <td>58.996403</td>\n",
" <td>44.269759</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>40.020000</td>\n",
" <td>66.155285</td>\n",
" <td>47.359361</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All\n",
"Smoker \n",
"No 40.347410 70.481739 49.815847\n",
"Yes 39.648984 58.996403 44.269759\n",
"All 40.020000 66.155285 47.359361"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees.pivot_table(index = 'Smoker',values='Age', columns='Status', aggfunc='mean', margins=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ajoutons des tranches d'ages pour prendre en compte cette composante."
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [],
"source": [
"def classifie(x):\n",
" if x <= 34:\n",
" return '18-34 ans'\n",
" elif x <= 54:\n",
" return '35-54 ans'\n",
" elif x <= 65:\n",
" return '55-65 ans'\n",
" else:\n",
" return '>65 ans'\n",
" \n",
"donnees['tranche']=donnees['Age'].apply(classifie)"
]
},
{
"cell_type": "code",
"execution_count": 75,
"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>Smoker</th>\n",
" <th>Status</th>\n",
" <th>Age</th>\n",
" <th>tranche</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",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>19.3</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>47.1</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>81.4</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.8</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>23.8</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>24.8</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.5</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>30.0</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>66.0</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.2</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.4</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>60.6</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.1</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>43.5</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>27.1</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.3</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>65.7</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>73.2</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>33.4</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.3</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>18.0</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>56.2</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>59.2</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.8</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>36.9</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.2</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1284</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>36.0</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1285</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>48.3</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1286</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.1</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1287</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>60.8</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1288</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>39.3</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1289</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.7</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1290</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.8</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1291</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.3</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1292</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>57.7</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1293</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.2</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1294</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>46.6</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1295</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>82.4</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1296</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1297</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>32.7</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1298</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.7</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1299</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>60.0</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1300</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.0</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1301</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.5</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1302</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>44.4</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1303</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>31.2</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1304</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>47.8</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1305</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>60.9</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1306</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>61.4</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1307</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>43.0</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1308</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>42.1</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1309</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>35.9</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1310</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>22.3</td>\n",
" <td>18-34 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1311</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.1</td>\n",
" <td>55-65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>88.6</td>\n",
" <td>&gt;65 ans</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1313</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.1</td>\n",
" <td>35-54 ans</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1314 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" Smoker Status Age tranche\n",
"0 Yes Alive 21.0 18-34 ans\n",
"1 Yes Alive 19.3 18-34 ans\n",
"2 No Dead 57.5 55-65 ans\n",
"3 No Alive 47.1 35-54 ans\n",
"4 Yes Alive 81.4 >65 ans\n",
"5 No Alive 36.8 35-54 ans\n",
"6 No Alive 23.8 18-34 ans\n",
"7 Yes Dead 57.5 55-65 ans\n",
"8 Yes Alive 24.8 18-34 ans\n",
"9 Yes Alive 49.5 35-54 ans\n",
"10 Yes Alive 30.0 18-34 ans\n",
"11 No Dead 66.0 >65 ans\n",
"12 Yes Alive 49.2 35-54 ans\n",
"13 No Alive 58.4 55-65 ans\n",
"14 No Dead 60.6 55-65 ans\n",
"15 No Alive 25.1 18-34 ans\n",
"16 No Alive 43.5 35-54 ans\n",
"17 No Alive 27.1 18-34 ans\n",
"18 No Alive 58.3 55-65 ans\n",
"19 Yes Alive 65.7 >65 ans\n",
"20 No Dead 73.2 >65 ans\n",
"21 Yes Alive 38.3 35-54 ans\n",
"22 No Alive 33.4 18-34 ans\n",
"23 Yes Dead 62.3 55-65 ans\n",
"24 No Alive 18.0 18-34 ans\n",
"25 No Alive 56.2 55-65 ans\n",
"26 Yes Alive 59.2 55-65 ans\n",
"27 No Alive 25.8 18-34 ans\n",
"28 No Dead 36.9 35-54 ans\n",
"29 No Alive 20.2 18-34 ans\n",
"... ... ... ... ...\n",
"1284 Yes Dead 36.0 35-54 ans\n",
"1285 Yes Alive 48.3 35-54 ans\n",
"1286 No Alive 63.1 55-65 ans\n",
"1287 No Alive 60.8 55-65 ans\n",
"1288 Yes Dead 39.3 35-54 ans\n",
"1289 No Alive 36.7 35-54 ans\n",
"1290 No Alive 63.8 55-65 ans\n",
"1291 No Dead 71.3 >65 ans\n",
"1292 No Alive 57.7 55-65 ans\n",
"1293 No Alive 63.2 55-65 ans\n",
"1294 No Alive 46.6 35-54 ans\n",
"1295 Yes Dead 82.4 >65 ans\n",
"1296 Yes Alive 38.3 35-54 ans\n",
"1297 Yes Alive 32.7 18-34 ans\n",
"1298 No Alive 39.7 35-54 ans\n",
"1299 Yes Dead 60.0 55-65 ans\n",
"1300 No Dead 71.0 >65 ans\n",
"1301 No Alive 20.5 18-34 ans\n",
"1302 No Alive 44.4 35-54 ans\n",
"1303 Yes Alive 31.2 18-34 ans\n",
"1304 Yes Alive 47.8 35-54 ans\n",
"1305 Yes Alive 60.9 55-65 ans\n",
"1306 No Dead 61.4 55-65 ans\n",
"1307 Yes Alive 43.0 35-54 ans\n",
"1308 No Alive 42.1 35-54 ans\n",
"1309 Yes Alive 35.9 35-54 ans\n",
"1310 No Alive 22.3 18-34 ans\n",
"1311 Yes Dead 62.1 55-65 ans\n",
"1312 No Dead 88.6 >65 ans\n",
"1313 No Alive 39.1 35-54 ans\n",
"\n",
"[1314 rows x 4 columns]"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"donnees"
]
},
{
"cell_type": "code",
"execution_count": 84,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</th>\n",
" <th>ratio_deces</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>No</th>\n",
" <td>221</td>\n",
" <td>6</td>\n",
" <td>227</td>\n",
" <td>0.026432</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>182</td>\n",
" <td>7</td>\n",
" <td>189</td>\n",
" <td>0.037037</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>403</td>\n",
" <td>13</td>\n",
" <td>416</td>\n",
" <td>0.031250</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All ratio_deces\n",
"Smoker \n",
"No 221 6 227 0.026432\n",
"Yes 182 7 189 0.037037\n",
"All 403 13 416 0.031250"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table18_34 = pd.pivot_table(donnees[donnees['Age']<35],index = 'Smoker',values='Age', columns='Status', aggfunc='count', margins=True)\n",
"table18_34['ratio_deces'] = table18_34['Dead']/table18_34['All']\n",
"table18_34"
]
},
{
"cell_type": "code",
"execution_count": 86,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</th>\n",
" <th>ratio_deces</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>No</th>\n",
" <td>172</td>\n",
" <td>19</td>\n",
" <td>191</td>\n",
" <td>0.099476</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>190</td>\n",
" <td>39</td>\n",
" <td>229</td>\n",
" <td>0.170306</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>362</td>\n",
" <td>58</td>\n",
" <td>420</td>\n",
" <td>0.138095</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All ratio_deces\n",
"Smoker \n",
"No 172 19 191 0.099476\n",
"Yes 190 39 229 0.170306\n",
"All 362 58 420 0.138095"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table35_54 = pd.pivot_table(donnees[(donnees['Age']>=35) & (donnees['Age']<55)],index = 'Smoker',values='Age', columns='Status', aggfunc='count', margins=True)\n",
"table35_54['ratio_deces'] = table35_54['Dead']/table35_54['All']\n",
"table35_54"
]
},
{
"cell_type": "code",
"execution_count": 87,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</th>\n",
" <th>ratio_deces</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>No</th>\n",
" <td>82</td>\n",
" <td>49</td>\n",
" <td>131</td>\n",
" <td>0.374046</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>65</td>\n",
" <td>53</td>\n",
" <td>118</td>\n",
" <td>0.449153</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>147</td>\n",
" <td>102</td>\n",
" <td>249</td>\n",
" <td>0.409639</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All ratio_deces\n",
"Smoker \n",
"No 82 49 131 0.374046\n",
"Yes 65 53 118 0.449153\n",
"All 147 102 249 0.409639"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table55_65 = pd.pivot_table(donnees[(donnees['Age']>=55) & (donnees['Age']<66)],index = 'Smoker',values='Age', columns='Status', aggfunc='count', margins=True)\n",
"table55_65['ratio_deces'] = table55_65['Dead']/table55_65['All']\n",
"table55_65"
]
},
{
"cell_type": "code",
"execution_count": 88,
"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>Status</th>\n",
" <th>Alive</th>\n",
" <th>Dead</th>\n",
" <th>All</th>\n",
" <th>ratio_deces</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Smoker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>No</th>\n",
" <td>27</td>\n",
" <td>165</td>\n",
" <td>192</td>\n",
" <td>0.859375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yes</th>\n",
" <td>7</td>\n",
" <td>42</td>\n",
" <td>49</td>\n",
" <td>0.857143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <td>34</td>\n",
" <td>207</td>\n",
" <td>241</td>\n",
" <td>0.858921</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Status Alive Dead All ratio_deces\n",
"Smoker \n",
"No 27 165 192 0.859375\n",
"Yes 7 42 49 0.857143\n",
"All 34 207 241 0.858921"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table65plus = pd.pivot_table(donnees[(donnees['Age']>65)],index = 'Smoker',values='Age', columns='Status', aggfunc='count', margins=True)\n",
"table65plus['ratio_deces'] = table65plus['Dead']/table65plus['All']\n",
"table65plus"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On remarque que dans chaque tranche d'age, les fumeuses ont un taux de décès plus fort. La tendance s'inverse quand on ne regarde plus l'âge car dans nos données les fumeuses sont plutôt plus jeunes que les non fumeuses."
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7ef506e5c0>"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAANgCAYAAABk3r9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3X901dWd7//XhiSaHCwkcEgF0UiE2MhIdCJTtRWDaO3UguNUade3s7L49oeddevcVm9bZ1artWUV59uv1plZ61vt7Sy++a65M4M4nZpLF94iDeltkUKq0ULkgAcC4YfhmBPRnAQTzP7+weZMP1znirM+J3v7yfOxFutNYmJea/FHXmt/9mdvY60VAAAAJtYU3wEAAAAmI0oYAACAB5QwAAAADyhhAAAAHlDCAAAAPKCEAQAAeEAJAwAA8IASBgAA4AElDAAAwIMy3wHOxaxZs2xdXZ3vGAAAAO/qt7/97WvW2vS7fd37ooTV1dWpq6vLdwwAAIB3ZYw5eC5fx+NIAAAADyhhAAAAHlDCAAAAPKCEAQAAeEAJAwAA8IASBgAA4AElDAAAwANKGAAAgAeUMAAAAA8oYQAAAB5QwgAAADyghAEAAHhACQMAAPCAEgYAAOABJQwAAMADShgAAIAHlDAAAAAPKGEAAAAeUMIAAAA8oIQBAAB4QAkDAADwgBIGAADgASUMAADAA0oYAACAB5QwAAAADyhhAAAAHlDCAAAAPKCEAQAAeEAJAwAA8IASBgAA4AElDAAAwIOSljBjzH82xuwyxuw2xnzFfa7GGLPZGLPPzepSZgAAAAhRyUqYMWaRpC9IWiJpsaTbjDELJN0vaYu1doGkLe5jAACASaWUK2EfkrTdWjtsrT0lqVPSn0haKanNfU2bpNtLmAEAACBIpSxhuyTdYIyZaYypkvTHkuZJqrXWHpMkN2e/0zcbY75ojOkyxnTlcrkSxjwtXxjVE51Z5QujJf9ZAAAAJSth1tqXJf21pM2SnpH0oqRT7+H7f2StbbbWNqfT6RKl/Dcbuvq0dtMebejqK/nPAgAAKCvl/9xa+/eS/l6SjDHfk3RYUr8x5kJr7TFjzIWSjpcyw7m6s3leZAIAAJRSqd+OnO3mxZLukPRPktoltbovaZX0dCkznKvB4VFt3z+gwWEeRwIAgNIr6UqYpH8xxsyUNCbpP1lrB40xD0t60hjzOUmHJN1Z4gznZM3GHnVkcpJ6tG71Et9xAABAwpX6ceRH3+FzA5JuKuXP/Y+4Z9kCHcoP655lC3xHAQAAkwAn5js7e/PK5gra2Zv3HQUAAEwCpX4c+b6xvLFW2/cPaHljre8oAABgEmAlzGnvPqKOTE7t3Ud8RwEAADEL8TxQSliROWsCAICkCPE8UB5HOq3X1amqYirnhAEAkEAhngdqrLW+M7yr5uZm29XV5TsGAADAuzLG/NZa2/xuX8fjSCfEZ8UAACC5KGFOiM+KAQBAPEJcbKGEOcsba9XSkOaICgAAEqht2wGt3bRHbdsO+I5SRAlz2ruPuiMqjvqOAgAAYhfeKQi8HekMuuXJwYCWKQEAQDxCPAWBlTBn/2tDkQkAAFBKlDDnoZWL1NKQ1kMrF/mOAgAAYhbiC3g8jnSqqyr04fkzVV1V4TsKAACIWYiHtbIS5oT41gQAAIhHTapCdy+tV00qnMUWSpgzMjoemQAAIDmyuSGtXrdD2Vw4e78pYU5lxdTIBAAAyfHg07vVkcnpwad3+45SRAlzVjTNUUtDWiua5viOAgAAYtZ44QWRGQI25jttv+5VRyanedW9+s7tvCEJAECSfOnGyzRz2nlBbcynhDm/3JeLTAAAkBxnNuaHhMeRzrc/eYVqUuX69iev8B0FAABMApQwJ9P/pvKFMWX63/QdBQAATAI8jnRCPMQNAAAkFyXMCfFZMQAASC4eRzr5wqie6MwqXxj1HQUAAEwClDCHa4sAAMBEooQ5I2PjkQkAAJIjxCdelLAzrI1OAACQGBu6+rR20x5t6OrzHaWIjflOZUVZZAIAgOQI8RQEGofTel2dqiqmBvWPAwAA4hHiKQiUMCfEfxwAAJBc7AkDAADwgBLmZHNDWr1uh7K5Id9RAADAJEAJc/7qJ79TRyanv/rJ73xHAQAAkwAlrMieNQEAAEqHEub8+dLLVJMq158vvcx3FAAAMAlQwpy253qVL4yp7blez0kAAMBkQAlzWq+tU02qXK3X1vmOAgAAJgFKmPO3v9infGFMf/uLfb6jAACASYAS5uTefCsyAQAASokS5nx35SLVpMr13ZWLfEcBAACTACXMyfS/qXxhTJn+N31HAQAAkwB3Rzoh3q4OAACSi5UwAACQePnCqJ7ozCpfGPUdpYgS5rRtO6C1m/aobdsB31EAAEDMNnT1ae2mPdrQ1ec7ShGPI53e1wqRCQAAkiPEbUeUMGfr3lxkAgCA5KhJVejupfW+Y0TwONK5dv7MyAQAACglSpgzODwWmQAAIDnYmB+wxRfNiEwAAJAcbMwP2Kol87Tv+JtatSScDXsAACAeIW7MZyXMebanXx2ZnJ7t6fcdBQAATAKUMGd5Y61aGtJa3ljrOwoAAIhZiOeBUsIcVsIAAEgyc9b0jz1hTojPigEAQDxar6tTVcXUoH7PG2ut7wzvqrm52XZ1dfmOAQAA8K6MMb+11ja/29fxONLJ5oa0et0OZXNDvqMAAIBJgBLmPPj0LnVkcnrw6V2+owAAgEmAEubMT0+LTAAAgFKihDnVVeWRCQAAkiPEa4t4O9JZ0TRXLx0+oRVNc31HAQAAMTtzbZEk3b203nOa0yhhTnv3EXVkcrryoiP66s0NvuMAAIAYhXgUFSWsKLxD3AAAQDxqUhXBrICdQQlzVjTN0UuHX9eKpjm+owAAgEmAjfkO1xYBAICJRAlzuMAbAIDkCvHtSEqYs35HnzoyOa3f0ec7CgAAiNmZtyM3dIXze549Yc72/a9FJgAASA7ejgzYgFueHAhomRIAAMQjxLcjeRzpXF8/MzIBAABKiRLmzKg6LzIBAEBysDE/ZJzVCgBAYrExP2T2rAkAABJjeWOttu8fCOooKlbCAABA4oV4KDsrYUUshQEAkFQcURGwyoqyyAQAAMnBERUBW7owrfp0SksXpn1HAQAAMePtyIA9ujmjbK6gRzdnfEcBAAAx4+3IgM2ZURmZAAAgOXg7MmAHBwqRCQAAkoO3IwPWUPsB/ebAoBpqP+A7CgAAiBlvRwasOlURmQAAIDl4OzJgK5rmqKUhrRVNc3xHAQAAMePtyICt39mnjkxO63eG89YEAACIB29HBmz3kRORCQAAkiPEPWGshDn33dKg+nRK993S4DsKAACI2Zk9YTUB7f2mhDk7e/PK5gra2Zv3HQUAAMSMPWEBW95Yq5aGdFCHuAEAgHiwJyxg7d1H1ZHJ6cqLjuqrNy/0HQcAAMSIPWFBs2dNAACA0mElzGm97lJVVZQF1ZABAEA8zjyOlBTMoa2UMCfEk3QBAEA8uMAbAADAAy7wBgAA8GDSbcw3xnzVGLPbGLPLGPNPxpjzjTE1xpjNxph9blaXMsO5CvH8EAAAEI9JdVirMWaupL+Q1GytXSRpqqRPS7pf0hZr7QJJW9zH3oV4fggAAEiuUj+OLJNUaYwZk1Ql6aikv5R0o/vvbZK2SvpGiXO8qxCXKQEAQHKVbCXMWntE0v8t6ZCkY5JOWGt/LqnWWnvMfc0xSbNLlQEAACBUpXwcWS1ppaRLJc2RlDLGfPY9fP8XjTFdxpiuXC5XqphFj23OaO2mPXpsc6bkPwsAAKCUG/OXSzpgrc1Za8ck/UTSdZL6jTEXSpKbx9/pm621P7LWNltrm9PpdAljnvbLfa9FJgAAQCmVsoQdkvRhY0yVMcZIuknSy5LaJbW6r2mV9HQJM5yzR+9qUn06pUfvavIdBQAATAIl25hvrf2NMeYpSc9LOiXpBUk/kjRN0pPGmM/pdFG7s1QZ3ourL6nWlvtu9B0DAABMEiV9O9Ja+6CkB8/69Fs6vSoWlHxhVBu6+nRn87ygzhABAADJxLVFTtu2A1q7aY/ath3wHQUAAEwClDBnZHQ8MgEAAEqJEuZUVkyNTAAAgFKihDkrmuaopSGtFU1zfEcBAAAxC/GOaEqY0959RB2ZnNq7j/iOAgAAYhbiHdGlvjvyfcScNQEAQFKEeEc0Jcxpva5OVRVTg/rHAQAA8ahJVejupfW+Y0TwOBIAAMADSpgT4rNiAACQXDyOdEJ8VgwAAJKLlTAAAAAPKGHO41uzWrtpjx7fmvUdBQAAxCybG9LqdTuUzQ35jlJECXNePPx6ZAIAgOR48Old6sjk9ODTu3xHKaKEOQ210yITAAAkR+OF0yMzBGzMd86vKItMAACQHF+6sV4zp1UE9QIejcOpLJ8SmQAAIDlCPKyVEuasaJqrlw6f0Iqmub6jAACASYBlH+fZnn51ZHJ6tqffdxQAADAJUMKc5Y21amlIa3ljre8oAAAgZvnCqJ7ozCpfGPUdpYgS5qzfcUgdmZzW7zjkOwoAAIhZiNcTsifMefHwicgEAADJEeL1hKyEOYvnzYhMAACQHGfejqxJVfiOUsRKmLPqmnna1/+mVl0TTkMGAADJxUqY0959RB2ZnNq7j/iOAgAAJgFKWJE5awIAAJQOJcxZ0TRHLQ1prWia4zsKAACIGUdUBIzDWgEASC6OqAjY8sZabd8/wGGtAAAkEEdUBGz9zr7Th7XuDKchAwCAeIR4RAUlzNl95ERkAgAAlBIlzLnvlgbVp1O675YG31EAAMAkQAlzdvbmlc0VtLM37zsKAACYBNiY74S4YQ8AACQXK2FO72sFPdnVp97XCr6jAACASYAS5tz7ZLeyuYLufbLbdxQAADAJUMKcGxakIxMAAKCUKGFO6/V1amlIq/X6Ot9RAABAzLi2KGAc1goAQHJxbVHAOKwVAIDkCvEUBFbCnC98dL5qUuX6wkfn+44CAABixrVFAWt7rlf5wpjanuv1nAQAAEwGPI50vnlbo6QeNwEAAEqLlTCnuqpCH54/U9VV4SxTAgCA5KKEOW3bDmjtpj1q23bAdxQAABAzjqgI2ODwWGQCAIDk4IiKgO1yR1Ps4ogKAAASJ8QjKihhTvlUE5kAACA5zhxRERIeRzrfuPVDqk+n9I1bP+Q7CgAAiBl7wgK2szevbK6gnb1531EAAEDM2BMWsOWNtdq+f0DLG2t9RwEAADELcU8YK2HOsz396sjk9GxPv+8oAAAgZiFeW8RKmMNKGAAAmEishDmshAEAgInESpgT4rNiAACQXKyEOYPDo9q+f0CDw+G8ugoAAOKRzQ1p9bodyuaGfEcpooQ5D/x0lzoyOT3w012+owAAgJit2dijjkxOazb2+I5SRAlzrpg7PTIBAEBy3LNsgerTKd2zbIHvKEWUMGfVNfPU0pDWqmvYEwYAQNJ07j2ubK6gzr3HfUcpooQ57d1H1ZHJqb37qO8oAAAgduas6R9vRxbZsyYAAEiK1uvqVFUxNahTEChhTut1l6qqoiyofxwAABCPMyfmh4QS5oT4jwMAAJKLPWEAAAAeUMKc5w8O6qZHtur5g4O+owAAgEmAEuZ8+R+fVzZX0Jf/8XnfUQAAwCRACXOMiU4AAIBSooQ5f/eZq1WfTunvPnO17ygAAGAS4O1I5+pLqrXlvht9xwAAAJMEK2FOvjCqJzqzyhdGfUcBAACTACXM2dDVp7Wb9mhDV5/vKAAAYBLgcaSzvLFW2/cPaHljre8oAABgEmAlzOECbwAAMJEoYUVc4A0AACYOjyMdLvAGAAATiRLmcIE3AACYSDyOdDiiAgCA5Arx9zwlzOGICgAAkivE3/M8jnTO7AVjTxgAAMkT4u95VsKcweFRbd8/oMHhcJYpAQBAPM7s/a5JVfiOUkQJc9Zs7FFHJqc1G3t8RwEAADFjT1jA7lm2QPXplO5ZtsB3FAAAELMQ94RRwpydvXllcwXt7M37jgIAAGK2vLFWLQ3poK4npIQ519TVqD6d0jV1Nb6jAACAmD3b06+OTE7P9vT7jlJECXMe3vSysrmCHt70su8oAAAgZnc2z9NffvzyoN6O5IgKxxgTmQAAIDlCvBmHlTDnG7dervp0St+49XLfUQAAwCRACXOe2fWqsrmCntn1qu8oAAAgZhxREbCeYyciEwAAJEeIR1SwJ8x5aOUirdnYo2/e1ug7CgAAiFmI1xZRwpzqqgp9eP5MVVeFc50BAACIBxvzAxbiMiUAAEguVsKc5Y212r5/IKiTdAEAQHKxEuaEeJIuAABILlbCnBA37AEAgOQq2UqYMabBGNP9e3/eMMZ8xRhTY4zZbIzZ52Z1qTK8F2c27NWk2JgPAABKr2QlzFqbsdY2WWubJP2hpGFJ/yrpfklbrLULJG1xHwMAAEwqE7Un7CZJWWvtQUkrJbW5z7dJun2CMgAAAARjokrYpyX9k/t7rbX2mCS5OXuCMgAAAASj5CXMGFMhaYWkDe/x+75ojOkyxnTlcrnShAMAAPBkIlbCPi7peWvtmbMf+o0xF0qSm8ff6ZustT+y1jZba5vT6fQExAQAAJg4E1HCPqN/exQpSe2SWt3fWyU9PQEZ3lWIt6sDAIDkKmkJM8ZUSbpZ0k9+79MPS7rZGLPP/beHS5nhXLVtO6C1m/aobdsB31EAAMAkUNLDWq21w5JmnvW5AZ1+WzIoI2PjkQkAAFBKXFt0hj1rAgAAlBAlzKmsmBKZAAAApcTdkU7rdZeqqqKMuyMBAMCEoIQ5Z+6OBAAAmAg8e3M4ogIAAEwkSpizoatPazft0YauPt9RAADAJMDjSOfMXjD2hAEAgIlACXPYEwYAACYSjyMBAAA8oIQ5bMwHAAATiRLmPL41q7Wb9ujxrVnfUQAAQMxCXGyhhDk9x05EJgAASI4QT0FgY77z0MpFWrOxR9+8rdF3FAAAELMQT0GghDnVVRX68PyZqq6q8B0FAADELMRTEHgc6YS4TAkAAJKLlTAnxGVKAACQXKyEAQAAeEAJcx7vdEdUdHJEBQAAKD1KmPNi3+uRCQAAUEqUMKehdlpkAgCA5OCw1oCdX1EWmQAAIDlCPAWBxuFUlk+JTAAAkBwhnoJA43CWLpyt+nRKSxfO9h0FAABMApQw5+9+sU/ZXEF/94t9vqMAAICY8TgyYKfvjOTuSAAAkijEx5GUMIe7IwEASC7ujgxYiMuUAAAguShhzvLGWrU0pLW8sdZ3FAAAEDPOCQtYe/dRdWRyau8+6jsKAACIWYhPvNgT5oyMnopMAACQHCFuzGclrMicNQEAAEqHEub0vzESmQAAIDl4HBmwrXtzkQkAAJKDx5EB+5h7K/JjvB0JAEDinDknrCYVznmglDDn/j9u1F9+/HLd/8ecmA8AQNJkc0NavW6Hsrkh31GKKGHO4PCotu8f0OBwOOeHAACAeKzZ2KOOTE5rNvb4jlLEnjDnzD+O1KN1q5f4jgMAAGIU4h3RlDDnnmULdCg/rHuWLfAdBQAAxCzEO6J5HOk8s+tVZXMFPbPrVd9RAABAzNq29Wrtpj1q29brO0oRJczpOpiPTAAAkBwh3oxDCXPKp06JTAAAkByVFWWRGYJwknj2jVsv19eeelHfuPVy31EAAEDMWq+rU1XFVA5rDVHn3uPK5grq3HvcdxQAABAzDmsN2MjoeGQCAACUEiUMAADAA0rYGeasCQAAUEKUMKeyfEpkAgAAlBJvRzqt112qqoqyoN6aAAAAyUUJc868NQEAADARePYGAADgASUMAADAA0oYAACAB5QwAAAADyhhAAAAHlDCAAAAPKCEOdnckFav26Fsbsh3FAAAMAlQwpw1G3vUkclpzcYe31EAAMAkwGGtzj3LFuhQflj3LFvgOwoAAJgEWAlzfvrCYWVzBf30hcO+owAAgJjlC6N6ojOrfGHUd5QiSpjzy32vRSYAAEiODV19WrtpjzZ09fmOUkQJcx69q0n16ZQevavJdxQAABCz5Y21amlIa3ljre8oRZQwAACQeO3dR9SRyam9+4jvKEWUMOfeJ7uVzRV075PdvqMAAICYHTtxMjJDQAlzbliQjkwAAJAcv3J7vn8V0N5vSpiz7PLZqkmVa9nls31HAQAAMZt1wXmRGQJKmPNg+27lC2N6sH237ygAACBml9deEJkhoIQ5f3RpTWQCAIDkOJgfjswQUMKcC2ecH5kAACA5GtwKWENAK2FcW+SsaJqrlw6f0Iqmub6jAACAmJ1fPjUyQ8BKmLN+xyF1ZHJav+OQ7ygAACB29qzpHyXM6To4GJkAACA5KivKIjME4STx7NTb45EJAACSo/W6OlVVTNWdzfN8RyliJcw5NW4jEwAAoJQoYc5rb74VmQAAIDke3vSy1m7ao4c3vew7ShElzDHGRCYAAEiOZ3Yfi8wQUMKcpQ3pyAQAAMlx5ZwZkRkCSphz4fTzIxMAACTHS0dORGYIeDvS4bBWAACSa+708/TGyVOaO50LvIPT3n1EHZmc2ruP+I4CAABitvCDH4jMEFDCisxZEwAAJEV334nIDAGPI50QD3EDAADxeGjFFbp3Q7ceWnGF7yhFrIQ5g8Oj2r5/QIPDo76jAACAmL3QN6h8YUwv9IVzPSElzHngp7vUkcnpgZ/u8h0FAADEbGRsPDJDQAlz6tPTIhMAACRHZfmUyAwBe8KK7FkTAAAkRet1l6qqoiyovd/h1EHP9r82HJkAACA5el8r6MmuPvW+VvAdpYgS5jy08gq1NKT10Mpw3poAAADx+PI/Pq9srqAv/+PzvqMU8TjSqU9P07rVS3zHAAAAJTBubWSGgJUwJ18Y1ROdWeULHFEBAEDS3NL4wcgMASthzoauPq3dtEeSdPfSes9pAABAnL5y80LNra4MamM+JcxZ3lir7fsHtLyx1ncUAAAwCfA40nlia1YdmZye2Jr1HQUAAMTs8a1Zrd20R48H9HueEuZsfrk/MgEAQHK8eHgwMkNACXN+cFeTalLl+sFdTb6jAACAmC2+qDoyQ1DSPWHGmBmSfixpkU4fRf9/SspIWi+pTlKvpLustd5r6ZXzZujuG+p15bwZvqMAAICYfenGes2cVhHUxvxSr4T9jaRnrLWXS1os6WVJ90vaYq1dIGmL+9i7tm0HtHbTHrVtO+A7CgAAiNng8Ki27x/Q4HA4R1GVrIQZYz4g6QZJfy9J1tpRa+3rklZKanNf1ibp9lJleC+OvX4yMgEAQHI8+PRudWRyevDp3b6jFJVyJWy+pJykdcaYF4wxPzbGpCTVWmuPSZKbs0uY4Zw9t38gMgEAQHLMmX5eZIaglCWsTNLVkn5orb1KUkHv4dGjMeaLxpguY0xXLpcrVcaiBbOnRSYAAEiOg/mRyAxBKUvYYUmHrbW/cR8/pdOlrN8Yc6EkuXn8nb7ZWvsja22ztbY5nU6XMOZpvz00GJkAACA5Fl80PTJDULISZq19VVKfMabBfeomST2S2iW1us+1Snq6VBnei4+5u6Q+FtCdUgAAIB6rllysloa0Vi252HeUolJfW3SPpP9mjKmQtF/Sap0ufk8aYz4n6ZCkO0uc4Zzc/8cfUv3saUG9ugoAAOLR3n1UHZmcrrzoqL5680LfcSSVuIRZa7slNb/Df7qplD/3P+LMq6vLG2tVk6rwHQcAAMRoZPTtyAwBJ+Y7D/x0lzoyOT3w012+owAAgJidHHs7MkNACXOumDs9MgEAQHJk+t+IzBBQwpxV18w7vWHvGvaEAQCQNA0f/EBkhoAS5jzb06+OTE7P9vT7jgIAAGJ2ftmUyAxBqd+OfN9Y3lhb3JgPAACS5eTYeGSGIJw66BkrYQAAJFd332BkhoCVMIeVMAAAkmtweCwyQ8BKmMNKGAAAyfX1jzWosnyKvv6xhnf/4glCCXOWN9aqpSHNShgAAAn0D785qJGxcf3Dbw76jlJECXPW7zikjkxO63cc8h0FAADEjBPzA7b9QD4yAQBAcpRNnRKZIQgniWevvj4SmQAAIDkWuRtxFgV0Mw4lzDHGRCYAAEiOEA9rDSeJZ1dfPCMyAQBAcpw8NR6ZIaCEOS+/+mZkAgCA5Nh15ERkhoAS5nz7k1eoJlWub3/yCt9RAADAJEAJc17oG1S+MKYXArrOAAAAxGPRnOmRGQJKmDMyOh6ZAAAgSexZ0z9K2BnmrAkAABIj0z8UmSGghDmV5VMiEwAAJMfii6ZHZghoHM7ShbNVn05p6cLZvqMAAICYrVpysVoa0lq15GLfUYooYc6jmzPK5gp6dHPGdxQAABCzEO+IpoQ5jRdOj0wAAJAcPcfejMwQUMKcWxd9UPXplG5d9EHfUQAAQMzuvXmh6tMp3XvzQt9RiihhziM/P/048pGf8zgSAICk6dybUzZXUOfenO8oRZQw5wp3q/oVAd2uDgAA4sI5YcG69Qr3OPIKHkcCAJA0K5rmqqUhrRVNc31HKaKEOX/9zMvK5gr662de9h0FAADErL37qDoyObV3H/UdpYgSVsSR+QAAJNVg4a3IDAElzPneHX+gloa0vnfHH/iOAgAAYrbr6BuRGQJKGAAASLxT4zYyQ0AJcx58erc6Mjk9+PRu31EAAEDMyqaYyAwBJcyZM+P8yAQAAMnRfEl1ZIagzHeAUOw6/HpkAgCA5Fi15GLtOz7EBd4hOpgfjkwAAJAcbb/uVUcmp7Zf9/qOUkQJcyrLp0YmAABIjl/uy0VmCChhTs20isgEAADJ8ehdTapPp/ToXU2+oxRRwpyhk29HJgAASI66WSnd1TxPdbNSvqMUUcKc5Y21kQkAAJLjsWf3au2mPXrs2b2+oxRRwpzbm+aqPp3S7QFd7AkAAOKx5eX+yAwBJcx5eNPpC7wf3sQF3gAAJM3088siMwSUMOf1kdHIBAAAyXFBZXlkhoAS5hx5fSQyAQBAcvz50stUkyrXny+9zHeUIkqYU1VWFpkAACA5ftj5ivKFMf2w8xXfUYooYc4f1lVHJgAASI6R0bcjMwSUMOflY29GJgAASI6yqVMiMwThJPHsB6tOn6T7g1XhnKQLAADi0XxJdWSGgA1QztWXVGvLfTf6jgEAAErgSzdeppnTztOdzfN8RymihAHoZms5AAAgAElEQVQAgMSrSVXo7qX1vmNE8DgSAADAg3ctYcaYWmPM3xtjNrmPG40xnyt9NAAAgOQ6l5Ww/1fS/5A0x328V9JXShUIAABgMjiXEjbLWvukpHFJstaekhTOIRsAAADvQ+dSwgrGmJmSrCQZYz4s6URJUwEAACTcubwdea+kdkn1xphfS0pL+lRJUwEAACTcu5Ywa+3zxpilkhokGUkZa+1YyZMBAAAk2LuWMGPMHWd9aqEx5oSk31lrj5cmFgAAQLKdy56wz0n6saT/w/35rzr9iPLXxpg/K2E2AACAWDx/cFA3PbJVzx8c9B2l6FxK2LikD1lr/9Ra+6eSGiW9JemPJH2jlOEmUr4wqic6s8oXRn1HAQAAMfvaUy8qmyvoa0+96DtK0bmUsDprbf/vfXxc0kJrbV5SYvaGbejq09pNe7Shq893FAAAELNvfaJRNalyfesTjb6jFJ3L25H/0xizUdIG9/GfSvqlMSYl6fWSJZtgZy70DOliTwAAEI9f7DmufGFMv9hzXDdePtt3HEnnVsL+k6Q7JH3EfbxD0oXW2oKkllIFm2ghXuwJAADi8ct9ucgMwbs+jrTWWklZnX70+CeSbpL0colzTTj2hAEAkFyP3tWk+nRKj97V5DtK0b+7EmaMWSjp05I+I2lA0npJxlqbmNWv3/f41qx+9D/3a2BoVH/1iQ/5jgMAAGJUNyulu5rnqW5WyneUov/dStgenV71+qS19iPW2r9Tgu+MfPHw65EJAACSo23bAa3dtEdt2w74jlL0vythfyrpVUkdxpj/aoy5SadPzE+khtoLIhMAACTHyNh4ZIbg3y1h1tp/tdauknS5pK2Sviqp1hjzQ2PMLROUbwLZsyYAAEiMAH/Nn8vG/IK19r9Za2+TdJGkbkn3lzzZBNt19I3IBAAAyVFZMSUyQ3AuR1QUuQNan3B/EibAigwAAGLRet2lqqooC+o80HDqoGfNl8yMTAAAgFJ6TythSbZqyTztO/6mVi0JpyEDAIB4tG07oL/Z8oqGR0/pqzc3+I4jiZWwovbuI+rI5NTefcR3FAAAEDtz1vSPEub0vjYcmQAAIDkuS6dUWT5Fl6XfH4e1Tiode/sjEwAAJMcD7bs1MjauB9p3+45SRAlzrp8/KzIBAEBy3LBgVmSGgBLmvHHyVGQCAIDkOK98amSGgBLmfPqaeaosn6JPX8PbkQAAJM2OA/nIDAElzHlsyz6NjI3rsS37fEcBAAAx++wfXawp5vQMBSXM+dYnGlWTKte3PtHoOwoAAIjZ/9OZ1bg9PUNBCXMy/W8qXxhTpv9N31EAAEDMHvrkFaosn6KHPnmF7yhFlDDnmroa1adTuqauxncUAAAQs1dyQxoZG9cruSHfUYooYc5fP7NH2VxBf/3MHt9RAABAzEZGxyMzBJSwInvWBAAASVFZMTUyQ8AF3s43bv2QvvbUi/rGrR/yHQUAAMSs9bo6VVVM1Z3N4RxFxUqY07k3p2yuoM69Od9RAADAJEAJc0ZGT0UmAABIjrZtvVq7aY/atvX6jlJECXMqK8oiEwAAJEl4e79pHE6Iz4oBAEA8VjTN1UuHT2hF01zfUYpYCXNqUhW6e2m9alIVvqMAAICYrd/Zp45MTut39vmOUkQJc7K5Ia1et0PZgA5xAwAA8dh5YCAyQ0AJc9Zs7FFHJqc1G3t8RwEAADF720ZnCNgT5nzztkZJPW4CAIBEsTY6A8BKmHNieEyH8sM6MTzmOwoAAIhZiCfmU8Kcrz31orK5gr721Iu+owAAgJh9744r1dKQ1vfuuNJ3lKKSljBjTK8x5nfGmG5jTJf7XI0xZrMxZp+b1aXMcK6+9YlG1aTK9a1P8DgSAICkqU9P07rVS1SfnuY7StFErIS1WGubrLXN7uP7JW2x1i6QtMV97N0LfYPKF8b0Qt+g7ygAACBmzx8c1E2PbNXzB8P5Pe/jceRKSW3u722SbveQ4R2YsyYAAEiKe5/sVjZX0L1PdvuOUlTqtyOtpJ8bY6ykJ6y1P5JUa609JknW2mPGmNklznBOODEfAIDkumHBLPUOHNINC2b5jlJU6hJ2vbX2qCtam40xe871G40xX5T0RUm6+OKLS5UPAABMAq3XX6q+wRG1Xn+p7yhFJX0caa096uZxSf8qaYmkfmPMhZLk5vF/53t/ZK1tttY2p9PpUsaUJG3o6tPaTXu0oSuc6wwAAEA82ruPqCOTU3v3Ed9Rikq2EmaMSUmaYq190/39FknfkdQuqVXSw24+XaoM78WZx5A8jgQAIHlGxsYjMwSlXAmrlfQrY8yLknZI+pm19hmdLl83G2P2SbrZfezd4PCotu8f0ODwqO8oAAAgbgGemF+ylTBr7X5Ji9/h8wOSbirVz/2POnN3pNSjdauX+I4DAABidNKtgJ2cJCth7yut19apJlWu1mvrfEcBAAAx+92R1yMzBJQw54edWeULY/phZ9Z3FAAAELOKsqmRGQJKmGPdM2Ib0LNiAAAQj8/+0cWqLJ+iz/5ROMdeUcKc+z/+IdWnU7r/4x/yHQUAAMTssS37NDI2rse27PMdpYgS5nTuPa5srqDOve94bBkAAHgf+/6nFqs+ndL3P/W/vDPoTalPzH/fGBkdj0wAAJAcV19SrS333eg7RgQrYQAAAB5QwpzKiqmRCQAAkiObG9LqdTuUzQ35jlJECXNWNM1RS0NaK5rm+I4CAABiduZQ9jUbe3xHKaKEOet39Kkjk9P6HVzgDQBA0nzztka1NKT1zdsafUcpooQ5PcdORCYAAEApUcKce29uUH06pXtvbvAdBQAAxOyr//y8OjI5ffWfn/cdpYgS5uzszSubK2hnb953FAAAELOD+ZHIDAElzGmovUA1qXI11F7gOwoAAIjZ36y6SjWpcv3Nqqt8RymihDnf/VmP8oUxffdn4bw1AQAA4nHlvBm6+4Z6XTlvhu8oRZQw51ufaFRNqlzf+kQ4b00AAIB4PL71Fa3dtEePb33Fd5QiSpiT6X9T+cKYMv1v+o4CAABi1nPszcgMASXMWd5Yq5aGtJY31vqOAgAAYvb5j1yqmlS5Pv+RS31HKaKEOe3dR9WRyam9+6jvKAAAIGY//tV+5Qtj+vGv9vuOUkQJc0ZG345MAACQHPPT0yIzBJQw5/XhtyITAAAkR3VVeWSGoMx3gFA8tz8fmQAAIDlWNM3VS4dPaEXTXN9RilgJc66tnxmZAAAgOULc+00Jc2ZUVkQmAABIEnvW9I/HkQAAIPFar7tUVRVlurN5nu8oRayEFYXXkAEAQHJRworMWRMAACTF41uz7tqirO8oRZQwp7JiamQCAIDkePHwYGSGgBLmrGiao5aGtFY0zfEdBQAAxOySmanIDAElzGnvPuJeXT3iOwoAAIjZwYFCZIaAEuYMFsYiEwAAJMfii6ojMwQcUeFkc0ORCQAAkuNLN9Zr5rQKjqgI0Rc+Ol81qXJ94aPzfUcBAAAxq0lV6O6l9apJhXMoOyXM+fGv9itfGNOPf7XfdxQAABCzfGFUT3RmlS+M+o5SRAlz5qenRSYAAEiODV19WrtpjzZ09fmOUsSeMOf8simRCQAAkuPMXjD2hIXImOgEAAAoIUqYU1k+JTIBAEBy8DgyYCua5uqlwye0ommu7ygAACBmyxtrtX3/gJY31vqOUsSyj/NsT786Mjk929PvOwoAAIjZ+h196sjktH5HOCthlDBneWOtWhrSQTVkAAAQj+37c5EZAkqY09591N0dedR3FAAAELMBdy3hQEDXE1LCiuxZEwAAJEXzJdWRGQI25jtszAcAILleGxqNzBCwEua0dx9xjyOP+I4CAABi9p3bF6mlIa3v3L7Id5QiSpgzMjYemQAAIDmqqyr04fkzVV3FBd7B4bBWAACS6/HOrNZu2qPHO7O+oxSxJ8xhTxgAAMn1Yt/rkRkCln2ctl/3qiOTU9uve31HAQAAMVt80fTIDAErYU5H5nhkAgCA5Fi15GLtOz6kVUsu9h2liJUwp6VhdmQCAIDkCPF6QlbCnK/cvFBzqyt1Z/M831EAAEDMGmovUE2qXA21F/iOUsRKmDM4PKrt+wc0OBzOIW4AACAeX3/qReULY/r6Uy/6jlJECXPWbOxRRyanNRt7fEcBAAAxGyiMRmYIeBzpfPO2Rkk9bgIAgCQZt9EZAlbCAABA4n3vTxapbIrR9/6Ea4uC88BPd6kjk9MDP93lOwoAAIjZkvkz9dEFs7Rk/kzfUYooYc4Vc6dHJgAASI4Q935TwpxV18xTS0Naq67hiAoAAJKm9do61aTK1Xptne8oRZQwp737qDoyObV3H/UdBQAAxOzRzRnlC2N6dHPGd5QiSliRPWsCAICkeOX4UGSGgBLmLF04W/XplJYu5NoiAACSJ7zFFkqY88jPM8rmCnrk5+EsUwIAgHjUzUxFZggoYU59elpkAgCA5Fg0d0ZkhoAS5lSnyiMTAAAkx8F8ITJDQAlzVjTNVUtDWiua5vqOAgAAYrb4ourIDAElzHm2p18dmZye7en3HQUAAMTs1kUfVH06pVsXfdB3lCJKmHNn8zz95ccv153NHNYKAEDSPLr59At4nBMWoMHhUW3fP6DB4VHfUQAAQMzmuxfv5gf0Ah4lzAnxTikAABCP88umRmYIynwHCMU9yxboUH5Y9yxb4DsKAACIWWXFlMgMQThJPOvcm1M2V1Dn3pzvKAAAIGZXzatWTapcV83j7cjgjIyeikwAAJAcD7bvVr4wpgfbd/uOUkQJKzJnTQAAkBRN86ZHZggoYc7JsbcjEwAAJMdAYTQyQ0AJc7r78pEJAACS46GVi9TSkNZDKxf5jlLE25HOQGEsMgEAQHLUp6dp3eolvmNEsBLmNF9SHZkAACA5srkhrV63Q9nckO8oRZQwp29wODIBAEByhHgoO48jnZNj45EJAACSI8RD2VkJc157863IBAAAybGzN69srqCdveG8gMdKmPP2uI1MAACQHHc2z4vMEFDCnPKyqZLG3AQAAElSk6rQ3UvrfceI4HGkc0tjbWQCAACUEithTuv1deobHFbr9XW+owAAgEmAlTCnvfuIOjI5tXcf8R0FAABMApSwIi7wBgAgqfKFUT3RmVU+oLsjeRzptF5Xp6qKqUG9NQEAAOLx8KaX9WTXYWVzQ/q/PrXYdxxJrIQVnXlroiZV4TsKAACI2f/Y/WpkhoAS5oS4TAkAAOLxhxdXR2YIKGFO27Zerd20R23ben1HAQAAMdt3fCgyQ0AJc0ZG345MAACQHC0NsyMzBGzMBwAAiRfieaCshDmVFVMiEwAAJMf6HX3qyOS0fkef7yhFJW8cxpipxpgXjDEb3cc1xpjNxph9bgaxQ25F01y1NKS1ommu7ygAACBmXQfzkRmCiVj2+c+SXv69j++XtMVau0DSFvexd5yYDwBAcpVNMZEZgpKWMGPMRZI+IenHv/fplZLa3N/bJN1eygznamRsPDIBAEBy/NmHL1Fl+RT92Ycv8R2lqNQrYY9J+rqk3282tdbaY5LkZhCvKfSfGIlMAACQHI9t2aeRsXE9tmWf7yhFJSthxpjbJB231v72P/j9XzTGdBljunK5XMzp/lede1+LTAAAkBzf/9Ri1adT+n4gVxZJpV0Ju17SCmNMr6R/lrTMGPMPkvqNMRdKkpvH3+mbrbU/stY2W2ub0+l0CWOe9t2VV6iyfIq+u/KKkv8sAAAwsa6+pFpb7rtRV18SxPuAkkpYwqy1f2mtvchaWyfp05J+Ya39rKR2Sa3uy1olPV2qDO/FK7khjYyN65VcOCfpAgCAeGRzQ1q9boeyAf2e93Eo1sOSbjbG7JN0s/vYOzbmAwCQXGs29qgjk9OajT2+oxRNyIn51tqtkra6vw9Iumkifu57cdJdV3SSa4sAAEice5Yt0KH8sO5ZtsB3lCKOh3f2vzYUmQAAIDl29uaVzRW0s3dyHdb6vvDQykVqaUjroZWLfEcBAAAxmzP9fFWWT9Gc6ef7jlJECXPq09O0bvUS1aen+Y4CAABi9kD7bo2MjeuB9t2+oxRRwpwQ35oAAADxuGHBrMgMASXMCfGtCQAAEI/pleWRGYIJeTvy/SDEtyYAAEA8Mv1DkRkCVsKczr05ZXMFde4t/RVJAABgYn3wA+dFZggoYc7I6KnIBAAAyfH8odcjMwSUMKeyoiwyAQBAclx98YzIDAElzFm6MK36dEpLF5b+snAAADCxDrxWiMwQUMKcNT/rUTZX0Jqf8XYkAABJMzg8FpkhoIQ5x994KzIBAEByfP1jDaosn6Kvf6zBd5QiSpjzt5+5SvXplP72M1f5jgIAAGK2vqtPI2PjWt/V5ztKESXMufqSam2570ZdfUm17ygAACBmjRdOj8wQUMKcfGFUT3RmlS+M+o4CAABidumsKpVNMbp0VpXvKEWUMOexZ/dq7aY9euzZvb6jAACAmH1nY49OjVt9J6DrCSlhTmcmF5kAACA5bmmcHZkhoIQ5/+WWhaosn6L/cstC31EAAEDM/mJ5g1oa0vqL5bwdGZz1XYfdWxOHfUcBAAAxa+8+qo5MTu3dR31HKaKEOY0XXhCZAAAgSexZ0z8uSnS+dONlmjntPN3ZPM93FAAAELOr5lWrJlWuq+aFcxQVK2FOTapCdy+tV02qwncUAAAQs+/+rEf5wpi+G9D1hJQwAACQeF+5aYEqy6foKzct8B2liBLmZHNDWr1uh7K5Id9RAABAzH7ywhGNjI3rJy8c8R2liBLmrNnYo45MTmsCOsQNAADEo/XaOtWkytV6bZ3vKEWUMOeeZQtUn07pnmXhLFMCAIB4/LAzq3xhTD/szPqOUkQJc57Z9aqyuYKe2fWq7ygAACBmI6NjkRkCSpizff9AZAIAgOQomzo1MkNACXOOvT4SmQAAIDkWzZ0emSGghDkV5VMiEwAAJMf55VMjMwQ0DufLLZepbIrRl1su8x0FAADE7OTY25EZAkqY8+NfHdCpcasf/+qA7ygAACBm2eNDkRkCSpjz/U8tVn06pe9/arHvKAAAIGa3XXmhyqYY3Xblhb6jFFHCnKsvqdaW+27U1ZeEc7EnAACIx8PP7NGpcauHn9njO0oRJQwAACRe7QXnRWYIKGEOd0cCAJBc084vj8wQUMKcB5/epY5MTg8+vct3FAAAELPL0tMiMwSUMGe++0eZH9A/DgAAiMfREyORGQJK2BnWRicAAEiMVc3zVFk+Raua5/mOUkQJczL9Q5EJAACS45HNezUyNq5HNu/1HaWIEuYsvmh6ZAIAgORYfNEHIjMEZb4DhGLVkou17/iQVi252HcUAAAQs1ffGI3MELAS5rR3H1VHJqf27qO+owAAgJiF+MSLlTBnZPRUZAIAgOQI8YkXK2HOybHxyAQAAMnxbE+/OjI5PdvT7ztKESXM2XX0RGQCAIDkaKi9QDWpcjXUXuA7ShElzDn19nhkAgCA5Pjuz3qUL4zpuz/r8R2liBLmVFaURSYAAEiO739qserTKX3/U4t9RymihDnfu+MP1NKQ1vfu+APfUQAAQMzqZqV0V/M81c1K+Y5SxLKPU5+epnWrl/iOAQAASqBtW6/+Zss+DY++ra/evNB3HEmshBXlC6N6ojOrfCGcQ9wAAEA8RkbfjswQUMKcDV19WrtpjzZ09fmOAgAAYnZy7FRkhoDHkc7yxlpt3z+g5Y21vqMAAICY7X9tODJDwEqYw7VFAAAk1+c/cqlqUuX6/Ecu9R2liBLmHDsxEpkAACA52p7rVb4wprbnej0n+Tc8jnR+sz8fmQAAIDnuWbZAh/LDumfZAt9RilgJc36wqkn16ZR+sKrJdxQAABCzZ3a/qmyuoGd2v+o7ShElzJleVa6La6o0varcdxQAABCz3UdORGYIKGHOmo096sjktGZjOHdKAQCAeNx3S4Pq0yndd0uD7yhFlDDnjqvmqrJ8iu64aq7vKAAAIGY8jgzYY1v2aWRsXI9t2ec7CgAAiFn3ocHIDAElzPnKTQtUWT5FX7kpnLcmAABAPC6/8AORGQJKmLNuW69Gxsa1bluv7ygAACBu9qwZAEqY0//GycgEAADJkel/MzJDQAlzrr9sVmQCAIDkWHzR9MgMASXMmVFVEZkAACA5rqufpZpUua6rD2exhRLmnBw9FZkAACA5vv4vLylfGNPX/+Ul31GKKGHOrqNvRCYAAEiOwaG3IjMElDDn5NjbkQkAAJLjpsbayAwBJcwZLIxFJgAASI7ZF5wfmSGghDkfXTArMgEAQHJwREXAeDsSAIDkqq4qj8wQUMKKAjxKFwAAxOI3B/KRGQJK2BnGRCcAAEiMH9zVpJpUuX5wV5PvKEWUMOf14dHIBAAAyXHlvBm6+4Z6XTlvhu8oRZQw57nsQGQCAIDk2NDVp7Wb9mhDV5/vKEVlvgOEouXy2fr/njuolstn+44CAABidmfzvMgMASthzrKG2apJlWtZAyUMAICkqUlV6O6l9apJhXMKAiXM+fZ/3618YUzf/u+7fUcBAAAxyxdG9URnVvlCOHu/KWHODQvSkQkAAJKDPWEB+8rNCzW3ujKoZ8UAACAe7AkDAADwYHB4VNv3D2gwoKOoKGFO27YDWrtpj9q2HfAdBQAAxGzNxh51ZHJas7HHd5QiSpgzMjYemQAAIDlar61TTapcrdfW+Y5SRAk7w9roBAAAifHo5ozyhTE9ujnjO0oRJcyprCiLTAAAkBwHBgqRGQJKmLN0YVr16ZSWLuSICgAAkuYj9bMiMwSUMOeRn2eUzRX0yM/DWaYEAADxGHCHtA5wWGt45s6ojEwAAJAcTRdXR2YI2ADlvJIbikwAAJAcX1par5mpCg5rBQAAmOwoYc6iOR+ITAAAkBxt23rdoey9vqMUUcKc88vLIhMAACTHYOGtyAwBJcyprJgamQAAIDl2HX0jMkNQsmUfY8z5kn4p6Tz3c56y1j5ojKmRtF5SnaReSXdZawdLleNctV5Xp6qKqUFt2AMAAMlVypWwtyQts9YultQk6VZjzIcl3S9pi7V2gaQt7mPvalIVuntpvWpSFb6jAACAmF02e1pkhqBkJcyedua8h3L3x0paKanNfb5N0u2lyvBeZHNDWr1uh7IcUQEAQOIcfX0kMkNQ0j1hxpipxphuScclbbbW/kZSrbX2mCS5ObuUGc7VX/3kd+rI5PRXP/md7ygAACBmn//IfNWkyvX5j8z3HaWopCXMWvu2tbZJ0kWSlhhjFp3r9xpjvmiM6TLGdOVyudKFdEZPvR2ZAAAgOX7Y+YryhTH9sPMV31GKJuTtSGvt65K2SrpVUr8x5kJJcvP4v/M9P7LWNltrm9Pp0l+qvaD2gsgEAADJMTL6dmSGoGQlzBiTNsbMcH+vlLRc0h5J7ZJa3Ze1Snq6VBnei1eOD0UmAABIjpPuSdfJgJ54lfJk0gsltRljpup02XvSWrvRGPOcpCeNMZ+TdEjSnSXMAAAAoFdPvBWZIShZCbPWviTpqnf4/ICkm0r1c/+jFs2ZrucPva5Fc6b7jgIAAGJ25dzp+lV2QFfODef3PCfmAwCAxNt97I3IDAElzMn0vxGZAAAgOX5wV5NqUuX6wV1NvqMUcVu1s/iiav3mwKAWX1TtOwoAAIjZjZfP1vPfusV3jAhKmPOlG+s1c1oFd0cCAJBA+cLo/9/e/QdXVd55HP98A0mBsAUCKSIGaTMIBYpgg1b7QxHtYnXF7Zbq7rZ12c60TrtMHbqu1rawLY52x5F16rZLO91atna0hbKodWkFBbodihD5GSIBL0ICUriQEOEGTCDP/pGHuxxWy6Xee5/Due/XjPNN7j0xH3gm3E/OOfccLapv0Yy6mtjcopDDkQAAIPEWrtmth5Zt18I1u0NHyaKEeYvqW/TQsu1aVN8SOgoAAMiztkxnZMYBhyO9G8YO1dpdh3XD2KGhowAAgDxreL09MuOAPWHeisYDWtmU1orGA6GjAACAEsCeMO/0CfmcmA8AQPLUXVqlDc1HVHdpVegoWZQwb/ehjH5R36LJI6ti864JAACQH3G8CgKHI717Fm9WKp3RPYs3h44CAADyrKqyQl+8tjZWO1ooYd7dU0epb3mZ7p46KnQUAABQAihh3lPrW3S8q1tPrecSFQAAJE0qfUwzH1+nVPpY6ChZlDBvnL+r+rgY3V0dAADkx9ynt2llU1pzn94WOkoWJ+Z7d11bq8GV8TphDwAA5Mf7hvTT717tmXFBCfNOn7AHAACSyM6a4XE40ovjsWIAAJAfXDE/xh74VaNWNqX1wK8aQ0cBAAB5dvLUqciMAw5Het+4ZaykRj8BAECiWFl0xkB8kgAAABRI7zKLzDighHkcjgQAILnGX/zuyIwDDkd6HI4EACC5+lT0jsw4YE8YAABIvBOdJyMzDihh3v1LtmhlU1r3L9kSOgoAAMizpgPHIjMOKGFe1ykXmQAAIDlGD+0fmXFACfNqBvWJTAAAkCBm0RkDlDBvQ3N7ZAIAgOTY5e+IsytGd8ahhHlXjBgYmQAAIDlm3zhatdWVmn3j6NBRsihhXnNrR2QCAIDkWL+7Val0Rut3t4aOkkUJ88wfI7YYHSsGAAD5cfGAPupbXqaLB8Tn3G9KmFczqG9kAgCA5Jj77DYd7+rW3Ge3hY6SRQnzNjQfiUwAAJAc82dMVFVluebPmBg6SlZ8rt0f2BUjBqql7Tgn5gMAkEDXjXmPNnzz46FjRLAnzDuc6YxMAACQHKu2H9QV857Xqu0HQ0fJooR535o+XlNGV+tb08eHjgIAAPJs9qJNas10afaiTaGjZFHCvJbDHdq894haDnOJCgAAkiaO54SZc/G/V2JdXZ2rr68v6PeY9O3n1dbRpUH9yrVxTryOGQMAgAuHmb3snKs713bsCfMm1QyMTAAAgEKihHkN+9ojEwAAJEcqfUwzH1+nFPeOjJ+OrlORCQAAkmPO0gatbOMe/zkAABAwSURBVEprztKG0FGyKGHelSOrIhMAACTHuOEDIjMOKGHerkOZyAQAAMkxbdxFqq2u1LRxF4WOkkUJ875642XqW16mr954WegoAAAgzx57cadS6Ywee3Fn6ChZlDBvycZ9Ot7VrSUb94WOAgAA8uwbt4zVlNHV+sYtY0NHyeLekd6s60epubVDs64fFToKAADIs/aOLjW3dqi9oyt0lCz2hHlLN+5TKp3RUvaEAQCQOPcs3qxUOqN7Fm8OHSWLEuatbDoYmQAAIDm+efNYVVWW65s3x+dwJCXMu7p2cGQCAIDk2NjSptZMlza2tIWOkkUJ84YN6BOZAAAgOY53dUdmHHBivnfrxOHasrddt04cHjoKAADIs77lZZEZB/FJEtiKxgNa2ZTWisYDoaMAAIA8m1QzSFWV5ZpUMyh0lCxKmDd5ZJVqqys1mdsWAQCQOPOea1RrpkvznmsMHSWLEubNX75DqXRG85fvCB0FAADkGe+OjLGLB7wrMgEAQHKs2XVYrZkurdl1OHSULEqY92o6E5kAACA51qYORWYcUMK88l5lkQkAAJLj0LHOyIwDGod377Qxqq2u1L3TxoSOAgAA8uwjo4ZEZhxQwrzVOw4qlc5o9Q5uWwQAQNIMG9A3MuOAi7V6bf6u6m0xurs6AADIjzuvGal+Fb00o64mdJQs9oR5DfvaIxMAACTH7kMZ/aK+RbsPxecNeJQwAACQePcs3qxUOqN7Fm8OHSWLEubVXVoVmQAAIDm4WGuMXVM7WFWV5bqmdnDoKAAAIM+aDhxVa6ZLTQeOho6SRQnzvr50q1ozXfr60q2howAAgDyL4z2iKWFeZ1d3ZAIAgOSI4z2iKWFeVf+KyAQAAMkRx3tEU8K8tkxnZAIAgOR4vf3NyIwDLtbqdTsXmQAAIDlm33iZ9rcf1+wbLwsdJYs9Yd67yntFJgAASI71u1uVSme0fndr6ChZlDDvvmlj1Le8TPdxA28AABLnhrFDNWV0tW4YOzR0lCxKmPfES8063tWtJ15qDh0FAADk2TOb9mllU1rPbNoXOkoWJcw7eqIrMgEAQJLYWTM8Tsz3jp44GZkAACA57rxmpPpV9NKMuprQUbLYE+bNmz5eVZXlmjd9fOgoAACgBFDCvI0tR9Sa6dLGliOhowAAgDxbuOY1PbRsuxaueS10lCxKWJY7awIAgKRoy3RFZhxwTph368Th2rK3XbdOHB46CgAAyLNU+lhkxgF7wrwVjQe0simtFY0HQkcBAAB59u3bxmvK6Gp9+7b4nPvNnjDvhrFDtXbX4VhdxA0AAORHbXV/PT7zytAxItgT5rEnDACA5GrNdOoHq1NqzXSGjpJFCfPieDsDAACQHwtWpfTQsu1asCoVOkoWJcxjTxgAAMnVuL89MuOAc8K801fQjdOVdAEAQH7cXlejl/e06fYYvc6zJ8xr6+jU2l2H1dYRn2PFAAAgPx59YaeOd3Xr0Rd2ho6SRQnz5j7doJVNac19uiF0FAAAkGd3Tx2lvuVlunvqqNBRsihh3vuG9I9MAACQHE+8tEfHu7r1xEt7QkfJooR5fSp6RSYAAEgSO2uGRwnzjvjrhhyJ0fVDAABAfnzmqhHqW16mz1w1InSULEqYt253a2QCAIDkeGT5Dh3v6tYjy3eEjpJFCfPmf3qiaqsrNf/TE0NHAQAAefaxUdWRGQeUMAAAkHi3TRqu2upK3TZpeOgoWZQwb9aTG5RKZzTryQ2howAAgDx77MWdSqUzeuzF+FwnjCvme292nYpMAACQHLOuH6Xm1g7Nup7rhMVO715lkQkAAJLj1w37lUpn9OuG/aGjZBWscZhZjZmtNLNXzGybmX3FP15lZsvNbKefgwqV4Xxc9d5BkQkAAJKjcf/RyIyDQu72OSnpq86590v6kKQvm9lYSfdJesE5N0rSC/7z4HYeOBaZAAAgOW7+wEXqXWa6+QMXhY6SVbAS5pzb75zb4D8+KukVScMlTZe00G+2UNJthcpwPva0Ho9MAACQHA8/36ST3U4PP98UOkpWUU6AMrORkiZJeknSUOfcfqmnqEl6TzEynEulv11RJbctAgAgcebPmKiqynLNnxGf64EWvISZWX9Jv5R0t3PujfP4ui+YWb2Z1afT6cIF9KaNHxaZAAAgOWoG99PllwxUzeB+oaNkFbSEmVm5egrYz5xzS/zDB8xsmH9+mKSDb/W1zrkfOufqnHN11dWFv7ptHC/iBgAA8mPO0gatbEprztKG0FGyCvnuSJP0H5Jecc7NP+OpZyTd6T++U9LThcpwPh54rlGpdEYPPNcYOgoAAMizccMHRGYcFPJirR+W9FlJW81sk3/sfknfkfQLM/u8pGZJMwqYIWd/aD8RmQAAIDnuurZWgysrNKOuJnSUrIKVMOfc7yTZ2zw9tVDf90814ZJ36/X2E5pwybtDRwEAAHlWVVmhL15bGzpGBJeH9zbtfSMyAQBAcqTSxzTz8XVKpeNzPVBKmFd21gQAAMlx/5KtWtmU1v1LtoaOkkXn8L520xj1LS/T124aEzoKAADIO3fWDI8S5v107R4d7+rWT9fuCR0FAADk2YOfnKApo6v14CcnhI6SVch3R15QTpzsjkwAAJActdX99fjMK0PHiGBP2GnORScAAEABUcKy4nesGAAAJBclzOtbUR6ZAAAAhUQJ8+6dNka11ZW6dxrvjgQAIGlaM536weqUWjOdoaNkUcK81TvSSqUzWr0jHToKAADIswWrU3po2XYtWJ0KHSWLEua1dXRGJgAASI5NzW2RGQeUMC918FhkAgCA5Jg4YlBkxgHXCfPumFyjDc1tumNyfO6uDgAA8uOua2s1uLJCM+ri8zrPnjDv0Rd26nhXtx59YWfoKAAAIM+qKiv0xWtrVVVZETpKFiXMe/hTl6u2ulIPf+ry0FEAAECebdjTpqmPrNKGPZwTFjsjh1Tq03U1GjmkMnQUAACQZ1/62ctKpTP60s9eDh0lixLmLapv0UPLtmtRfUvoKAAAIM86Ok9FZhxwYr53+kS9OJ2wBwAA8uO7d0zS7EWbNH/GxNBRssxdADesrqurc/X19aFjAAAAnJOZveycqzvXdhyOBAAACIASBgAAEAAlDAAAIABKGAAAQACUMAAAgAAoYQAAAAFQwgAAAAKghAEAAARACQMAAAiAEgYAABAAJQwAACAAShgAAEAAlDAAAIAAKGEAAAABUMIAAAACoIQBAAAEQAkDAAAIgBIGAAAQACUMAAAgAEoYAABAAJQwAACAAChhAAAAAVDCAAAAAqCEAQAABEAJAwAACIASBgAAEAAlDAAAIABKGAAAQACUMAAAgAAoYQAAAAFQwgAAAAKghAEAAARACQMAAAiAEgYAABCAOedCZzgnM0tL2lOEbzVE0qEifB/kjjWJH9YknliX+GFN4qdYa3Kpc676XBtdECWsWMys3jlXFzoH/g9rEj+sSTyxLvHDmsRP3NaEw5EAAAABUMIAAAACoIRF/TB0APw/rEn8sCbxxLrED2sSP7FaE84JAwAACIA9YQAAAAGUXAkzs2lm1mRmr5rZfW/xvJnZd/3zW8zsihA5S00O6/K3fj22mNkaM7s8RM5Scq41OWO7yWZ2ysw+Vcx8pSiXNTGz68xsk5ltM7PVxc5YanL4t2uAmT1rZpv9mswMkbOUmNmPzeygmTW8zfOxeZ0vqRJmZr0kfU/STZLGSvprMxt71mY3SRrl//uCpH8vasgSlOO6vCbpWufcBEnzFLPj+kmT45qc3u5fJP2muAlLTy5rYmYDJX1f0q3OuXGSZhQ9aAnJ8efky5IanXOXS7pO0iNmVlHUoKXnJ5Km/ZHnY/M6X1IlTNKVkl51zu1yznVKekrS9LO2mS7pP12PtZIGmtmwYgctMedcF+fcGudcm/90raRLipyx1OTysyJJsyT9UtLBYoYrUbmsyd9IWuKca5Yk5xzrUli5rImT9GdmZpL6S2qVdLK4MUuLc+636vl7fjuxeZ0vtRI2XFLLGZ/v9Y+d7zbIr/P9O/+8pGUFTYRzromZDZf0l5IWFDFXKcvl5+QySYPMbJWZvWxmnytautKUy5r8m6T3S3pd0lZJX3HOdRcnHt5GbF7ne4f4pgHZWzx29ttDc9kG+ZXz37mZTVFPCftIQRMhlzV5VNK9zrlTPb/ko8ByWZPekj4oaaqkvpJ+b2ZrnXM7Ch2uROWyJn8uaZOk6yXVSlpuZv/jnHuj0OHwtmLzOl9qJWyvpJozPr9EPb+dnO82yK+c/s7NbIKkH0m6yTl3uEjZSlUua1In6SlfwIZI+oSZnXTOLS1OxJKT679fh5xzGUkZM/utpMslUcIKI5c1mSnpO67nelCvmtlrksZIWleciHgLsXmdL7XDkesljTKz9/oTI++Q9MxZ2zwj6XP+3RMfktTunNtf7KAl5pzrYmYjJC2R9Fl+qy+Kc66Jc+69zrmRzrmRkhZL+hIFrKBy+ffraUkfNbPeZtZP0lWSXilyzlKSy5o0q2fPpMxsqKTRknYVNSXOFpvX+ZLaE+acO2lm/6Ced3L1kvRj59w2M7vLP79A0n9L+oSkVyV1qOe3GBRQjusyR9JgSd/3e15OxukmrEmT45qgiHJZE+fcK2b2a0lbJHVL+pFz7i3fpo93Lsefk3mSfmJmW9VzGOxe59yhYKFLgJk9qZ53og4xs72S5koql+L3Os8V8wEAAAIotcORAAAAsUAJAwAACIASBgAAEAAlDAAAIABKGAAAQACUMAAXJDP7upltM7MtZrbJzK56h/+/68zsV/nKBwDnUlLXCQOQDGZ2taRbJF3hnHvTzIZIqgiYp7dzjpsyAzgv7AkDcCEapp7b87wpSc65Q865181st5k9aGa/N7N6M7vCzH5jZqnTF9D0V8l+2MwazGyrmd1+9v/czCab2UYze5+ZVZrZj81svX9sut/m78xskZk9K+n5Yv7hASQDe8IAXIielzTHzHZIWiHp58651f65Fufc1Wb2r5J+IunDkvpI2iZpgaRPSpqonnsqDpG03t9jUZJkZtdIekzSdOdcs5k9KOlF59zfm9lASevMbIXf/GpJE5xzrQX+8wJIIEoYgAuOc+6YmX1Q0kclTZH0czO7zz99+t59WyX1d84dlXTUzE74EvURSU86505JOmBmqyVNlvSGpPdL+qGkjzvnTt/Q9+OSbjWzf/Sf95E0wn+8nAIG4E9FCQNwQfIlapWkVf6+fHf6p970s/uMj09/3ls99+97O/vVU7ImSTpdwkzSXznnms7c0L8RIPMO/ggAShznhAG44JjZaDMbdcZDEyXtyfHLfyvpdjPrZWbVkj4maZ1/7oikmyU9aGbX+cd+I2mW+TvHm9mkd5ofACRKGIALU39JC82s0cy2SBor6Z9z/Nr/krRF0mZJL0r6J+fcH04/6Zw7IOkvJH3P7+2aJ6lc0hYza/CfA8A7Zs650BkAAABKDnvCAAAAAqCEAQAABEAJAwAACIASBgAAEAAlDAAAIABKGAAAQACUMAAAgAAoYQAAAAH8L/lwgMPeTaCgAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 720x1080 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"copy = donnees.copy()\n",
"copy['Smoker']=donnees['Smoker'].replace({'Yes':1, 'No':0})\n",
"copy.plot.scatter(x='Smoker', y='Age', figsize=(10,15),s=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Le graphe si dessus n'est pas si parlant, on peut sinon simplement calculer la proportion de fumeuses par tranche d'age et voir que cette proportion s'effondre pour les personnes de plus de 65 ans."
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tranche\n",
"18-34 ans 0.452500\n",
"35-54 ans 0.543578\n",
"55-65 ans 0.485232\n",
">65 ans 0.203320\n",
"Name: Smoker, dtype: float64"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"copy.groupby('tranche')['Smoker'].mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"hide_code_all_hidden": true,
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
"language": "python", "language": "python",
...@@ -16,10 +2252,9 @@ ...@@ -16,10 +2252,9 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.3" "version": "3.6.4"
} }
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment