{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this article, I will try to investigate the following question,\n",
"> Looking at socio-economic status, gender, and age, who's and who's not survive the Titanic?\n",
"\n",
"Below is the description of titanic data, from the original link, [Kaggle](https://www.kaggle.com/c/titanic/data).\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```\n",
"VARIABLE DESCRIPTIONS:\n",
"survival Survival\n",
" (0 = No; 1 = Yes)\n",
"pclass Passenger Class\n",
" (1 = 1st; 2 = 2nd; 3 = 3rd)\n",
"name Name\n",
"sex Sex\n",
"age Age\n",
"sibsp Number of Siblings/Spouses Aboard\n",
"parch Number of Parents/Children Aboard\n",
"ticket Ticket Number\n",
"fare Passenger Fare\n",
"cabin Cabin\n",
"embarked Port of Embarkation\n",
" (C = Cherbourg; Q = Queenstown; S = Southampton)\n",
"\n",
"SPECIAL NOTES:\n",
"Pclass is a proxy for socio-economic status (SES)\n",
" 1st ~ Upper; 2nd ~ Middle; 3rd ~ Lower\n",
"\n",
"Age is in Years; Fractional if Age less than One (1)\n",
" If the Age is Estimated, it is in the form xx.5\n",
"\n",
"With respect to the family relation variables (i.e. sibsp and parch)\n",
"some relations were ignored. The following are the definitions used\n",
"for sibsp and parch.\n",
"\n",
"Sibling: Brother, Sister, Stepbrother, or Stepsister of Passenger Aboard Titanic\n",
"Spouse: Husband or Wife of Passenger Aboard Titanic (Mistresses and Fiances Ignored)\n",
"Parent: Mother or Father of Passenger Aboard Titanic\n",
"Child: Son, Daughter, Stepson, or Stepdaughter of Passenger Aboard Titanic\n",
"\n",
"Other family relatives excluded from this study include cousins,\n",
"nephews/nieces, aunts/uncles, and in-laws. Some children travelled\n",
"only with a nanny, therefore parch=0 for them. As well, some\n",
"travelled with very close friends or neighbors in a village, however,\n",
"the definitions do not support such relations.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next I will import the related libraries to perform the analysis"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import seaborn as sns; sns.set_style('darkgrid')\n",
"import numpy as np\n",
"import scipy.stats as sp"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('dataset/titanic_data.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" PassengerId | \n",
" Survived | \n",
" Pclass | \n",
" Name | \n",
" Sex | \n",
" Age | \n",
" SibSp | \n",
" Parch | \n",
" Ticket | \n",
" Fare | \n",
" Cabin | \n",
" Embarked | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 3 | \n",
" Braund, Mr. Owen Harris | \n",
" male | \n",
" 22 | \n",
" 1 | \n",
" 0 | \n",
" A/5 21171 | \n",
" 7.2500 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" Cumings, Mrs. John Bradley (Florence Briggs Th... | \n",
" female | \n",
" 38 | \n",
" 1 | \n",
" 0 | \n",
" PC 17599 | \n",
" 71.2833 | \n",
" C85 | \n",
" C | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1 | \n",
" 3 | \n",
" Heikkinen, Miss. Laina | \n",
" female | \n",
" 26 | \n",
" 0 | \n",
" 0 | \n",
" STON/O2. 3101282 | \n",
" 7.9250 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" Futrelle, Mrs. Jacques Heath (Lily May Peel) | \n",
" female | \n",
" 35 | \n",
" 1 | \n",
" 0 | \n",
" 113803 | \n",
" 53.1000 | \n",
" C123 | \n",
" S | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 0 | \n",
" 3 | \n",
" Allen, Mr. William Henry | \n",
" male | \n",
" 35 | \n",
" 0 | \n",
" 0 | \n",
" 373450 | \n",
" 8.0500 | \n",
" NaN | \n",
" S | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" PassengerId Survived Pclass \\\n",
"0 1 0 3 \n",
"1 2 1 1 \n",
"2 3 1 3 \n",
"3 4 1 1 \n",
"4 5 0 3 \n",
"\n",
" Name Sex Age SibSp \\\n",
"0 Braund, Mr. Owen Harris male 22 1 \n",
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n",
"2 Heikkinen, Miss. Laina female 26 0 \n",
"3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 \n",
"4 Allen, Mr. William Henry male 35 0 \n",
"\n",
" Parch Ticket Fare Cabin Embarked \n",
"0 0 A/5 21171 7.2500 NaN S \n",
"1 0 PC 17599 71.2833 C85 C \n",
"2 0 STON/O2. 3101282 7.9250 NaN S \n",
"3 0 113803 53.1000 C123 S \n",
"4 0 373450 8.0500 NaN S "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see the number of rows in this dataset"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(891, 12)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the number of person,"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"891"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.Name.nunique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Okay, so we know that each person represent one observation in this dataset. Let's see the distribution of age in this dataset."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 714.000000\n",
"mean 29.699118\n",
"std 14.526497\n",
"min 0.420000\n",
"25% 20.125000\n",
"50% 28.000000\n",
"75% 38.000000\n",
"max 80.000000\n",
"Name: Age, dtype: float64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.Age.describe()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAFtCAYAAAATY4N4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VFWe//FPVcKShSTIE6ZbUCIxGNQZdUiY2BBEBxRF\nlM1RMShKa4MtjYCYAIGAgGyiYjctYrsGBVySkRl7FANiJMaA9ohCRH42RJBgWBJCFiBJ1fn9QVMj\nslQVcCu5lffreXie1K2Te78nVeSTe++pcxzGGCMAAGBbzsYuAAAAnBvCHAAAmyPMAQCwOcIcAACb\nI8wBALA5whwAAJsjzNGsJCYm6uDBgydsy83N1ahRoyRJzz33nN57770z7mPx4sVau3atZTVaaevW\nrerbt68GDx6s0tLSE5674YYbdPPNN2vQoEEaNGiQBgwYoDlz5jRSpYFTUVGhq666StOnT2/sUoCz\nRpijWXE4HGd8/g9/+INuv/32M7b5/PPP1dDQcD7LCpg1a9YoJSVFOTk5uvDCC096fuHChcrNzfX8\n27Rpk954441GqDRw3n33XfXp00fvv/++Dh061NjlAGcltLELAALJ2xxJkyZNUpcuXXT//ffrueee\n05o1a9SiRQvFxMRozpw5Wr16tTZv3qz58+fL6XQqJSVFM2bM0NatW+VwOJSamqoJEybI6XTqk08+\n0VNPPaXQ0FAlJibqs88+0/Lly1VUVKR33nlHhw8fVps2bbRkyRJNnz5dP/zwgw4ePKiIiAgtXLhQ\ncXFxGj58uK688kp9/vnnKi8v1/Dhw3XgwAFt2LBBR44c0bPPPquEhIST+rF48WL99a9/VWhoqOLi\n4jR16lQVFhZq+fLlcrvdOnLkiBYsWHDGn09oaKi6deumHTt2SJKWLFmiNWvWqK6uTocPH9bjjz+u\nPn36aPv27ZoyZYrq6upkjNHQoUM1bNiw024/vq/Vq1fLGKMOHTooKytLsbGxGj58uK655hr97W9/\nU2lpqZKSkjR//nxJUk5Ojl588UWFhYXp3/7t3/T6669ry5YtXvcXExOjHTt26O6779Y999xzUn9X\nrlyprKws1dTUaMWKFXrooYckSW63W/PmzdPHH3+sNm3a6F/+5V/0/fffKzs7W9XV1Zo9e7a2bdum\nhoYGXXvttXr88cfldHJ+hEZigGbksssuMwMGDDADBw40AwcONLfffrvp3bu3+d3vfmeMMSYjI8O8\n/PLLZs+ePaZbt26mrq7OGGPMK6+8YvLy8owxxqSlpZnVq1cbY4xJT083s2fPNsYYU1dXZx544AGz\ndOlSU1FRYbp3726+++47Y4wxubm5JjEx0ezevdvk5OSY7t27m5qaGmOMMR988IGZNWuWp8Zp06aZ\nmTNneo41ZswYY4wxmzZtMpdddplZt26dMcaYJ5980kydOvWkPr7zzjvmrrvuMkeOHDHGGPPHP/7R\njBw50vP18X3/0vXXX282b97sefzTTz+Zm2++2Xz00Udm9+7d5r777jNHjx41xhjz/vvvmwEDBhhj\njJk8ebJZunSpMcaYffv2mfHjx59xe25urhk3bpxxuVzGGGNWrlxpHnzwQU9/H330UWOMMdXV1SY1\nNdUUFRWZ77//3vzmN78xZWVlnn4kJib6tL8pU6acsr/GGLNu3TrTo0cP43K5zP/8z/+Y6667zjQ0\nNBhjjFm+fLlJS0szdXV1pr6+3jzwwANm+PDhxhhjJk2aZJYtW2aMMcblcpmJEyeaF1988bTHAazG\nmTmanezsbEVHR3se5+bm6sMPPzyhzT/90z+pa9euGjRokFJTU9WrVy9de+21nufNP85g8/PztWLF\nCklSixYtdPfdd+u1117TJZdcooSEBHXp0kWSNHDgQM2ePdvz/ZdddpnCw8MlSTfddJMuuugiLVu2\nTD/88IM2bNiga665xtP2xhtvlCRddNFFcjgc6tmzpyTp4osv1oYNG07q36effqrBgwerVatWkqR7\n771XS5Ys8enWwGOPPabWrVvL5XKpRYsW+o//+A/16dNHkjR37ly999572rlzp7766ivV1tZKkvr2\n7av09HR9/fXXuvbaazVlypQzbl+3bp2++eYbDR48WNKxM+CjR496arj++uslSREREerUqZMqKytV\nXFysnj17qn379pKk4cOHa/HixT7tLykp6bT9Xb58uQYMGCCn06kbbrhBWVlZ+uCDD9S/f3/l5+dr\n4MCBatGihSTprrvuUnZ29gnHfPvttyVJR48e9XoLB7ASYY5mx/iwHIHD4VB2drY2b96szz77THPm\nzFFKSoomT558Qju3233S44aGBoWGhp703M9/2R8Pckl688039fbbbystLU0DBgxQdHS0du/e7Xm+\nZcuWJ+wnJCTkjLX/8rgul0sul8unfi9cuFCXX375SduLi4v18MMPa8SIEerZs6eSk5M1Y8YMSVLv\n3r21evVqFRQU6PPPP9fixYu1YsWKE7YXFhZ6trvdbj344IO66667JEn19fUn3Ktu3br1Ccc2xpz0\n8/z55Wxv+/v5z/rnSktLlZ+fr2+//dZzid7lcum1115T//79FRoaesLP7OfHdLlcWrRokTp37ixJ\nqq6u9vKTBazFDR7gFLZu3apbb71V8fHxeuihhzRixAht3bpV0rF7ycfPclNTUz0DxOrq6rRy5Ur1\n6NFD11xzjX744Qdt27ZNkvThhx+qqqrqlGdvBQUFGjx4sIYMGaK4uDh9/PHHJwXycb4EcmpqqnJy\ncnT48GFJx65EJCcne84wz+R0+9+4caP++Z//WSNGjFBycrLy8vI8NU6YMEHvv/++brnlFk2bNk2R\nkZH66aefTtielZXl2d6zZ0+9/fbbngB89tln9fjjj5+xrp49e6qwsFB79+6VJM8Z8fHn/N2fJK1Y\nsULdunXTJ598ojVr1mjt2rV69913VVxcrP/93//Vddddp1WrVqmurk4NDQ3Kzc31vH49e/bUq6++\nKunY6z5q1KigHyiIpo0zczQrvl4KTUxM1M0336zBgwcrPDxcYWFhyszMlHTsMvC8efNUV1enzMxM\nPfHEExowYIDq6+vVq1cvjRo1SqGhoXrqqac8g6KuvPJKhYSEnHTWKUkPPPCApk2bppycHDmdTl1x\nxRWePwJ+Wa8v9Q8dOlQ//fST7rjjDhljdPHFF59ysNsvnWnft956q1avXq3+/furZcuWSklJ0cGD\nB1VbW6uHH35YmZmZeuutt+R0OnXjjTcqOTlZF1xwwSm3JyUlae/evbrzzjvldDr161//WnPnzj1j\nf+Pi4jRp0iSNHDlSrVq1UmJioudneccdd/i8v+Pq6+uVk5OjJ5988oTtnTp1Uv/+/fXaa6/p2Wef\n1Y4dOzzvgY4dOyosLEySlJmZqSeffFIDBgxQQ0ODevTood/+9rdef8aAVRzGlz/1Afilurpazz//\nvP7whz+oVatWKi4u1u9+9zt9+umnjV2aLf3444/6z//8Tz3yyCOSpI8++kh/+ctftHLlSsuOWVBQ\noAMHDui2226TJM2ePVutW7fWhAkTLDsmcLYsPzNfunSp1q5dq/r6eg0bNkzJycnKyMiQ0+lUQkKC\nsrKyrC4BCLjIyEi1aNFCQ4YMUWhoqFq0aKFFixY1dlm29atf/Up79+7VrbfeqpCQEEVFRZ10Vn2+\nXXrppXrppZf00ksvyeVyKTExkYll0GRZema+YcMGvfLKK3r++edVW1url19+WVu2bNHIkSOVlJSk\nrKwspaamekbLAgAA/1k6AG79+vXq0qWLHn74YY0ePVq9e/dWcXGx56MivXr1UmFhoZUlAAAQ9Cy9\nzF5RUaHS0lK98MIL2rVrl0aPHn3CKN2IiAhVVVVZWQIAAEHP0jCPiYlRfHy8QkNDdckll6hVq1Yq\nKyvzPF9TU6OoqKgz7sMYw2QMAACcgaVh3q1bN2VnZ2vEiBEqKyvT4cOHlZKSog0bNqh79+7Kz89X\nSkrKGffhcDi0b1/wnr3HxrahfzZG/+wrmPsm0T+7i41t41d7S8O8d+/e+uKLLzR06FAZYzR9+nR1\n6NBBmZmZqq+vV3x8vPr162dlCQAABD3LP5r22GOPnbTt+PzGAADg3DGdKwAANkeYAwBgc4Q5AAA2\nR5gDAGBzhDkAADZHmAMAYHOEOQAANkeYAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMAYHOEOQAANkeY\nAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMAYHOEOQAANkeYAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMA\nYHOEOQAANkeYAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMAYHOEOQAANkeYAwBgc4Q5AAA2R5gDAGBz\nhDkAADZHmAMAYHOhjV0Agp/L5VJJyXaf28fFdVZISIiFFQFAcCHMYbmSku0au2CVwqPbe21bW7lX\niybepvj4hABUBgDBgTBHQIRHt1dk2w6NXQYABCXumQMAYHOEOQAANkeYAwBgc4Q5AAA2Z/kAuMGD\nBysyMlKS1LFjR40aNUoZGRlyOp1KSEhQVlaW1SUAABDULA3zuro6SdLrr7/u2TZ69GiNHz9eSUlJ\nysrKUl5envr06WNlGQAABDVLL7Nv3bpVtbW1GjlypEaMGKFNmzapuLhYSUlJkqRevXqpsLDQyhIA\nAAh6lp6Zt27dWiNHjtQdd9yhkpISPfjggzLGeJ6PiIhQVVWVlSUAABD0LA3zuLg4derUyfN1TEyM\niouLPc/X1NQoKirK635iY9tYVmNTEOz9u+CCSL/b2+lnYqdaz0Yw9y+Y+ybRv+bE0jB/9913tW3b\nNmVlZamsrEzV1dXq0aOHNmzYoO7duys/P18pKSle97NvX/CevcfGtgn6/pWXV/v1PeXl1bb5mTSH\n1y9Y+xfMfZPon935+4eKpWE+dOhQTZo0ScOGDZPT6dTcuXMVExOjzMxM1dfXKz4+Xv369bOyBAAA\ngp6lYd6iRQs99dRTJ23Pzs628rAAADQrTBoDAIDNEeYAANgcYQ4AgM0R5gAA2BxhDgCAzRHmAADY\nHGEOAIDNEeYAANgcYQ4AgM0R5gAA2Jyl07kCduRyuVRSst2nthUVkYqKaq+QkBCLqwKA0yPMgV8o\nKdmusQtWKTy6vde2tZV7tWjibYqPTwhAZQBwaoQ5cArh0e0V2bZDY5cBAD7hnjkAADZHmAMAYHOE\nOQAANsc9czQpxu3Wzp0/+Nw+Lq4zI8kBNHuEOZqUw1X7tHDlfoVH7/HalpHkAHAMYY4mh5HkAOAf\n7pkDAGBzhDkAADZHmAMAYHOEOQAANkeYAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMAYHOEOQAANkeY\nAwBgc4Q5AAA2x0IraBZcLpdKSrb71NafJVgBoCkgzNEslJRs19gFqxQe3d5r2wM/fqt2HbsGoCoA\nOD8IczQbvi6tWltZFoBqAOD84Z45AAA2R5gDAGBzXGaHbRm32+fBagxqAxDMCHPY1uGqfVq4cr/C\no/d4bcugNgDBjDCHrTGoDQC4Zw4AgO0R5gAA2ByX2YEmyp9Z6yQpLq6zQkJCLKwIQFNFmANNlD+z\n1tVW7tWiibcpPj4hAJUBaGosD/MDBw5oyJAheuWVVxQSEqKMjAw5nU4lJCQoKyvL6sMDtubrAD8A\nzZul98wbGhqUlZWl1q1bS5LmzJmj8ePHa9myZXK73crLy7Py8AAANAuWhvm8efN09913q3379jLG\nqLi4WElJSZKkXr16qbCw0MrDAwDQLFh2mT0nJ0ft2rVTjx49tGTJEkmS2+32PB8REaGqqiqrDg+L\n+To4q6IiktnXAMBiloa5w+FQQUGBvvvuO6Wnp6uiosLzfE1NjaKionzaV2xsG6vKbBLs2L9t27ax\npOg/XHBBpCWvYUVFZJOow47vT18Fc98k+tecWBbmy5Yt83x97733asaMGZo/f742btyo5ORk5efn\nKyUlxad97dsXvGfwsbFtbNm/8vJqZl/7h/Lyaktew/Ly6kavw67vT18Ec98k+md3/v6hEtCPpqWn\np2vq1Kmqr69XfHy8+vXrF8jDAwAQlAIS5q+//rrn6+zs7EAcEgCAZoNJY+Dhz4xjDGoDgKaDMIeH\nPzOOBfugNgCwE8IcJ2BQGwDYD6umAQBgc4Q5AAA25/Uy+6effqpnnnlGhw4dkjFGxhg5HA6tWbMm\nEPUBAAAvvIb5rFmzlJGRoYSEBDkcjkDUBAAA/OA1zNu2bavrr78+ELUAAICz4DXMu3Xrpjlz5ig1\nNVWtWrXybE9OTra0MAAA4BuvYf71119LkoqLiz3bHA7HCbO6AQCAxuM1zI9Pv1pdXS232+3zSmcA\nACAwvIb5rl27NG7cOO3atUvGGF144YV69tlnFRcXF4DygKbNuN1+TW0bF9dZISEhFlYEoDnyGubT\npk3Tb3/7W88KZ3/96181depUFkwBJB2u2qeFK/crPHqP17a1lXu1aOJtio9PCEBlAJoTr2FeUVFx\nwlKlt9xyi55//nlLiwLsxNcpcAHAKl5ngGvZsqW2bNniebx582aFhYVZWhQAAPCd1zPzyZMna8yY\nMYqJiZExRpWVlXrmmWcCURsAAPCB1zC/+uqr9eGHH6qkpERut1udO3dWixYtAlEbAADwgdfL7F9/\n/bWWLVumTp06ad68eUpNTdWHH34YiNoAAIAPvIb5rFmzdMUVV+jDDz9U69atlZOTo6VLlwaiNgAA\n4AOvYe52u9W9e3etW7dON954oy688EK5XK5A1AYAAHzgNczDwsL08ssvq6ioSNdff71ee+01RURE\nBKI2AADgA69hvmDBAtXW1uq5555TdHS09u7dq4ULFwaiNgAA4AOvo9lHjx6t3Nxcz+OJEydaWhAA\nAPCP1zPzdu3a6YsvvlBdXV0g6gEAAH7yema+efNmpaWlSTq29KkxRg6HQ99++63lxQEAAO+8hvnn\nn38eiDoAAMBZ8nqZva6uTkuWLFF6erqqq6v1pz/9iUvuAAA0IV7D/IknnlBtba22bNmikJAQ7dy5\nU1OmTAlEbQAAwAdew3zLli0aP368QkNDFRYWpnnz5nG/HACAJsRrmDscDtXV1cnhcEg6tr758a8B\nAEDj8zoA7t5779X999+vffv2afbs2crLy9Pvf//7QNQGAAB84DXMBw4cqCuvvFJFRUVyuVx6/vnn\nlZiYGIjaAACAD04b5m63W2+88YZKSkrUrVs33XPPPYGsCwAA+Oi098ynT5+uDz74QGFhYVqyZIn+\n9Kc/BbIuAADgo9OG+caNG7Vs2TI99thjeu2117R69epA1gUAAHx02jBv1aqVZ9R627ZtGcEOAEAT\nddp75r8Mb6fT66fYAJyBcbu1c+cPPrf3py2A5u20YV5aWqpJkyad9vGcOXOsrQwIMoer9mnhyv0K\nj97jU/sDP36rdh27WlwVgGBw2jDPyMg44XH37t0tLwYIduHR7RXZtoNPbWsryyyuBkCwOG2YDxo0\nKJB1AACAs8SNcAAAbO60YV5bWxvIOgAAwFk6bZgPHz5c0rHJYwAAQNN12nvmtbW1euyxx/Tpp5/q\n6NGjJz3vy2h2t9utzMxM7dixQ06nUzNmzFDLli2VkZEhp9OphIQEZWVlnVsPAABo5k4b5i+//LKK\nior05ZdfnvVI9rVr18rhcGj58uXasGGDnn76aRljNH78eCUlJSkrK0t5eXnq06fPWXcAAIDm7rRh\n/utf/1oDBw5UYmKi4uPjtWPHDrlcLiUkJCg01Otia5KkPn366IYbbpB07HPq0dHR+uyzz5SUlCRJ\n6tWrlz777DPCHACAc+A1levr63XTTTcpJiZGbrdb+/fv1+LFi3XVVVf5dACn06mMjAzl5eVp0aJF\nKigo8DwXERGhqqqqs68eAAB4D/PZs2frmWee8YT3V199pZkzZ+qdd97x+SBz587VgQMHNHTo0BPu\nv9fU1CgqKsrr98fGtvH5WHbUVPpXURHZ2CXgHFxwQaQl76Wm8v60QjD3TaJ/zYnXMK+trT3hLPzq\nq68+5YC4U3nvvfdUVlamhx56SK1atZLT6dSVV16pDRs2qHv37srPz1dKSorX/ezbF7xn77GxbZpM\n/8rLqxu7BJyD8vLq8/5eakrvz/MtmPsm0T+78/cPFa9hHh0dfcIgtby8PMXExPi08xtvvFGTJk1S\nWlqaGhoalJmZqc6dOyszM1P19fWKj49Xv379/CoYAACcyGuYz5w5UxMnTtSUKVMkSRdddJEWLFjg\n087DwsL07LPPnrQ9OzvbzzIBAMDpeA3zuLg4vf3226qtrZXb7VZkJPdVAQBoSnz7jJmk8PBwK+sA\nAABniYVWAACwOa9hvnz58kDUAQAAzpLXMH/jjTcCUQcAADhLXu+Z/+pXv9K9996rq666Sq1atfJs\nf+SRRywtDAAA+MZrmF999dWBqAMAAJwlr2H+yCOPqLa2Vjt37lSXLl105MgRRrYDANCEeL1nXlhY\nqNtvv10PP/yw9u/frxtuuEHr168PRG0AAMAHXsP86aef1ptvvqmoqCi1b99ey5Yt0/z58wNRGwAA\n8IHXMHe73YqNjfU8vvTSSy0tCAAA+Men0ewff/yxHA6HDh06pDfeeEMXXnhhIGoDYAGXy6WSku0+\nta2oiFRUVHuFhIRYXBWAc+E1zJ944gnNnj1be/bsUZ8+fZSSkqInnngiELUBsEBJyXaNXbBK4dHt\nvbatrdyrRRNvU3x8QgAqA3C2vIZ5u3bt9PTTT6u6ulqhoaFq3bp1IOoCYKHw6PaKbNuhscsAcJ54\nDfPvvvtOGRkZKi0tlSR17txZ8+bN08UXX2x5cQAAwDuvA+CysrL06KOPqqioSEVFRXrggQc0efLk\nQNQGAAB84DXMjx49quuuu87zuG/fvqqurra0KAAA4LvThnlpaalKS0uVmJiopUuXqry8XJWVlVq2\nbJmSkpICWSMAADiD094zT0tLk8PhkDFGRUVFWrFihec5h8OhzMzMgBQIAADO7LRhvnbt2kDWAQAA\nzpLX0ezbt2/XW2+9pcrKyhO2z5kzx7KiAACA73xaNe2WW27RZZddFoh6AACAn7yGeVRUlB555JFA\n1AIAAM6C1zAfNGiQnnnmGaWkpCg09P+aJycnW1oYAADwjdcw37Bhg7755hv97W9/82xzOBx6/fXX\nLS0MAAD4xmuYb968WatXrw5ELQAA4Cx4DfMuXbpo69atSkxMDEQ9p3XkyBGVlx/wqa3D4dCvfvVr\nORwOi6sCAKDxeQ3zXbt2adCgQYqNjVWLFi1kjJHD4dCaNWsCUZ/Hypz/0v/87yGf2h6pKNGyZ9MV\nGRlpcVUAADQ+r2G+ePHiQNThlcPhVHi7S3xq63QfsbgaAACaDq9hvnHjxlNu79CBtZABAGgKvIZ5\nUVGR5+v6+np9+eWXSkpK0sCBAy0tDAAA+MZrmP9y2taDBw9q3LhxlhWE88vlcqmkZLtPbXfu/MHi\nagAAVvAa5r8UHh6u3bt3W1ELLFBSsl1jF6xSeHR7r20P/Pit2nXsGoCqAADnk9cwHz58uOcjXsYY\n/fjjj7ruuussLwznT3h0e0W29T7GobayLADVAADON69hPmbMGM/XDodDbdu21aWXXmppUQAAwHen\nDfPS0lJJUseOHU/53IUXXmhdVQAAwGenDfO0tDQ5HA4ZYzzbHA6H9u7dq4aGBn377bcBKRAAAJzZ\nacN87dq1JzyuqanRvHnztH79es2cOdPywgAAgG+cvjQqLCzUbbfdJklatWqVevToYWlRAADAd2cc\nAFdbW6u5c+d6zsYJcQAAmp7TnpkXFhZqwIABkqT/+q//IsgBAGiiTntmfv/99ys0NFTr169XQUGB\nZ3tjrZoGIPCM2+3XzIBxcZ0VEhJiYUUATuW0YU5YAzhctU8LV+5XePQer21rK/dq0cTbFB+fEIDK\nAPzcacP8XFdFa2ho0OTJk7V7927V19dr1KhRuvTSS5WRkSGn06mEhARlZWWd0zEAWM/XGQQBNB6/\n52b31apVq9S2bVvNnz9fhw4d0u23367ExESNHz9eSUlJysrKUl5envr06WNVCQAANAs+fTTtbNx8\n880aO3aspGMrd4WEhKi4uFhJSUmSpF69eqmwsNCqwwMA0GxYFuZhYWEKDw9XdXW1xo4dq3Hjxp0w\nm1xERISqqqqsOjwAAM2GZWEuSXv27NF9992nQYMGqX///nI6/+9wNTU1ioqKsvLwAAA0C5bdM9+/\nf79GjhypadOmKSUlRZLUtWtXbdy4UcnJycrPz/ds9yY2to0iIlv5fGyn06nY2DaKjIw8q9oDLTa2\njWX7rqiwx88A5+6CCyJ9ei9Z+Z7wtYamwk61ng3613xYFuYvvPCCDh06pD//+c9avHixHA6HpkyZ\nolmzZqm+vl7x8fHq16+fT/vat69KNdVHJYX71N7tdmvfviodPmy8N25ksbFttG+fdbcbysurLds3\nmpby8mqf3ktWvid8raEpsPr/XmOjf/bm7x8qloX5lClTNGXKlJO2Z2dnW3VIAACaJUvvmQMAAOsR\n5gAA2BxhDgCAzRHmAADYHGEOAIDNEeYAANicZR9NAxA4/qw77s/65E2By+VSScl2n9uzpjqaI8Ic\nCAL+rDt+4Mdv1a5j1wBUdX6UlGzX2AWrFB7d3mtb1lRHc0WYA0HC13XHayvLAlDN+cWa6sCZcc8c\nAACbI8wBALA5LrMDCDh/BrXZbcAe0BgIcwAB58+gNrsN2AMaA2EOoFEE84A9INC4Zw4AgM0R5gAA\n2FxQXmY3bre2b/+7IiLCfWrPjFFAcPBnJryKikhFRbXn/z6CQlCGeW31AU3+cx4zRgHNjD8z4fF/\nH8EkKMNcYsYooLni/z6aI+6ZAwBgc4Q5AAA2R5gDAGBzhDkAADZHmAMAYHOEOQAANkeYAwBgc0H7\nOXMAgeXP7GssawqcX4Q5gPPCn9nXWNYUOL8IcwDnDcuaAo2De+YAANgcYQ4AgM1xmR1As+TPgD2J\npZLRtBHmAJollktFMCHMATRbLJeKYME9cwAAbI4wBwDA5ghzAABsjjAHAMDmCHMAAGyOMAcAwOYI\ncwAAbI6+m6LvAAAMT0lEQVQwBwDA5ghzAABszvIw37Rpk4YPHy5J2rlzp4YNG6a0tDTNmDHD6kMD\nANAsWBrmf/nLX5SZman6+npJ0pw5czR+/HgtW7ZMbrdbeXl5Vh4eAIBmwdIw79SpkxYvXux5vGXL\nFiUlJUmSevXqpcLCQisPDwBAs2BpmPft2/eEJQONMZ6vIyIiVFVVZeXhAQBoFgK6aprT+X9/O9TU\n1CgqKiqQhw8ol8ulkpLtXttVVESqvLyatZIBAGctoGF++eWXa+PGjUpOTlZ+fr5SUlJ8+r7Y2DaK\niGzl83GcDv8uOFxwQaRiY9v49T3ebNu2TWMXrFJ4dHuvbWsr9yp7zjB16dLlvNYgHftjAcC5s+L3\nhNXsVq+/gr1//ghomKenp2vq1Kmqr69XfHy8+vXr59P37dtXpZrqo5LCfWrvNm6/6iovr9a+fef3\nkn95ebVfayVbUcPx/QI4d1b9H7VKbGwbW9Xrr+bQP39YHuYdOnTQihUrJElxcXHKzs62+pAAADQr\nTBoDAIDNBfQyOwDYkXG7tXPnD359D4NaEUiEOQB4cbhqnxau3K/w6D0+ta+t3KtFE29TfHyCxZUB\nxxDmAOADfwa0AoHGPXMAAGyOMAcAwOa4zG4zvs4sd5y/g3YAAPZDmNtMScl2n2eWk6QDP36rdh27\nWlwVAKAxEeY25M9AnNrKMourAQA0Nu6ZAwBgc4Q5AAA21+wvs/szs5PL5ZLkUEiI97+BGHgGNF9W\n/V6RfJ9ZzuVy6e9//38+7dOf/aJpavZh7s/MTgd+/FZhbdr5NPiMgWdA82XV7xV/Zpb7+9//7tcy\nzMxYZ2/NPswl3weU1VaW+dUWQPNlxe8Vq2qA/XHPHAAAmyPMAQCwOS6zA4BN+DOwrrJyn8XVoCkh\nzAHAJvwdWMcg3OaDMAcAG2EQLk6Fe+YAANgcYQ4AgM1xmb0J8GdQCzPLAQB+iTBvAhjUAgA4F4R5\nE8GgFgDA2eKeOQAANkeYAwBgc1xmB4Bmriks2YpzQ5gDQDPXFJZsxbkhzAEATWLJVpw97pkDAGBz\nhDkAADbHZXYAgK24XC5t27ZN5eXVPrVvDoPwCHMAgK2UlGzX2AWrGIT3M4Q5AMB2GIR3Iu6ZAwBg\nc4Q5AAA2R5gDAGBz3DMHADQ6l8ulkpLtPrX1derZ5oQwBwA0On9GqB/48Vu169g1AFXZB2EOAGgS\n/JlSFifinjkAADZHmAMAYHNcZgcABC1/1mo/zorpX/0Z4CdJsbH/6tf+CXMAQNDyZ612ybrpX/2d\ngrbo3SYe5sYYTZ8+Xd99951atmyp2bNn66KLLgp0GQCAZqKpTP1qZR0Bv2eel5enuro6rVixQhMm\nTNCcOXMCXQIAAEEl4GH+5ZdfKjU1VZJ01VVXafPmzYEuAQCAoBLwy+zV1dVq06bN/xUQGiq32y2n\n88x/V7RsGSr3gW98OoarulS1IW28N5R0uKpckiMo2zaVOmjrf9umUgdt/W/bVOpoCm1rK/f6PPhs\n584fVFu597zX4O9r50/N/vCnf762+zmHMcb4/V3nYO7cubr66qvVr18/SVLv3r21bt26QJYAAEBQ\nCfhl9n/913/VJ598Ikn66quv1KVLl0CXAABAUAn4mfnPR7NL0pw5c3TJJZcEsgQAAIJKwMMcAACc\nX0znCgCAzRHmAADYHGEOAIDNNdm52YN52tdNmzbpqaeeUnZ2tnbu3KmMjAw5nU4lJCQoKyurscs7\naw0NDZo8ebJ2796t+vp6jRo1SpdeemnQ9M/tdiszM1M7duyQ0+nUjBkz1LJly6DpnyQdOHBAQ4YM\n0SuvvKKQkJCg6tvgwYMVGRkpSerYsaNGjRoVVP1bunSp1q5dq/r6eg0bNkzJyclB07/c3Fzl5OTI\n4XDo6NGj2rp1q9544w09+eSTQdG/hoYGpaena/fu3QoNDdXMmTP9//9nmqjVq1ebjIwMY4wxX331\nlRk9enQjV3R+vPjii+bWW281d955pzHGmFGjRpmNGzcaY4yZNm2a+eijjxqzvHPy7rvvmieffNIY\nY0xlZaXp3bt3UPXvo48+MpMnTzbGGFNUVGRGjx4dVP2rr683v//9781NN91ktm/fHlR9O3r0qBk0\naNAJ24Kpf0VFRWbUqFHGGGNqamrMH//4x6Dq38/NmDHDvPXWW0HVv7y8PPPoo48aY4wpKCgwY8aM\n8bt/TfYye7BO+9qpUyctXrzY83jLli1KSkqSJPXq1UuFhYWNVdo5u/nmmzV27FhJx5b7CwkJUXFx\ncdD0r0+fPpo5c6YkqbS0VNHR0UHVv3nz5unuu+9W+/btZYwJqr5t3bpVtbW1GjlypEaMGKFNmzYF\nVf/Wr1+vLl266OGHH9bo0aPVu3fvoOrfcd98842+//573XHHHUH1uzMuLk4ul0vGGFVVVSk0NNTv\n16/JXmY/22lfm7q+fftq9+7dnsfmZ58MjIiIUFVVVWOUdV6EhYVJOvbajR07VuPGjdO8efM8z9u9\nf5LkdDqVkZGhvLw8LVq0SAUFBZ7n7Ny/nJwctWvXTj169NCSJUskHbutcJyd+yZJrVu31siRI3XH\nHXeopKREDz74YFD936uoqFBpaaleeOEF7dq1S6NHjw6q1++4pUuXasyYMSdtt3v/IiIi9OOPP6pf\nv346ePCglixZoi+++OKE5731r8mGeWRkpGpqajyPgyHIT+XnfaqpqVFUVFQjVnPu9uzZo0ceeURp\naWnq37+/FixY4HkuGPonHZuS+MCBAxo6dKiOHj3q2W7n/h2/H1lQUKDvvvtO6enpqqio8Dxv575J\nx858OnXq5Pk6JiZGxcXFnuft3r+YmBjFx8crNDRUl1xyiVq1aqWysjLP83bvnyRVVVWppKREycnJ\nkoLrd+err76q1NRUjRs3TmVlZRo+fLjq6+s9z/vSvyabjs1l2tfLL79cGzdulCTl5+erW7dujVzR\n2du/f79GjhypiRMnatCgQZKkrl27Bk3/3nvvPS1dulSS1KpVKzmdTl155ZXasGGDJHv3b9myZcrO\nzlZ2drYSExM1f/58paamBs1r9+6772ru3LmSpLKyMlVXV6tHjx5B8dpJUrdu3fTpp59KOta/w4cP\nKyUlJWj6J0kbN25USkqK53Ew/W6Jjo72DM5s06aNGhoadPnll/v1+jXZM/O+ffuqoKBAd911lyQF\n7brn6enpmjp1qurr6xUfH+9ZgMaOXnjhBR06dEh//vOftXjxYjkcDk2ZMkWzZs0Kiv7deOONmjRp\nktLS0tTQ0KDMzEx17txZmZmZQdG/Xwqm9+bQoUM1adIkDRs2TE6nU3PnzlVMTEzQvHa9e/fWF198\noaFDh3o+CdShQ4eg6Z8k7dix44RPNAXT+/O+++7T5MmTdc8996ihoUGPPfaYrrjiCr9eP6ZzBQDA\n5prsZXYAAOAbwhwAAJsjzAEAsDnCHAAAmyPMAQCwOcIcAACbI8yBZm7btm1KTEzURx991NilADhL\nhDnQzOXm5qpfv35asWJFY5cC4Cw12RngAFjP5XJp1apVevPNN3XnnXdq165duuiii1RUVKRZs2ap\nRYsWuuqqq/T9998rOztbO3fu1PTp03Xw4EGFhYUpMzNTXbt2bexuAM0eZ+ZAM/bxxx+rQ4cO6tSp\nk/r27auVK1eqoaFB6enpevrpp5WTk6PQ0FA5HA5Jx6bQfPzxx5WTk6MnnnhC48aNa+QeAJAIc6BZ\ny83NVf/+/SVJ/fr1U05OjoqLi9WuXTslJCRIkoYMGSJJqq2t1TfffKNJkyZp4MCBmjBhgo4cOaLK\nyspGqx/AMVxmB5qp8vJyffLJJ9qyZYtef/11GWN06NAh5efn61RLNrjdbrVu3Vq5ubmebWVlZYqO\njg5k2QBOgTNzoJl677339Jvf/Ebr1q3TmjVrtHbtWo0aNUrr169XZWWltm3bJkn67//+bzkcDkVG\nRqpTp05atWqVJKmgoEBpaWmN2QUA/8CqaUAzddttt2nChAm67rrrPNvKy8v17//+73rppZc0c+ZM\nOZ1OXXLJJaqqqtILL7yg7du3KysrS5WVlWrZsqVmzJihK664ohF7AUAizAGcwoIFCzRmzBi1bt1a\nr776qsrKypSent7YZQE4De6ZAzhJdHS0hgwZohYtWqhjx46aPXt2Y5cE4Aw4MwcAwOYYAAcAgM0R\n5gAA2BxhDgCAzRHmAADYHGEOAIDNEeYAANjc/wdAeYLmRDQSEAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.Age.hist(bins=40)\n",
"plt.xlabel(\"Age\")\n",
"plt.ylabel(\"Number of Person\")\n",
"plt.title(\"Histogram of Passenger Age\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I choose histogram since I only analyze one numerical variable. I choose 40 as nunmber of bins to let the histogram show smooth distribution of the data. And since we see from the statistics that the age is max at 80 years old, every 20 year will have the exact edge of the histogram.\n",
"\n",
"I can see from this histogram that many children is below 5 years old. Some of them are babies which we see that there's a peak around 1 year. This histogram will have an almost normal distribution if there isn't a peak around 1 year old. The earlier statistics show that median is 28 year old, and mean is 29 year old. You can also tell that the distribution is normal when you have similar median and mean.\n",
"\n",
"Overall the plot tells us that the passengers' age is distributed around mid-end 20's. Let's see if the distribution of the age is actually different between whether or not the passengers have survived.\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAFtCAYAAAATY4N4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VHXaxvHvmTnT0hOSUIK0ICCKiBRB1EWUXawUyyoC\n6rLWda2sFUVedLGuDRQQlSKKqHSQEgKEJr2XEHpJSAIJKZMy9f0jJtJCEpiZk5l5Ptfl5cxJZs4d\nMplnzq8qbrfbjRBCCCH8lk7rAEIIIYS4NFLMhRBCCD8nxVwIIYTwc1LMhRBCCD8nxVwIIYTwc1LM\nhRBCCD8nxVyISjgcDm644QYee+wxjz7v9OnT6dChA3369KFPnz7cddddPPzww2zdurXie5544gn2\n7dt3wecZNGgQp06dOu/Xyh+/du1a7rrrrhpn/Pnnn/nxxx8BmDJlCl9//XWNn+N8LjbP6TZv3szA\ngQPp1asXd911F48//jh79+71SD64tJ/XEz+fEBdD1TqAELXVokWLaNWqFTt27GD//v00a9bMY8/d\noUMHRo8eXXF/9erVPPHEE0ybNo369eszZsyYKp9j5cqVlX6t/PEnT568qHwbN26kRYsWADzwwAMX\n9RzeYLPZePLJJxk/fjytWrUCYNasWTz++OMsXrwYRVEu+Ry16ecVorrkylyISvzwww/06NGD22+/\nnfHjx1ccHzt2LH/729/o27cv//3vf+nevTsAdrudESNG0LdvX3r37s1rr72G1Wqt1rm6dOlCjx49\nKq6Gu3fvzo4dOygqKuK5556jT58+9O3bl7feegu3281rr70GwMCBAzl+/Djdu3fnhRde4I477iAp\nKani8QBWq5Vnn32W3r17M3DgQA4dOgTAa6+9xnfffVeRofx+UlISycnJjB8/nh9++IGRI0cyfPhw\nANLS0hg4cCB33303vXv3ZsaMGUDZFemDDz7Iyy+/TJ8+fbjzzjtZu3bteX/W8+UpKSmhU6dOFdkA\n/vGPf5CcnHzGY0tKSigsLKSwsLDi2N13382bb76J0+k858r49PsjR45k0KBB9OrVi5deeolu3bpV\n/BsBvPjii0yZMqXi5125cuUZz1VQUECnTp0oKChgyZIlPPDAA9x77710796dzz77rFq/ZyG8RYq5\nEOexd+9etm7dyu23306vXr2YPXs2eXl5LF++nBkzZvDrr78ybdo0rFZrxdXg2LFjUVWVadOmMWPG\n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\ngg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = sns.violinplot(data = df, x = 'Survived', y = 'Age')\n",
"p.set(title = 'Age Distribution by Survival', \n",
" xlabel = 'Survival', \n",
" ylabel = 'Age Distribution', \n",
" xticklabels = ['Died', 'Survived']);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now this is interesting. We can see that from violin plot, the distribution is a little bit different. I use violin plot because I can see the distribution of `Age` by `Survived` side by side.\n",
"\n",
"The distribution of the age shows bimodal distribution of people who survived. Many old people died from the tragedy, though we see 1 80 year-old man did survive the tragedy. We can see the person below."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" PassengerId | \n",
" Survived | \n",
" Pclass | \n",
" Name | \n",
" Sex | \n",
" Age | \n",
" SibSp | \n",
" Parch | \n",
" Ticket | \n",
" Fare | \n",
" Cabin | \n",
" Embarked | \n",
" WomenChildren | \n",
"
\n",
" \n",
" \n",
" \n",
" 630 | \n",
" 631 | \n",
" 1 | \n",
" 1 | \n",
" Barkworth, Mr. Algernon Henry Wilson | \n",
" male | \n",
" 80 | \n",
" 0 | \n",
" 0 | \n",
" 27042 | \n",
" 30 | \n",
" A23 | \n",
" S | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" PassengerId Survived Pclass Name \\\n",
"630 631 1 1 Barkworth, Mr. Algernon Henry Wilson \n",
"\n",
" Sex Age SibSp Parch Ticket Fare Cabin Embarked WomenChildren \n",
"630 male 80 0 0 27042 30 A23 S 0 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[(df.Survived == 1) & (df.Age == 80)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To support the plot, I also include relevant statistics between Age and Survived."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" Survived | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 424.000000 | \n",
" 290.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 30.626179 | \n",
" 28.343690 | \n",
"
\n",
" \n",
" std | \n",
" 14.172110 | \n",
" 14.950952 | \n",
"
\n",
" \n",
" min | \n",
" 1.000000 | \n",
" 0.420000 | \n",
"
\n",
" \n",
" 25% | \n",
" 21.000000 | \n",
" 19.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 28.000000 | \n",
" 28.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 39.000000 | \n",
" 36.000000 | \n",
"
\n",
" \n",
" max | \n",
" 74.000000 | \n",
" 80.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Survived 0 1\n",
"count 424.000000 290.000000\n",
"mean 30.626179 28.343690\n",
"std 14.172110 14.950952\n",
"min 1.000000 0.420000\n",
"25% 21.000000 19.000000\n",
"50% 28.000000 28.000000\n",
"75% 39.000000 36.000000\n",
"max 74.000000 80.000000"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('Survived').Age.describe().unstack(level=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we see from the statistics everything is similar. Children who died minimum is 1 years old, while babies who survive minimum at 5 months old. Again if I observe the plot, many children survived the accident, at least compared to the children who didn't.\n",
"\n",
"If you remember from *Titanic* movies, children and women are prioritized to get to the lifeboat. It's interesting to know whether this is actually true.\n",
"\n",
"*Is women and children survival rate is higher than those who didn't?*\n",
"\n",
"To get into this, I create a frequency table. Children are described as passenger below 12 years old. And gender already described by `Sex` column."
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df['WomenChildren'] = np.where((df.Age <= 12) | (df.Sex == 'female'),1,0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'm using ChiSquare from Scipy library. This function has takes frequency table that I've created earlier, and then output chisquare statistic, p-value, degree of freedom, and the expected frequency table if both variables aren't related. Since for `Survived` is categorical and some of the variables also categorical, I create neat function that calculate frequency table and compute ChiSquare Indepence test for 2 Pandas categorical Series."
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [],
"source": [
"def compute_freq_chi2(x,y):\n",
" \"\"\"This function will compute frequency table of x an y\n",
" Pandas Series, and use the table to feed for the contigency table\n",
" \n",
" Parameters:\n",
" -------\n",
" x,y : Pandas Series, must be same shape for frequency table\n",
" \n",
" Return:\n",
" -------\n",
" None. But prints out frequency table, chi2 test statistic, and \n",
" p-value\n",
" \"\"\"\n",
" freqtab = pd.crosstab(x,y)\n",
" print(\"Frequency table\")\n",
" print(\"============================\")\n",
" print(freqtab)\n",
" print(\"============================\")\n",
" chi2,pval,dof,expected = sp.chi2_contingency(freqtab)\n",
" print(\"ChiSquare test statistic: \",chi2)\n",
" print(\"p-value: \",pval)\n",
" return"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Frequency table\n",
"============================\n",
"WomenChildren 0 1\n",
"Survived \n",
"0 452 97\n",
"1 88 254\n",
"============================\n",
"ChiSquare test statistic: 280.393048965\n",
"p-value: 6.16515742548e-63\n"
]
}
],
"source": [
"compute_freq_chi2(df.Survived,df.WomenChildren)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From the frequency table, we can see a magnitude difference of women and children that survived compared to those who didn't. Women and children survived is about 2.5 times higher than women and children whom not survived. On the contrary, adult men is about 5 times higher between not survived and survived. To be fair, let's put this to a statistical test.\n",
"\n",
"\n",
"Since both independent and dependent variable are categorical, I choose Chi-Square Independece test. For this test to be true, Let's validate the condition,\n",
"\n",
"* Each cell has at least 5 expected cases. **Checked**.\n",
"* Each case only contributes to once cell in the table. **Checked**.\n",
"* If sample, random sample and less than 10% population. **This dataset is already a population**.\n",
"\n",
"Since we have checked all the condition, we can proceed to the test. And as expected, chi-square statistic provide very high number, and p value which practically zero. Thus the data provide convincing evidence that whether the passenger woman or children and whether they survived are related. Just for the sake of curiosity, how is the accuracy if we take it as predictive model?"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.79236812570145898"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(df['WomenChildren'] == df.Survived).mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There you go, I got 79.24% accuracy."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Titanic was a massive ship. Again remembering the movie back then, rich and poor people get to the ship. I wonder how Titanic data required social economy status of passenger, which represented by `Pclass`. We could see if the fare vary across this variable."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Pclass\n",
"1 84.154687\n",
"2 20.662183\n",
"3 13.675550\n",
"Name: Fare, dtype: float64"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('Pclass').Fare.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From this result, we see that there's huge price jump between upper class and middle/lower class! Although it's no surprise. I recall from the movie, upper class room is family room, and facilitated with a lot of fancy stuff. While in lower class (DiCaprio's room), people have to shared between other passengers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Perhaps number alone won't satisfy you enough. Let's take it to the visualization. And since in this analysis, we want to know people who survive, I also throw whether the people `survive` into the equation.\n",
"\n",
"I will plot the visualization using bar plot, since I want to see different of Fare across social-economic status. And I want to differentiate the status by `Survive` to see if it depends on these two variables."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAFtCAYAAADWERnpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlAVeW+//HPhg0qIApJOfwyk3DIzG5i0SnHrOg6QQ45\noanpdWg4YscJFU1Nw6lJU/NYhnXUc0rr3ttwNI9aZg6dk+aQDUgeURECFRBkb/bz+6PrTnJAccNe\n4Pv1Tz57rfU8373FPjxrrb0emzHGCAAAeJWPtwsAAAAEMgAAlkAgAwBgAQQyAAAWQCADAGABBDIA\nABZAIKPCczqdeuCBBzR06FBvl3JVXn/9dbVv314TJ04sk/7Xrl2r9u3b68knn/RYn8OHD9e6desk\nSbGxscrNzZXL5dKIESMUHR2td955p0zGvZQjR47omWeeueg2p9OpOXPmqGvXrurWrZu6deumJUuW\nuLe/9tpruu+++xQbG6uYmBjFxMQoNjZW8+fPv6LjAU+ze7sA4FqtX79eTZo00b59+5SSkqKGDRt6\nu6Qr8t5772nevHm6++67y6T/devWKT4+Xl26dCmT/teuXStJOnr0qLZu3ardu3fLZrNp4MCBZTru\n+dLS0nTo0KGLbluxYoWOHDmiDz74QDabTbm5uRowYIBCQ0PVs2dPSVKnTp00adKkUh8PeBKBjArv\n3XffVefOndWgQQOtWLFC06ZN05gxY9SsWTMNHjxYkrRq1Srt2LFD8+fP18aNG7V48WI5nU5VrVpV\n48aNU4sWLfTaa6/pX//6lzIyMtSkSRONGzdOU6ZM0S+//KLMzEzVrVtXL730kkJDQ7Vnzx5NmzZN\nTqdTN998s44ePaoJEyaoVatWF/Q/duxY3XXXXcVqHj16tI4fP66EhAQ988wzqlu3rubMmSOHw6GM\njAz94Q9/0IwZM5SWlqZ+/fopPDxcaWlpWrlypQ4fPqx58+YpPz9fPj4+euqpp9SuXbti/c+aNUt7\n9uxRWlqasrKy1L17d02bNk3fffedbDabWrdurTFjxsjHx0fNmzfXgw8+qIMHD2ru3Llq1qyZu58T\nJ05o/PjxysjIUJ06dfTLL7+4tzVp0kSbN2/W0KFDVVRUpMcee0z16tUrNm7fvn01d+5c7dy5Uy6X\nS02bNtWkSZMUGBioDh06qEWLFvr+++81evRoNW/eXNOnT9exY8fkdDrVqVMnDRs2TGlpaXriiSfU\ntm1b7d69W6dPn9Yf//hHPfLII5o8ebJOnDihJ598UsuWLSv2GWRkZMjpdKqgoEDVqlVTUFCQ5syZ\noyt9FtK1Hg9cNQNUYD/88IO58847zenTp82ePXvMXXfdZU6ePGm++uor07lzZ/d+PXv2NNu2bTOp\nqammc+fO5uTJk+7j77//fpOfn29effVV8+ijjxqXy2WMMWbFihXmjTfecPcxdOhQ8+abbxqn02na\ntm1rPv/8c2OMMV999ZVp2rSp2bFjx2X7/7327dubffv2GWOMiY+PNzt27DDGGJOXl2eioqLMvn37\nzJEjR0zjxo3N119/bYwx5tSpU+aRRx4xaWlpxhhj0tPTTdu2bc2xY8cu6L9///7m73//uzHGmHHj\nxpmZM2caY4wpLCw0gwcPNkuXLjXGGNO4cWPz4YcfXvTzHTVqlHn55ZeNMcb8/PPP5q677jJr1641\nxhjTpEkTk52dbY4cOWL+4z/+46LjvvbaayYpKcm9bf78+WbatGnu979o0SL3tgEDBph//OMfxhhj\nzp49awYMGGA+/vhj92ewadMmY4wxn376qWnfvr0xxpjt27cX+3s+3/Hjx81jjz1mWrRoYfr372/m\nz59v9u/f797+6quvmqioKBMTE2NiYmJMt27dTExMjPniiy+u6HjA05gho0JbtWqV2rZtq+rVq6t5\n8+aqV6+eVq9erWHDhqmwsFD79u1T1apVlZ2draioKL377rvKzMzUE0884Z7p2O12/fzzz5KkFi1a\nyGazSZIGDBigXbt26a233lJqaqp+/PFH94zOZrPpgQcekCTde++9ioiIkCRt3br1kv03btz4gvrP\n7TN79mxt3rxZS5YsUUpKigoKCnTmzBnVqFFDdrvdPcM+N4MfNWqU+1gfHx8dPHhQtWvXvmT/W7Zs\n0apVqyRJfn5+6tOnj1asWOG+7t6yZcuLfr5ffvmlxo0bJ0mqX7++oqKiLuj7Ys5t27Rpk3JycrR1\n61ZJv16XveGGG9z7RUZGSpLy8/O1c+dOnT59Wi+99JL7tQMHDqh58+by8/NT27ZtJUm33367Tp06\ndcmxz7npppv03nvv6aefftL27dv11VdfqXfv3ho/frz69Okj6fKnrK/keMCTCGRUWPn5+Vq3bp2q\nVq2qBx98UMYY5eXl6Z133tGQIUPUo0cPrV27Vv7+/urRo4ckyeVy6b777nPfuCNJx48f14033qj1\n69crMDDQ/fqcOXO0d+9ede/eXVFRUXI6nTLGyNfXVy6Xq1gtPj4+l+3/pptuuux76du3r5o2bao2\nbdro0Ucf1e7du92h5u/vX6z/2267TatXr3Yfe+LEiWIhdzG/r9flcsnpdLrbAQEBFz3u3Ljn2O1X\n97+MoqIiJSQkqHXr1pJ+/Ts7e/bsBeMWFRVJklavXi1/f39JUnZ2tqpWraqsrCz5+fm5j7HZbFd0\n2njOnDnq2bOnwsPDFR4err59++rDDz/UG2+8cUWBeq3HA1eLu6xRYX344YcKDQ3VF198oc8++0wb\nN27Uhg0blJeXp48//lixsbHauHGjPv30Uz322GOSpKioKG3dulUpKSmSpM2bN6tbt24qLCy8oP+t\nW7dq4MCB6tq1q0JCQvTll1/K5XIpPDxcVapU0RdffCFJ2rNnj3vWfKn+zw+h3zt9+rT279+vP/3p\nT+rYsaOOHz+uw4cPu0Pq/PBp0aKFUlNTtWvXLknSgQMH9Mgjj+jEiROX/axat26td955R5JUWFio\n1atX6/777y/xM27durU7/I8ePart27dfdL9LBeS5cR0Oh1wulxISEor9snJOUFCQWrRooT//+c+S\nfv1M+vTpo88+++yi/Z9r+/r6FvvF4nxZWVl65ZVXVFBQ4D7m0KFDuuOOO0p625c9/vxr7IAnMUNG\nhbVq1SoNGjSo2GvVq1dXXFycVqxYoc6dO6tZs2ZyuVwKCwuTJN122216/vnnFR8fL+nX/6G//vrr\nqlq16gX9jxo1Si+++KIWLlwou92uli1b6ueff5avr69eeeUVJSYmav78+WrQoIHCwsJUtWrVq+r/\n3Knx4OBgDRs2TDExMQoJCVFISIhatmypw4cP6+abb3bvJ0mhoaF69dVXlZSUpLNnz8oYozlz5qhO\nnTqX7F+SEhISNH36dHXp0kUOh0OtW7fW8OHDL9jv9yZPnqyJEyeqU6dOql27tpo2bXrR/i/155Ej\nRyopKUmxsbHum7rOnQL//bjz5s3T888/ry5dusjpdKpLly7q3Lmz0tLSLtj3XDsiIkI+Pj7q1auX\n1qxZU2yfqVOnav78+eratauqVKkip9OpqKgoTZ482b3PRx99pK+//trdNsaobt26WrRo0SWPnzJl\nyiU/L+Ba2MyVnPsBUExSUpKefPJJhYaG6vjx4+rWrZs+++wzBQUFebs0ABXUFc2Qd+/erblz5yo5\n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\nrVv1+eefq3fv3po7d65uueUW1axZU82aNZMkRUdHKzExUUePHlVGRobatm0rSerdu7ekX2d3knTm\nzBkdPnxYHTt2lCS1aNFCNWvW1KFDh9SoUaMLxp8xY4ZatWp1wevnFoOXpDZt2qhNmzZ655131KFD\nBwUHB0uSevXqpYkTJ7qPeeCBByRJERER2rVrl/v11q1bS5Lq1aun2rVry8fHR3Xr1tWpU6eKjblr\n1y516NDBfU17+fLlF9RVr149/c///I++/fZbbdu2TevWrdOKFSvcM+xz6tevr3HjxmnNmjU6dOiQ\nvvnmG9WvX9+93fzfKWtzkVPXvr6+uvvuu9W9e3c9+OCD6tevn2688cYL9gMqEk5ZA5exefNmffTR\nR7rxxhsVGxur+fPnKyEhQX/729/kcrkuCAtjzAULgRQWFurf//63u32x41wul4qKihQTE6OYmJgr\nWonp9w/w/+mnny56eruoqOiCY2w2W7Ea/Pz83H/29fW95Jh2e/Hf4U+cOKGcnJxiry1YsEDp6elq\n3ry5hg0bpvfee09hYWHaunVrsf327t2rwYMHyxij6OhodezY8aLhe36tTqfT/frChQs1bdo0SdKQ\nIUOK/YIBVEQEMnAZVatW1YIFC9zXW40x+vHHH3X77bfr1ltv1alTp7R3715J0kcffaS6deuqTp06\nqlOnjrZt2yZJWrdunV599VV3n0FBQapfv742bNgg6dfr0JmZmYqIiNC6deu0bt06rV27tsTaIiMj\n9dFHH0mStm7dqilTpujee+/Vxo0bdfr0aUnSmjVrFBUV5bHPIzIyUlu2bFF+fr6cTqfGjBnjfv/n\npKen6/XXX3dfQz558qSys7PVqFEj2e129y8Iu3bt0r333qvHH39cDRs21NatW92/UJy/X2hoqH78\n8UdJ0meffSZJysrK0qOPPqpGjRrp6aef1v333+++hg5UVJyyBi7j3nvv1ahRozR8+HD37OyBBx7Q\nyJEjZbfbtWDBAj3//PPKz89XzZo1tWDBAklSUlKSpk6dqqSkJIWEhCgpKUkpKSnufpOSkpSYmKiX\nX35ZVapU0cKFCy+YfZ4zadIkBQQESPptBp6cnKzJkycrISFB77zzjqpVq6aZM2eqYcOGGjZsmPr1\n66eioiI1a9bMPYu81BKeV7O05+23365+/fqpV69ekn5deu++++4rts+UKVM0e/ZsPfLIIwoMDJSf\nn5+ee+453XrrrXI6napdu7YGDhyoOXPm6KmnnlK3bt1kt9vVpEkTHTlyRJLUrl07DR06VH/+85/1\n1FNPacaMGXrttdfcp9xDQ0PVu3dvde/eXdWqVVPdunVZ3xkVHssvAgBgAZyyBgDAAghkAAAsgEAG\nAMACCGQAACyAQAYAwAIIZAAALIBABgDAAghkAAAs4P8DT3ujuOMnlEEAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(x=\"Pclass\",y=\"Fare\",hue=\"Survived\",data=df,estimator=np.mean)\n",
"plt.ylabel(\"\")\n",
"plt.xlabel(\"Socio-Econmic Status\")\n",
"plt.title(\"Average fare for different SES\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looking at this plot, I see something expected and unexpected. First the expected one, I see the average of fare of middle/lower is similar but the difference is huge when compared to the upper class. This is again, expected since earlier we have saw the number.\n",
"\n",
"The unexpected one, is whether survive vary in the upper class! Lower/middle class has similar fare, but there is a clear difference of average fare of in the upper class which result in life and death difference. What's the cause of this? They pay same upper class. What makes the different price in one class? What I can think of is because they have different cabin. Is it because lifeboats are placed in particular cabin? Unfortunately it's hard to know which cabin is better than others, except with Fare. "
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" Survived | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" Cabin | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" 35.496350 | \n",
" 44.341071 | \n",
"
\n",
" \n",
" B | \n",
" 57.137500 | \n",
" 132.832026 | \n",
"
\n",
" \n",
" C | \n",
" 99.972396 | \n",
" 100.274046 | \n",
"
\n",
" \n",
" D | \n",
" 59.613086 | \n",
" 64.505123 | \n",
"
\n",
" \n",
" E | \n",
" 48.460714 | \n",
" 58.571067 | \n",
"
\n",
" \n",
" T | \n",
" 35.500000 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Survived 0 1\n",
"Cabin \n",
"A 35.496350 44.341071\n",
"B 57.137500 132.832026\n",
"C 99.972396 100.274046\n",
"D 59.613086 64.505123\n",
"E 48.460714 58.571067\n",
"T 35.500000 NaN"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(df[(df.Pclass == 1)]\n",
" .groupby([df.Cabin.str[:1],'Survived'])\n",
" .Fare\n",
" .mean()\n",
" .unstack())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see from the table above, Cabin with prefix B is the most expensive one compared to ohers. Cabin C is probably the most expensive on average. But will this guarantee for whether the passengers survive?"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" Survived | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" Cabin | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" 8 | \n",
" 7 | \n",
"
\n",
" \n",
" B | \n",
" 12 | \n",
" 35 | \n",
"
\n",
" \n",
" C | \n",
" 24 | \n",
" 35 | \n",
"
\n",
" \n",
" D | \n",
" 7 | \n",
" 22 | \n",
"
\n",
" \n",
" E | \n",
" 7 | \n",
" 18 | \n",
"
\n",
" \n",
" T | \n",
" 1 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Survived 0 1\n",
"Cabin \n",
"A 8 7\n",
"B 12 35\n",
"C 24 35\n",
"D 7 22\n",
"E 7 18\n",
"T 1 NaN"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(df[(df.Pclass == 1)]\n",
" .groupby([df.Cabin.str[:1],'Survived'])\n",
" .PassengerId\n",
" .count()\n",
" .unstack())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, the cabin doesn't guarantee whether the passengers are save. Cabin B has 3 times ratio but so other cabins. Cabin C not even a magnitude higher. So there's some limitations that we have. \n",
"\n",
"At least whether the passenger is in the upper class can be one of the factor of whether the passengers is survived. Let's test those. Again I will build frequency table of SES vs whether passengers is survived, and perform Chi-Square Independence test to confirm. "
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Frequency table\n",
"============================\n",
"Pclass 1 2 3\n",
"Survived \n",
"0 80 97 372\n",
"1 136 87 119\n",
"============================\n",
"ChiSquare test statistic: 102.888988757\n",
"p-value: 4.5492517113e-23\n"
]
}
],
"source": [
"compute_freq_chi2(df.Survived,df.Pclass)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since we already validated our dataset earlier (also from the frequency table, we can see that each cell has at least 5 expected cases), we can directly perform the statistical test."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So indeed, the test statistic result really high and again p-value is practically zero. The data provide convincing evidence that economic status and whether they survived are related."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lastly, we have `Embarked` variable. Let's see the survivability rate for each embarkation point."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Embarked\n",
"C 0.553571\n",
"Q 0.389610\n",
"S 0.336957\n",
"Name: Survived, dtype: float64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('Embarked').Survived.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Okay, we see that (C)herbourg has huge survivability rate compared to other two! How is this possible? My first thought would be Cherbourg could be the first/last embarkation point. So they will put around the corner of the ship. When googling schedule of embarkation, I found this [link](http://www.discoverireland.ie/Places-To-Go/Cork/Features/Remembering-RMS-Titanic) that stated the embarkation is in this order, \n",
"\n",
"`(S)outhampton - (C)herbourg - (Q)ueenstown`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cherbourg is actually in the middle embarkation point. So my assumption is false. Nonetheless, let's see frequency table and test statistics."
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Frequency table\n",
"============================\n",
"Pclass 1 2 3\n",
"Survived \n",
"0 80 97 372\n",
"1 136 87 119\n",
"============================\n",
"ChiSquare test statistic: 102.888988757\n",
"p-value: 4.5492517113e-23\n"
]
}
],
"source": [
"compute_freq_chi2(df.Survived,df.Pclass)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again the dataset has been validated for statistical test. The other thing is to observe the expected cases of each cell is 5, from the frequency table we know that to be true. Using ChiSquare Indepence test, our p-value is also practically zero. Thus the data also provide convincing evidence that Embarkation Point and survivability are related."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if embarkation point play nice with other predictors, age for example. I use `describe` method to describe age by Embarkation point."
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" Embarked | \n",
" C | \n",
" Q | \n",
" S | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 130.000000 | \n",
" 28.000000 | \n",
" 554.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 30.814769 | \n",
" 28.089286 | \n",
" 29.445397 | \n",
"
\n",
" \n",
" std | \n",
" 15.434860 | \n",
" 16.915396 | \n",
" 14.143192 | \n",
"
\n",
" \n",
" min | \n",
" 0.420000 | \n",
" 2.000000 | \n",
" 0.670000 | \n",
"
\n",
" \n",
" 25% | \n",
" 21.250000 | \n",
" 17.500000 | \n",
" 21.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 29.000000 | \n",
" 27.000000 | \n",
" 28.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 40.000000 | \n",
" 34.500000 | \n",
" 38.000000 | \n",
"
\n",
" \n",
" max | \n",
" 71.000000 | \n",
" 70.500000 | \n",
" 80.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Embarked C Q S\n",
"count 130.000000 28.000000 554.000000\n",
"mean 30.814769 28.089286 29.445397\n",
"std 15.434860 16.915396 14.143192\n",
"min 0.420000 2.000000 0.670000\n",
"25% 21.250000 17.500000 21.000000\n",
"50% 29.000000 27.000000 28.000000\n",
"75% 40.000000 34.500000 38.000000\n",
"max 71.000000 70.500000 80.000000"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.groupby('Embarked').Age.describe().unstack(level=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looking at this statistics, I know that all of the embarkation point has pretty normal distribution since the median and mean are similar. Let's use the violin plot again to confirm this and comparing age distribution by embarkation point side by side."
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAFtCAYAAAATY4N4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VOXd///XWWbPQkIS9k02UVAriHgjqCgKVb8F21oX\noFp/rVtbK7UqLlVve5eqVZGKIuDGLkJYrCgQtrAHkH0JO4HsIfskk8xyfn9MZiBAyD5nZnI9Hw8e\nJJPMOW8y4Xzmus61SJqmaQiCIAiCELJkvQMIgiAIgtA4opgLgiAIQogTxVwQBEEQQpwo5oIgCIIQ\n4kQxFwRBEIQQJ4q5IAiCIIQ4UcyFkOJyubj11lv5/e9/36THXbx4MQMGDGD06NGMHj2a+++/n9/+\n9rfs3bvX/z1PPvkkx48fv+JxnnjiCQoLCy/7Nd/zU1JSuP/+++ud8dtvv2XevHkAzJ8/n+nTp9f7\nGJfT0DwXuvrqq/l//+//MWrUKEaPHu3/OyMjI6A5fFlqeg0up7S0lN/+9rf+z0ePHk1paWmjcwBM\nmDCBoUOHMnr0aB544AHuv/9+nn32WfLz86/4vP379/Pcc8/VevwpU6awZs2aJskqhDZV7wCCUB+r\nVq3i6quv5sCBA5w4cYKrrrqqyY49YMAApk6d6v98y5YtPPnkkyQmJtKuXTs+++yzWo+xadOmGr/m\ne/65c+calO+nn36iV69eADz00EMNOkZzkSSJWbNmER0drXcUJEmq1/cXFhayb98+/+eLFy9u0jyP\nP/44jz/+uP/zd955hzfffJPJkyfX+Jy+ffvy0Ucf1XrsrVu30rNnzybJKYQ20TIXQsrcuXMZPnw4\nP//5z/nqq6/8j0+bNo177rmHBx54gH/+858MGzYMAKfTycSJE3nggQcYNWoUEyZMwG631+lct9xy\nC8OHD/e3hocNG8aBAwcoKyvjueee87e2/v73v6NpGhMmTABg3LhxZGVlMWzYMJ5//nnuvfdekpKS\n/M8HsNvt/PnPf2bUqFGMGzeO06dPA96W3JdffunP4Ps8KSmJNWvW8NVXXzF37lw+/vhj3n77bQCO\nHj3KuHHj/C3jJUuWAN6W7sMPP8yLL77I6NGjue+++0hJSbnsv/VyeRwOBwMHDvRnA/jd73532Zag\npmnUtP5USkoKDz30EH/+858ZOXIkDzzwAGvXruV3v/sdw4YNY+LEiTXmOHXqFACnTp3id7/7HQ89\n9BDDhg3j2WefpbKyEoB+/frxl7/8hZEjR7J//37/sXJzc7n//vuZM2cOAAsXLuTBBx/kgQceYNiw\nYcyfPx+AV155BYfDwejRo/F4PNVa9lOmTOHee+/lF7/4Bc8995z/jdjYsWP54IMPGDNmDMOGDePF\nF1+87L/9cgYNGsTJkyeBK792vl6KCRMm8I9//INx48Zx991389RTT1FeXs6cOXPYv38/7777LklJ\nSXU+vxCeRDEXQsaxY8fYu3cvP//5z/nFL37Bd999R1FRERs2bGDJkiUsWrSIxMRE7Ha7v3U2bdo0\nVFUlMTGRJUuWkJCQwL///e86n7N3794cOXKk2mOrVq2irKyMxYsXs3DhQgDOnj3rL0qzZs2ibdu2\nAPTq1Yvvv/+eu+66q9oxsrOzeeKJJ1iyZAn33Xcff/vb366Y46677mLYsGE89thjPPLII4C3Bep2\nu3nmmWcYN24cy5YtY9q0aXz44Yfs2bMHgH379vHEE0+wePFifvnLX/Kf//znsse/XB6z2czo0aNZ\nsGABAGlpaZw6dYo77rjjsscYN26c/zbFqFGj+NOf/uT/2v79+3nmmWf44YcfaN26NdOmTWP69Oks\nWrSIOXPmkJube9kcviK5YMECRo8ezfz581m5ciVnzpxh/fr1gPcN25133skPP/xA3759AcjKyuLx\nxx/nqaee4tFHH6WsrIyFCxcyffp0EhMT+fDDD3n33XcBmDhxImazmcWLFyPLsv93Z9GiRWzcuJHE\nxESWLl1Kz549eemll/z/pjNnzjB79my+++47tm7dWuMbpQs5HA6WLl3KoEGDan3tLnTw4EG++OIL\nli9fTk5ODj/++COPPvooffv25cUXX7zk90toeUQ3uxAy5s+fz2233UZkZCT9+vWjQ4cOzJ8/n7y8\nPEaMGEFERAQAjz76KFu3bgVg3bp1lJSU+Lu/XS4XrVu3rvM5JUnCbDZXe6x///5MmjSJsWPHMnjw\nYMaNG0enTp38X7+whTpgwIDLHrd3795cf/31gPce7VtvvdWg+7SnTp2isrLSfzFPSEjg7rvvZsOG\nDQwcOJD27dvTu3dvAK655poau5AvzvPmm29SWlrKww8/zJgxYxg/fjwLFizgV7/6VY3d2FfqZu/Q\noQNXX301AJ07dyYyMhJFUYiJiSEyMpKioqIr5vjb3/7Gpk2bmDFjBqdOnSI3N7daD0v//v39H2ua\n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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = sns.violinplot(data = df, x = 'Embarked', y = 'Age',order=[\"S\",\"C\",\"Q\"])\n",
"p.set(title = 'Age Distribution by Embarkation Point', \n",
" xlabel = 'Location', \n",
" ylabel = 'Age Distribution',\n",
" xticklabels = ['Southampton','Cherbourg', 'Queenstown']);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I can see from the violin plot little different age distribution betwen each location. Queenstown has wider distribution among the other two. Cherbourg in the middle, and Southampton has thinner distribution and highest peak. This wide distribution can also be explained by standard deviation in the earlier statistics. \n",
"\n",
"We can see a little peak in Southampton's age distribution, in children range. Children is supposed to be important factor when determining survivability. We can see that Southampton has higher peak children age distribution compared to Cherbourg. Nothing odd about Cherbourg in age distribution, explained by relevant statistic and violin plot. This suggest that oddness of Cherbourg can't be explained by age."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So again based on observation of the data what I found is many passengers who survived is based on:\n",
"\n",
"* Passengers are women or children.\n",
"* Passengers are an upper class.\n",
"* Passengers are from Cherbourg."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There's some limitation in my analysis is determining what caused difference in survived in upper classs. Checking whether the cabin has something to do about it has failed.\n",
"\n",
"Note that what I really do is observation based on this data. Hence this is **correlation** and not causation. You will have a causation when you have a controlled experiment. One must rebuild titanic condition, how it wrecked, and makes a total near-death experience. I don't really think your participants want to experiment that. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are some other variables that I don't analyze, like whether the passengers have siblings or partners. **These variables are bias in the dataset**. If you see the explanation, the description of the data at the top of this article, it stated:\n",
"\n",
"*With respect to the family relation variables (i.e. sibsp and parch)\n",
"some relations were ignored. *\n",
"\n",
"So this bias can lure us into thinking that not having family relations will somehow affect whether or not the passengers are going to survived, based on the observation of the data. Because of this data limitation, these variables are dangerous and best to not analyze if concerning about survivability."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The other concern is about how I handle missing values. I will build a frequency table to count whether or not the value is missing for each column."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" PassengerId | \n",
" Survived | \n",
" Pclass | \n",
" Name | \n",
" Sex | \n",
" Age | \n",
" SibSp | \n",
" Parch | \n",
" Ticket | \n",
" Fare | \n",
" Cabin | \n",
" Embarked | \n",
" WomenChildren | \n",
"
\n",
" \n",
" \n",
" \n",
" False | \n",
" 891 | \n",
" 891 | \n",
" 891 | \n",
" 891 | \n",
" 891 | \n",
" 714 | \n",
" 891 | \n",
" 891 | \n",
" 891 | \n",
" 891 | \n",
" 204 | \n",
" 889 | \n",
" 891 | \n",
"
\n",
" \n",
" True | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 177 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 687 | \n",
" 2 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket \\\n",
"False 891 891 891 891 891 714 891 891 891 \n",
"True NaN NaN NaN NaN NaN 177 NaN NaN NaN \n",
"\n",
" Fare Cabin Embarked WomenChildren \n",
"False 891 204 889 891 \n",
"True NaN 687 2 NaN "
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.apply(lambda x: x.isnull().value_counts())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By looking at the data, the survivability of passengers variable doesn't have any missing value. This is a good thing since this is our main interest. \n",
"\n",
"The highest value of missing data is `Cabin`. One way to handle it is find other passenger (if they have family who's also onboard) with same family name, and apply same Cabin with them. Intuitively, if their cabin are different, it may still in adjacent of each other. But as you can see from the analysis, cabin is not an important factor to determine whether the passengers have survived. So I won't dig deeper as to handle the missing value.\n",
"\n",
"The second highest is `Age`. This variable did concern me since this is one of the feature in my statistical modelling. I don't handle missing the value, instead I just ignored them. The reason is the range of age is too broad. I can create imputation for example, for baseball player which [\"the majority of players can be found in the 27-31 age range.\"](http://bleacherreport.com/articles/367083-age-to-reason-the-mlb-players-average-age). But Titanic passengers are from all age. It's too error prone to impute age of Titanic passengers. I won't get too worried about that since our data size is still large enough to do statistical test. By default pandas will ignore the missing value when I perform most operations.\n",
"\n",
"Lastly, I'm not concern about impute `Embarked` variable since it's only small value and our data is still large enough.\n",
"\n",
"Future work can be done. For example explore more about the cabin and use ticket number to pinpoin the location of passengers. Since the tragedy occurred in the middle of the night (again, movie-based-assumption), they should be near their cabin. It could be that the longer the distance between their location and lifeboats, will result in smaller chance of whether they survived. And also investigating of why passengers embarked from Cherbourg has higher survivability rate compared to Southampton or Queenstown. This oddness looks pretty normal and undetected in the analysis."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 1
}