régression logistique in progress ?

parent bcc3b457
......@@ -15,7 +15,9 @@
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd"
"import pandas as pd\n",
"import numpy as np\n",
"import statsmodels.api as sm"
]
},
{
......@@ -729,11 +731,11 @@
"source": [
"labels = 'Non-fumeurs', 'Fumeurs'\n",
"sizes = [non_smokers/total,(smokers/total)]\n",
"#explode = (0, 0.1, 0, 0) # only \"explode\" the 2nd slice (i.e. 'Hogs')\n",
"\n",
"\n",
"fig1, ax1 = plt.subplots()\n",
"ax1.pie(sizes, labels=labels,shadow=True,startangle=90,autopct='%1.1f%%')\n",
"ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.\n",
"ax1.axis('equal') \n",
"plt.title('Répartition de l\\'échantillon')\n",
"plt.show()\n"
]
......@@ -761,7 +763,7 @@
"\n",
"fig1, ax1 = plt.subplots()\n",
"ax1.pie(sizes, labels=labels,explode=explode,startangle=90,shadow=True,autopct='%1.1f%%',colors=('green','red'))\n",
"ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.\n",
"ax1.axis('equal') \n",
"plt.title('Mortalité échantillon de fumeurs')\n",
"plt.show()"
]
......@@ -789,7 +791,7 @@
"\n",
"fig1, ax1 = plt.subplots()\n",
"ax1.pie(sizes, labels=labels,explode=explode,startangle=90,shadow=True,autopct='%1.1f%%',colors=('green','red'))\n",
"ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.\n",
"ax1.axis('equal') \n",
"plt.title('Mortalité échantillon de non-fumeurs')\n",
"plt.show()"
]
......@@ -820,680 +822,540 @@
},
{
"cell_type": "code",
"execution_count": 27,
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"data.loc[data['Age']<35,'Categorie d\\'age'] = 'A'\n",
"data.loc[(data['Age']<55) & (data['Age']>=35),'Categorie d\\'age'] = 'B'\n",
"data.loc[(data['Age']<65) & (data['Age']>=55),'Categorie d\\'age'] = 'C'\n",
"data.loc[data['Age']>=65,'Categorie d\\'age'] = 'D'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On vérifie que la somme des sous-groupe soit bien égale au nombre total des donnés. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Categorie d'âge 18-34 35-54 55-64 65+ total\n",
"-------------------------------------------------------------------------------------------\n",
"Taille de l'échantillon 416 420 236 242 1314\n"
]
}
],
"source": [
"A_total=pd.DataFrame.sum((data['Categorie d\\'age']=='A'))\n",
"B_total=pd.DataFrame.sum((data['Categorie d\\'age']=='B'))\n",
"C_total=pd.DataFrame.sum((data['Categorie d\\'age']=='C'))\n",
"D_total=pd.DataFrame.sum((data['Categorie d\\'age']=='D'))\n",
"print('Categorie d\\'âge 18-34 35-54 55-64 65+ total')\n",
"print('-------------------------------------------------------------------------------------------')\n",
"print('Taille de l\\'échantillon ',A_total,' ',B_total,' ',C_total,' ',D_total,' ',A_total+B_total+C_total+D_total)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il ne semble pas y avoir d'erreur sur le découapage en sous-échantillons, on procède donc aux même analyses que précédement appliquées cette fois-ci par tranches d'âges."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Catégorie d'âge 18-34"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Fumeurs Non-fumeurs Total\n",
" ------------------------------------\n",
"Taille du groupe 189 227 416\n",
"Vivant 182 221 403\n",
"Mort 7 6 13\n",
"Mortalité 0.037 0.026 0.031\n"
]
}
],
"source": [
"A_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')& (data['Categorie d\\'age']=='A'))\n",
"A_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')& (data['Categorie d\\'age']=='A'))\n",
"A_total=A_smokers+A_non_smokers\n",
"\n",
"A_deaths_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='A'))\n",
"A_death_rate_smokers=A_deaths_smokers/A_smokers\n",
"A_deaths_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='A'))\n",
"A_death_rate_non_smokers=A_deaths_non_smokers/A_non_smokers\n",
"A_death_rate_total=(A_deaths_smokers+A_deaths_non_smokers)/A_total\n",
"\n",
"\n",
"print(' Fumeurs Non-fumeurs Total')\n",
"print(' ------------------------------------')\n",
"print('Taille du groupe ',A_smokers,' ',A_non_smokers,' ',A_total)\n",
"print('Vivant ',A_smokers-A_deaths_smokers,' ',A_non_smokers-A_deaths_non_smokers,' ',A_total-A_deaths_smokers-A_deaths_non_smokers)\n",
"print('Mort ',A_deaths_smokers,' ',A_deaths_non_smokers,' ',A_deaths_smokers+A_deaths_non_smokers)\n",
"print('Mortalité ',round(A_death_rate_smokers,3),' ',round(A_death_rate_non_smokers,3),' ',round(A_death_rate_total,3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Catégorie d'age 35-54"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Fumeurs Non-fumeurs Total\n",
" ------------------------------------\n",
"Taille du groupe 229 191 420\n",
"Vivant 190 172 362\n",
"Mort 39 19 58\n",
"Mortalité 0.17 0.099 0.138\n"
]
}
],
"source": [
"B_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')& (data['Categorie d\\'age']=='B'))\n",
"B_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')& (data['Categorie d\\'age']=='B'))\n",
"B_total=B_smokers+B_non_smokers\n",
"\n",
"B_deaths_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='B'))\n",
"B_death_rate_smokers=B_deaths_smokers/B_smokers\n",
"B_deaths_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='B'))\n",
"B_death_rate_non_smokers=B_deaths_non_smokers/B_non_smokers\n",
"B_death_rate_total=(B_deaths_smokers+B_deaths_non_smokers)/B_total\n",
"\n",
"\n",
"print(' Fumeurs Non-fumeurs Total')\n",
"print(' ------------------------------------')\n",
"print('Taille du groupe ',B_smokers,' ',B_non_smokers,' ',B_total)\n",
"print('Vivant ',B_smokers-B_deaths_smokers,' ',B_non_smokers-B_deaths_non_smokers,' ',B_total-B_deaths_smokers-B_deaths_non_smokers)\n",
"print('Mort ',B_deaths_smokers,' ',B_deaths_non_smokers,' ',B_deaths_smokers+B_deaths_non_smokers)\n",
"print('Mortalité ',round(B_death_rate_smokers,3),' ',round(B_death_rate_non_smokers,3),' ',round(B_death_rate_total,3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Catégorie d'age 55-64"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Fumeurs Non-fumeurs Total\n",
" ------------------------------------\n",
"Taille du groupe 115 121 236\n",
"Vivant 64 81 145\n",
"Mort 51 40 91\n",
"Mortalité 0.443 0.331 0.386\n"
]
}
],
"source": [
"C_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')& (data['Categorie d\\'age']=='C'))\n",
"C_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')& (data['Categorie d\\'age']=='C'))\n",
"C_total=C_smokers+C_non_smokers\n",
"\n",
"C_deaths_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='C'))\n",
"C_death_rate_smokers=C_deaths_smokers/C_smokers\n",
"C_deaths_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='C'))\n",
"C_death_rate_non_smokers=C_deaths_non_smokers/C_non_smokers\n",
"C_death_rate_total=(C_deaths_smokers+C_deaths_non_smokers)/C_total\n",
"\n",
"\n",
"print(' Fumeurs Non-fumeurs Total')\n",
"print(' ------------------------------------')\n",
"print('Taille du groupe ',C_smokers,' ',C_non_smokers,' ',C_total)\n",
"print('Vivant ',C_smokers-C_deaths_smokers,' ',C_non_smokers-C_deaths_non_smokers,' ',C_total-C_deaths_smokers-C_deaths_non_smokers)\n",
"print('Mort ',C_deaths_smokers,' ',C_deaths_non_smokers,' ',C_deaths_smokers+C_deaths_non_smokers)\n",
"print('Mortalité ',round(C_death_rate_smokers,3),' ',round(C_death_rate_non_smokers,3),' ',round(C_death_rate_total,3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Catégorie d'âge 65+"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Fumeurs Non-fumeurs Total\n",
" ------------------------------------\n",
"Taille du groupe 49 193 242\n",
"Vivant 7 28 35\n",
"Mort 42 165 207\n",
"Mortalité 0.857 0.855 0.855\n"
]
}
],
"source": [
"D_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')& (data['Categorie d\\'age']=='D'))\n",
"D_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')& (data['Categorie d\\'age']=='D'))\n",
"D_total=D_smokers+D_non_smokers\n",
"\n",
"D_deaths_smokers=pd.DataFrame.sum((data['Smoker']=='Yes')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='D'))\n",
"D_death_rate_smokers=D_deaths_smokers/D_smokers\n",
"D_deaths_non_smokers=pd.DataFrame.sum((data['Smoker']=='No')&(data['Status']=='Dead')&(data['Categorie d\\'age']=='D'))\n",
"D_death_rate_non_smokers=D_deaths_non_smokers/D_non_smokers\n",
"D_death_rate_total=(D_deaths_smokers+D_deaths_non_smokers)/D_total\n",
"\n",
"\n",
"print(' Fumeurs Non-fumeurs Total')\n",
"print(' ------------------------------------')\n",
"print('Taille du groupe ',D_smokers,' ',D_non_smokers,' ',D_total)\n",
"print('Vivant ',D_smokers-D_deaths_smokers,' ',D_non_smokers-D_deaths_non_smokers,' ',D_total-D_deaths_smokers-D_deaths_non_smokers)\n",
"print('Mort ',D_deaths_smokers,' ',D_deaths_non_smokers,' ',D_deaths_smokers+D_deaths_non_smokers)\n",
"print('Mortalité ',round(D_death_rate_smokers,3),' ',round(D_death_rate_non_smokers,3),' ',round(D_death_rate_total,3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Analyse"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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jBs3jvXr17NmzRratm27x6mrIlKPxrVJc/tb6q0p7UEl0ejRo3nsscfYsqXqEzhmzBguueQS3nnnHS666CKuvvrqymUbNmzgtdde4/nnn2fs2D0uPkxBQQG33nor559/PsXFxVUu/Fidzz//nFdffZV77rmHs846i1/84hcsWbKEd999l+LiYjZt2sRtt93GK6+8wuLFiyksLOQPf/hDrdu2aNEipk+fruQkIvVGe1BJ1Lp1ay655BImTJhQJZG88cYbPPPMMwD89Kc/5frrr69cdvbZZ5OVlUWPHj34+OOP9zmGs846CzOjd+/eHHroofTu3RuAnj17smbNGkpLSykpKeHkk08GoKysjJNOqv2q+kOHDq01OYo0Fsk+zl0Xa5qnrel6pwSVZNdccw19+/blsssui1smemp2s2bNKh9XnLDy61//mhdeCN4AxcXFNa4fe/WMivqysrKq1J2VlcWuXbvIzs5m4MCBTJ06dY96c3Jy2L17d7X1HnjggXG3R0QkFTTEl2QHH3ww5513Hg899FDlvG9/+9tMmzYNgMcee4xTTjmlxjpuv/12iouLq01OAIceeihLly5l9+7dPPvss3WK78QTT+T1119n5cqVAHz11Ve8//77QHA15UWLFgHw9NNP16leEZFka5B7UImcFp5K1113HRMnTqycnjBhAiNHjuR3v/td5UkS+2L8+PEMGTKETp060atXr8oTJhLRrl07HnnkES644AJ27NgBwG233cbRRx/NzTffzOWXX85vf/vbyotGioikS4P8HZTUL/W/NDbpPQZ1YdraBpJyFp9+ByUiIvs1JSgREclISlAiIpKRlKBERCQjKUGJiEhGSmmCMrMzzWy5ma00sz2u42NmbczsH2b2tpktMbP4v24VEZFGJWW/gzKzbGASMBAoBRaY2Qx3L4kUGw2UuPtZZtYOWG5mj7l72T41nuyLKSZwWmV2dnblZYUAnnvuOfLy8pIbh4hII5LKH+r2B1a6+yoAM5sG/AiIJigHWllw7Z6WwGfAfnk/hxYtWsS98kO6lJeXk52dne4wRET2SiqH+DoCayPTpeG8qInAMcB64F3g3919d2xFZnaFmS00s4UbN25MVbxJ98gjjzBmzJjK6SFDhjB37lwAWrZsyQ033MDxxx/PGWecwfz58xkwYABdu3ZlxowZQJBgfvWrX9GvXz/6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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"labels = ['18-34', '35-54', '55-64', '65+']\n",
"nn_smkers_dth_rt = [A_death_rate_non_smokers,B_death_rate_non_smokers,C_death_rate_non_smokers,D_death_rate_non_smokers]\n",
"nn_smkers_dth_rt = [round(num, 2) for num in nn_smkers_dth_rt]\n",
"smkers_dth_rt = [A_death_rate_smokers,B_death_rate_smokers,C_death_rate_smokers,D_death_rate_smokers]\n",
"smkers_dth_rt = [round(num, 2) for num in smkers_dth_rt]\n",
"\n",
"x = np.arange(len(labels)) # the label locations\n",
"width = 0.35 # the width of the bars\n",
"\n",
"fig, ax = plt.subplots()\n",
"rects1 = ax.bar(x - width/2, nn_smkers_dth_rt, width, label='Non-fumeur')\n",
"rects2 = ax.bar(x + width/2, smkers_dth_rt, width, label='Fumeur')\n",
"\n",
"# Add some text for labels, title and custom x-axis tick labels, etc.\n",
"ax.set_ylabel('Taux de mortalité')\n",
"ax.set_title('Taux de mortalité par tabagisme et catégorie d\\'âge')\n",
"ax.set_xticks(x)\n",
"ax.set_xticklabels(labels)\n",
"ax.legend()\n",
"\n",
"\n",
"def autolabel(rects):\n",
" \n",
" for rect in rects:\n",
" height = rect.get_height()\n",
" ax.annotate('{}'.format(height),\n",
" xy=(rect.get_x() + rect.get_width() / 2, height),\n",
" xytext=(0, 3), # 3 points vertical offset\n",
" textcoords=\"offset points\",\n",
" ha='center', va='bottom')\n",
"\n",
"\n",
"autolabel(rects1)\n",
"autolabel(rects2)\n",
"\n",
"fig.tight_layout()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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O5svv/ySe++9lx/96EeFpl28eDEjR47ku+++o3Pnzrz99ts0atSIHTt2APDiiy8yZ84cpkyZwqBBg6hVqxYrVqxg7dq1PP3000ydOpW3336b0047jSlTpgAwb948br/9dnbt2kWrVq14+umnqVu3LpmZmWRnZ9OwYUOys7O55ZZbWLBgAaNGjeKLL74gJyeHhg0b8txzz5VevZXanCqo0j5tPxjJnOKLSMVxww030KlTJ0aOHFmofPjw4Vx99dVcc801TJ48mRtvvJFZs2YBsH79ehYuXMiKFSvo16/fAUmoc+fO3HnnnWRnZ/Pwww+XGMPmzZv517/+xezZs+nbty9vvfUWTz75JKeccgqLFy+mWbNmjB49mn/+85/UqVOHcePG8cADD3DbbbcVO99FixaxcOFCatWqdZC1Urwqn4REREpL/fr1ufrqq3nooYcK7azffvttXn75ZQCuuuqqQknqkksuIS0tjfbt2/PVV18ddgx9+/bFzOjYsSPHHHMMHTt2BODEE08kJyeH3Nxcli1bxplnngnA7t27OeOMM0qcb79+/Uo9AYGSkIhIqbrpppvo0qUL1157bcJxYrs116xZs+B1fo/cW2+9lddeC1ppFi9eXOz0Re8SkT+/tLS0QvNOS0tj7969VKtWjV69ejF9+vQD5puens6+ffvizrdOnToJP8/hUMcEEZFS1KBBA3784x/z1FNPFZR1796dGTNmAPDss8/So0ePYucxZsyYgrvyx3PMMcewfPly9u3bxyuvvHJQ8Z1++um89dZbrF69GghuS7Vq1SoAMjMzWbRoEQAvvfTSQc33UOlMSEQqnaivt/7qV78qdP3moYceYvDgwdx3330FHRMOx9ixY+nTpw/NmzenQ4cOBZ0UktGoUSOmTJnCwIED2bVrFwCjR4+mTZs23H777QwZMoS77777gBs2p0qVv22POiZUYuodV2UsX778gNvGSNmJV//J3rZHzXEiIhIZJSEREYmMkpCIiERGSUhERCKjJCQiIpFREhIRkcjod0IiUvmUdvf8JLrcV6tWreAWOQCzZs0iMzOzdOOohJSERERKQa1atRLe4SAq33//PdWqVYs6jGKpOU5EJEWmTJnC8OHDC9736dOHBQsWAFC3bl1+85vf0LVrV84991zee+89srKyaNmyJbNnzwaCJPLrX/+aU045hU6dOvHn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3d33AuvN7Ejgr8A/zOxr4KuyClBERCqv4q4JvQd0cfd+4fs/mtk5wBHAaymPTEREKr3iktABj1dw9/kpjEVERKqY4pJQIzO7OdFAd38gBfGIiEgVUlwSqgbUJf4D50RERA5bcUlovbvfWWaRiIhIlVNcF22dAYmISEoVl4TiPvdHRESktCRMQu7+dVkGIiIiVU8yd0wQERFJCSUhERGJjJKQiIhERklIREQioyQkIiKRURISEZHIKAmJiEhklIRERCQySkIiIhIZJSEREYmMkpCIiERGSUhERCKjJCQiIpFREhIRkcgoCYmIVALff/89J598Mn369AHgww8/5IwzzqBjx4707duXbdu2RRxhfEpCIiKVwIMPPki7du0K3g8dOpSxY8fy8ccf079/f+67774Io0tMSUhEpILLzc3ltddeY+jQoQVlK1eupGfPngD06tWLl156KarwiqUkJCJSwd10003ce++9pKXt36V36NCB2bNnA/DCCy+wbt26qMIrlpKQiEgFNmfOHBo3bkzXrl0LlU+ePJlJkybRtWtXtm/fTo0aNSKKsHjpUQcgIiKH7q233mL27Nn87W9/Y+fOnWzbto2f/vSnPPPMM8ybNw+AVatW8dprr0UcaXw6ExIRqcDuuececnNzycnJYcaMGfzwhz/kmWeeIS8vD4B9+/YxevRohg0bFnGk8SkJiYhUQtOnT6dNmza0bduWpk2bcu2110YdUlyRNMeZWQ6wHfge2Ovu3cysAfA8kAnkAD92981RxCciUhFlZWWRlZUFwIgRIxgxYkS0ASUhyjOhs929s7t3C9//Fpjv7q2B+eF7ERGpxMpTc9zFwNTw9VTgkghjERGRMhBVEnJgnpktMrPrwrJj3H09QPi/cbwJzew6M8s2s+wNGzaUUbgiIpIKUXXRPtPdvzCzxsDrZrYi2Qnd/XHgcYBu3bp5qgIUEYnUqCMiXPbWMltUJGdC7v5F+D8PeAU4FfjKzJoAhP/zoohNRETKTpknITOrY2b18l8D5wFLgNnANeFo1wCvlnVsIiJStqJojjsGeMXM8pf/nLvPNbP3gZlmNgT4DLgsgthERKQMlXkScvdPgZPilG8CzinreEREJDrlqYu2iIhUMUpCIiISGSUhERGJjJKQiIhERklIREQioyQkIiKRURISEZHIKAmJiEhklIRERCQySkIiIhIZJSEREYmMkpCIiERGSUhERCKjJCQiIpFREhIRkcgoCYmISGSUhEREJDJKQiIiEhklIRERiYySkIiIREZJSEREIqMkJCIikVESEhGRyCgJiYhIZJSEREQkMkpCIiISGSUhERGJjJKQiIhERklIREQioyQkIiKRURISEZHIKAmJiEhklIRERCQySkIiIhIZJSEREYmMkpCIiERGSUhERCKjJCQiIpFREhIRkcgoCYmISGTKXRIys/PNbKWZrTaz30Ydj4iIpE65SkJmVg2YBFwAtAcGmln7aKMSEZFUKVdJCDgVWO3un7r7bmAGcHHEMYmISIqYu0cdQwEz+xFwvrsPDd9fBZzm7sNjxrkOuC58ewKwsswDLT0NgY1RB1GJqX5TS/WbWhW9flu4e6OSRkovi0gOgsUpK5Ql3f1x4PGyCSe1zCzb3btFHUdlpfpNLdVvalWV+i1vzXG5QPOY982ALyKKRUREUqy8JaH3gdZmdryZ1QCuAGZHHJOIiKRIuWqOc/e9ZjYc+AdQDZjs7ksjDiuVKkWzYjmm+k0t1W9qVYn6LVcdE0REpGopb81xIiJShSgJiYhIZJSESoGZTTazPDNbElPW2czeMbPFZpZtZqcmmPYuM/soHG+emTUtMvw4M9thZrek+nOUV2aWYWbvmdmHZrbUzO4Iy0eZ2edh3S02swsTTF/seKpjMLMcM/s4f30Ny5Kq33DcX4a321pqZvcWGVbl6zceMzvSzF40sxVmttzMzjiYOq8sdE2oFJhZT2AH8Bd37xCWzQMmuPvfwxVppLtnxZm2vrtvC1/fCLR392Exw18C9gHvuvv41H+a8sfMDKjj7jvMrDqwEBgBnA/sKKlezGxUceOpjoMkBHRz940xZaNIrn7PBm4FLnL3XWbW2N3zYoZX+fqNx8ymAv/n7k+GvYFrAzdRQp2H30uOu08pk0BTrFz1jquo3P1NM8ssWgzUD18fQYLfO+UnoFAdYn6ca2aXAJ8C35RWrBWRB0dKO8K31cO/Ujl6Uh2Xip8DY919F0CRBKT6jcPM6gM9gUEA4W3KdgfHW1WLmuNS5ybgPjNbB4wHfpdoRDMbE453JXBbWFYH+A1wRxnEWu6ZWTUzWwzkAa+7+7vhoOFhc+ZkMzuqmFkcMJ7quBAH5pnZovDWWPmSqd82wFlm9q6ZvWFmp4DqtwQtgQ3A02b2gZk9GdYXJL9OVwpKQqnzc+B/3L058D/AU4lGdPdbw/GeBfLvk3cHQXPejkTTVSXu/r27dya4i8apZtYBeBRoBXQG1gP3J5g80Xiq4/3OdPcuBHewvyFsYk62ftOBo4DTgV8DM8MmVNVvYulAF+BRdz+Z4EzxtySoczPrmH+dCBgG3Blz3ejoSD5BaXF3/ZXCH5AJLIl5v5X919wM2Ba+fhpYDPwtzjxa5M8D+D8gJ/zbAnwNDI/6c5aHP+B24JZE9V9CHWeqjkus31EHU7/AXCArZtz/AI1Uv8XW8Q8Iruvkvz8LeC1Rncf5fgZF/RlK60/XhFLnC+C/gQXAD4FPANz92tiRzKy1u38Svu0HrAjHOytmnFEEFysfTnnU5ZCZNQL2uPsWM6sFnAuMM7Mm7r4+HK0/sATi1nGi8VTHFDSbpbn79vD1eQRH2knVLzCLYB1fYGZtgBrARtVvYu7+pZmtM7MT3H0lcA6wLFGdV2ZKQqXAzKYDWUBDM8slOFL/GfCgmaUDO9n/+ImixprZCQS9h9YSnGpLYU2AqRY89DANmOnuc8xsmpl1JriekQNcn2D6e5Mcr6o6BnglvCieDjzn7nMPon4nA5Mt+InCbuAaDw/ZpVi/BJ4Ne8Z9ClwLPFTV1lV10RYRkcioY4KIiERGSUhERCKjJCQiIpFREhIRkcgoCYmISGSUhEREJDJKQiIiEpn/DxlTECUQlEwwAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"labels = ['18-34', '35-54', '55-64', '65+']\n",
"nn_smkrs = [A_non_smokers,B_non_smokers,C_non_smokers,D_non_smokers]\n",
"smkrs = [A_smokers,B_smokers,C_smokers,D_smokers]\n",
"\n",
"x = np.arange(len(labels)) # the label locations\n",
"width = 0.35 # the width of the bars\n",
"\n",
"fig, ax = plt.subplots()\n",
"rects1 = ax.bar(x - width/2, nn_smkrs, width, label='Non-fumeur')\n",
"rects2 = ax.bar(x + width/2, smkrs, width, label='Fumeur')\n",
"\n",
"# Add some text for labels, title and custom x-axis tick labels, etc.\n",
"ax.set_ylabel('Taille du groupe')\n",
"ax.set_title('Répartition du tabagisme en fonction de la catégorie d\\'âge')\n",
"ax.set_xticks(x)\n",
"ax.set_xticklabels(labels)\n",
"ax.legend()\n",
"\n",
"\n",
"def autolabel(rects):\n",
" \n",
" for rect in rects:\n",
" height = rect.get_height()\n",
" ax.annotate('{}'.format(height),\n",
" xy=(rect.get_x() + rect.get_width() / 2, height),\n",
" xytext=(0, 3), # 3 points vertical offset\n",
" textcoords=\"offset points\",\n",
" ha='center', va='bottom')\n",
"\n",
"\n",
"autolabel(rects1)\n",
"autolabel(rects2)\n",
"\n",
"fig.tight_layout()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ces deux graphique mettent en évidences plusieurs choses :\n",
" - le taux de mortalité à 20 ans est très dépendant de l'âge (ce qui après réflexion semble évident),\n",
" - la proportion de fumeur dépend de l'âge,\n",
" - pour chaque catégorie d'âge la mortalité des fumeurs est plus importantes que celles des non-fumeurs."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Régression logistique"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Afin d'éviter un biais induit par des regroupements en tranches d'âges arbitraires et non régulières, on réalise une régression logistique. Pour cela on introduit la variable Death qui vaut 1 si l'individu est décédé dans la période de 20 ans, 0 sinon."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"data['Death']=0\n",
"data.loc[data['Status']=='Dead','Death'] = 1\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"data.loc[data['Age']<35,'Categorie d\\'âge'] = 'A'\n",
"data.loc[(data['Age']<55) & (data['Age']>=35),'Categorie d\\'âge'] = 'B'\n",
"data.loc[(data['Age']<65) & (data['Age']>=55),'Categorie d\\'âge'] = 'C'\n",
"data.loc[data['Age']>=65,'Categorie d\\'âge'] = 'D'"
"x=data['Age']\n",
"x=sm.add_constant(x)\n",
"y=data['Death']"
]
},
{
"cell_type": "code",
"execution_count": 28,
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.382339\n",
" Iterations 7\n"
]
},
{
"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>Catégorie d'âge</th>\n",
" <th>Categorie</th>\n",
" <th>Categorie d'âge</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>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>19.3</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>47.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>81.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>23.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>57.5</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>24.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.5</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>30.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>66.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>49.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>60.6</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>43.5</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>27.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>58.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>65.7</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>73.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>33.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>18.0</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>56.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>59.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>25.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>36.9</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.2</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" <td>A</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",
" </tr>\n",
" <tr>\n",
" <th>1284</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>36.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1285</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>48.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1286</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1287</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>60.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1288</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>39.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1289</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>36.7</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1290</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1291</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1292</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>57.7</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1293</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>63.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1294</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>46.6</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1295</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>82.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1296</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>38.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1297</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>32.7</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1298</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.7</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1299</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>60.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1300</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>71.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1301</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>20.5</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1302</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>44.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1303</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>31.2</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1304</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>47.8</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1305</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>60.9</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1306</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>61.4</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1307</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>43.0</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1308</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>42.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1309</th>\n",
" <td>Yes</td>\n",
" <td>Alive</td>\n",
" <td>35.9</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1310</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>22.3</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1311</th>\n",
" <td>Yes</td>\n",
" <td>Dead</td>\n",
" <td>62.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1312</th>\n",
" <td>No</td>\n",
" <td>Dead</td>\n",
" <td>88.6</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1313</th>\n",
" <td>No</td>\n",
" <td>Alive</td>\n",
" <td>39.1</td>\n",
" <td>A</td>\n",
" <td>NaN</td>\n",
" <td>B</td>\n",
" </tr>\n",
" </tbody>\n",
"<table class=\"simpletable\">\n",
"<caption>Logit Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Death</td> <th> No. Observations: </th> <td> 1314</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>Logit</td> <th> Df Residuals: </th> <td> 1312</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>MLE</td> <th> Df Model: </th> <td> 1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Tue, 28 Apr 2020</td> <th> Pseudo R-squ.: </th> <td>0.3560</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>22:33:45</td> <th> Log-Likelihood: </th> <td> -502.39</td> \n",
"</tr>\n",
"<tr>\n",
" <th>converged:</th> <td>True</td> <th> LL-Null: </th> <td> -780.16</td> \n",
"</tr>\n",
"<tr>\n",
" <th> </th> <td> </td> <th> LLR p-value: </th> <td>7.883e-123</td>\n",
"</tr>\n",
"</table>\n",
"<p>1314 rows × 6 columns</p>\n",
"</div>"
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>const</th> <td> -6.1045</td> <td> 0.321</td> <td> -18.992</td> <td> 0.000</td> <td> -6.735</td> <td> -5.475</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Age</th> <td> 0.0977</td> <td> 0.006</td> <td> 17.578</td> <td> 0.000</td> <td> 0.087</td> <td> 0.109</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
" Smoker Status Age Catégorie d'âge Categorie Categorie d'âge\n",
"0 Yes Alive 21.0 A NaN A\n",
"1 Yes Alive 19.3 A A A\n",
"2 No Dead 57.5 A NaN C\n",
"3 No Alive 47.1 A NaN B\n",
"4 Yes Alive 81.4 A NaN D\n",
"5 No Alive 36.8 A NaN B\n",
"6 No Alive 23.8 A NaN A\n",
"7 Yes Dead 57.5 A NaN C\n",
"8 Yes Alive 24.8 A NaN A\n",
"9 Yes Alive 49.5 A NaN B\n",
"10 Yes Alive 30.0 A NaN A\n",
"11 No Dead 66.0 A NaN D\n",
"12 Yes Alive 49.2 A NaN B\n",
"13 No Alive 58.4 A NaN C\n",
"14 No Dead 60.6 A NaN C\n",
"15 No Alive 25.1 A NaN A\n",
"16 No Alive 43.5 A NaN B\n",
"17 No Alive 27.1 A NaN A\n",
"18 No Alive 58.3 A NaN C\n",
"19 Yes Alive 65.7 A NaN D\n",
"20 No Dead 73.2 A NaN D\n",
"21 Yes Alive 38.3 A NaN B\n",
"22 No Alive 33.4 A NaN A\n",
"23 Yes Dead 62.3 A NaN C\n",
"24 No Alive 18.0 A A A\n",
"25 No Alive 56.2 A NaN C\n",
"26 Yes Alive 59.2 A NaN C\n",
"27 No Alive 25.8 A NaN A\n",
"28 No Dead 36.9 A NaN B\n",
"29 No Alive 20.2 A A A\n",
"... ... ... ... ... ... ...\n",
"1284 Yes Dead 36.0 A NaN B\n",
"1285 Yes Alive 48.3 A NaN B\n",
"1286 No Alive 63.1 A NaN C\n",
"1287 No Alive 60.8 A NaN C\n",
"1288 Yes Dead 39.3 A NaN B\n",
"1289 No Alive 36.7 A NaN B\n",
"1290 No Alive 63.8 A NaN C\n",
"1291 No Dead 71.3 A NaN D\n",
"1292 No Alive 57.7 A NaN C\n",
"1293 No Alive 63.2 A NaN C\n",
"1294 No Alive 46.6 A NaN B\n",
"1295 Yes Dead 82.4 A NaN D\n",
"1296 Yes Alive 38.3 A NaN B\n",
"1297 Yes Alive 32.7 A NaN A\n",
"1298 No Alive 39.7 A NaN B\n",
"1299 Yes Dead 60.0 A NaN C\n",
"1300 No Dead 71.0 A NaN D\n",
"1301 No Alive 20.5 A A A\n",
"1302 No Alive 44.4 A NaN B\n",
"1303 Yes Alive 31.2 A NaN A\n",
"1304 Yes Alive 47.8 A NaN B\n",
"1305 Yes Alive 60.9 A NaN C\n",
"1306 No Dead 61.4 A NaN C\n",
"1307 Yes Alive 43.0 A NaN B\n",
"1308 No Alive 42.1 A NaN B\n",
"1309 Yes Alive 35.9 A NaN B\n",
"1310 No Alive 22.3 A NaN A\n",
"1311 Yes Dead 62.1 A NaN C\n",
"1312 No Dead 88.6 A NaN D\n",
"1313 No Alive 39.1 A NaN B\n",
"\n",
"[1314 rows x 6 columns]"
"<class 'statsmodels.iolib.summary.Summary'>\n",
"\"\"\"\n",
" Logit Regression Results \n",
"==============================================================================\n",
"Dep. Variable: Death No. Observations: 1314\n",
"Model: Logit Df Residuals: 1312\n",
"Method: MLE Df Model: 1\n",
"Date: Tue, 28 Apr 2020 Pseudo R-squ.: 0.3560\n",
"Time: 22:33:45 Log-Likelihood: -502.39\n",
"converged: True LL-Null: -780.16\n",
" LLR p-value: 7.883e-123\n",
"==============================================================================\n",
" coef std err z P>|z| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"const -6.1045 0.321 -18.992 0.000 -6.735 -5.475\n",
"Age 0.0977 0.006 17.578 0.000 0.087 0.109\n",
"==============================================================================\n",
"\"\"\""
]
},
"execution_count": 28,
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data\n",
"\n"
"model = sm.Logit(y, x)\n",
"result = model.fit(method='newton')\n",
"result.summary()\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'Frequency'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 2524\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2525\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2526\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'Frequency'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-39-eea08db42492>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mdata_pred\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Frequency'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_pred\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Constant'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Age'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdata_pred\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Age\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Frequency\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"line\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mylim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Age\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Frequency\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2137\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2138\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2139\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2141\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_getitem_column\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2144\u001b[0m \u001b[0;31m# get column\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2145\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_unique\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2146\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_item_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2148\u001b[0m \u001b[0;31m# duplicate columns & possible reduce dimensionality\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m_get_item_cache\u001b[0;34m(self, item)\u001b[0m\n\u001b[1;32m 1840\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1841\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1842\u001b[0;31m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1843\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_box_item_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1844\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/internals.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, item, fastpath)\u001b[0m\n\u001b[1;32m 3841\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3842\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3843\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3844\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3845\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 2525\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2526\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2527\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_maybe_cast_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2528\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2529\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'Frequency'"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data_pred = pd.DataFrame({'Age': np.linspace(start=18, stop=100, num=100), 'Constant': 1})\n",
"data_pred['Frequency'] = result.predict(data_pred[['Constant','Age']])\n",
"data_pred.plot(x=\"Age\",y=\"Frequency\",kind=\"line\",ylim=[0,1])\n",
"plt.scatter(x=data[\"Age\"],y=data[\"Frequency\"])\n",
"plt.grid(True)"
]
},
{
......
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