{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Men are worse drivers, but only slightly\n",
"\n",
"This is a Jupyter Notebook for analyzing the traffic collision data available for Los Angeles County through TIMS. The analysis uses the Pandas package in Python:\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data can be downloaded from TIMS with a user account. Only ~5000 collisions may be downloaded at a time. This allows for about one month worth of data for Los Angeles County. \n",
"\n",
"Here, the data for the parties involved in traffic collisions fron January 2012 in Los Angeles County is used."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(8893, 34)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Load the data, show data size\n",
"\n",
"data = pandas.read_csv('Jan12Parties.csv')\n",
"data.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There were 8893 parties in recorded accidents in Los Angeles County in Jan 2012. This database records all parties involved in a collision: perpetrator, victim, affected bystanders etc."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" CASEID | \n",
" PARNUM | \n",
" PTYPE | \n",
" ATFAULT | \n",
" PSEX | \n",
" PAGE | \n",
" PSOBER | \n",
" PDRUG | \n",
" PDIRECT | \n",
" PSAFETY1 | \n",
" ... | \n",
" VEHYEAR | \n",
" VEHMAKE | \n",
" VEHTYPE | \n",
" CHPTYPE1 | \n",
" CHPTYPE2 | \n",
" PRACE | \n",
" INATTN | \n",
" TRUCKCMB | \n",
" TRAILRCMB | \n",
" YEAR_ | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 5980867 | \n",
" 1 | \n",
" 1 | \n",
" Y | \n",
" M | \n",
" 57 | \n",
" A | \n",
" - | \n",
" S | \n",
" L | \n",
" ... | \n",
" 1997 | \n",
" HONDA | \n",
" A | \n",
" 01 | \n",
" 00 | \n",
" B | \n",
" NaN | \n",
" - | \n",
" - | \n",
" 2012 | \n",
"
\n",
" \n",
" 1 | \n",
" 5980827 | \n",
" 2 | \n",
" 1 | \n",
" Y | \n",
" M | \n",
" 18 | \n",
" A | \n",
" - | \n",
" S | \n",
" L | \n",
" ... | \n",
" 1996 | \n",
" FORD | \n",
" A | \n",
" 01 | \n",
" 00 | \n",
" W | \n",
" NaN | \n",
" - | \n",
" - | \n",
" 2012 | \n",
"
\n",
" \n",
" 2 | \n",
" 5980827 | \n",
" 1 | \n",
" 1 | \n",
" N | \n",
" F | \n",
" 56 | \n",
" A | \n",
" - | \n",
" S | \n",
" M | \n",
" ... | \n",
" 2001 | \n",
" KIA | \n",
" A | \n",
" 07 | \n",
" 00 | \n",
" B | \n",
" NaN | \n",
" - | \n",
" - | \n",
" 2012 | \n",
"
\n",
" \n",
" 3 | \n",
" 5980823 | \n",
" 2 | \n",
" 1 | \n",
" N | \n",
" F | \n",
" 31 | \n",
" A | \n",
" - | \n",
" N | \n",
" M | \n",
" ... | \n",
" 2005 | \n",
" NISSAN | \n",
" A | \n",
" 01 | \n",
" 00 | \n",
" O | \n",
" NaN | \n",
" - | \n",
" - | \n",
" 2012 | \n",
"
\n",
" \n",
" 4 | \n",
" 5980823 | \n",
" 1 | \n",
" 2 | \n",
" Y | \n",
" M | \n",
" 50 | \n",
" G | \n",
" G | \n",
" W | \n",
" - | \n",
" ... | \n",
" 0 | \n",
" - | \n",
" N | \n",
" 60 | \n",
" 00 | \n",
" B | \n",
" NaN | \n",
" - | \n",
" - | \n",
" 2012 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 34 columns
\n",
"
"
],
"text/plain": [
" CASEID PARNUM PTYPE ATFAULT PSEX PAGE PSOBER PDRUG PDIRECT PSAFETY1 \\\n",
"0 5980867 1 1 Y M 57 A - S L \n",
"1 5980827 2 1 Y M 18 A - S L \n",
"2 5980827 1 1 N F 56 A - S M \n",
"3 5980823 2 1 N F 31 A - N M \n",
"4 5980823 1 2 Y M 50 G G W - \n",
"\n",
" ... VEHYEAR VEHMAKE VEHTYPE CHPTYPE1 CHPTYPE2 PRACE INATTN TRUCKCMB \\\n",
"0 ... 1997 HONDA A 01 00 B NaN - \n",
"1 ... 1996 FORD A 01 00 W NaN - \n",
"2 ... 2001 KIA A 07 00 B NaN - \n",
"3 ... 2005 NISSAN A 01 00 O NaN - \n",
"4 ... 0 - N 60 00 B NaN - \n",
"\n",
" TRAILRCMB YEAR_ \n",
"0 - 2012 \n",
"1 - 2012 \n",
"2 - 2012 \n",
"3 - 2012 \n",
"4 - 2012 \n",
"\n",
"[5 rows x 34 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# What does the data look like? limit to first five rows\n",
"\n",
"data.iloc[:5,:]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Querying a Pandas DataFrame\n",
"\n",
"Pandas DataFrames can be queried in a way which is conceptually (though not syntactically) similar to SQL databases.\n",
"\n",
"First, let's count up the total number of incidents (unique CASEID), and compare that to the number of parties."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"4146"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cases = data.CASEID.nunique()\n",
"cases"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So there were 4146 cases (collisions) and 8893 parties. That means an average of 8893/4146 = 2.14 parties per case.\n",
"\n",
"Next, we will group by sex and fault, then count the entries with each unique combination of levels on these columns."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" counts | \n",
"
\n",
" \n",
" ATFAULT | \n",
" PSEX | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" N | \n",
" - | \n",
" 481 | \n",
"
\n",
" \n",
" F | \n",
" 1938 | \n",
"
\n",
" \n",
" M | \n",
" 2577 | \n",
"
\n",
" \n",
" Y | \n",
" - | \n",
" 297 | \n",
"
\n",
" \n",
" F | \n",
" 1369 | \n",
"
\n",
" \n",
" M | \n",
" 2231 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" counts\n",
"ATFAULT PSEX \n",
"N - 481\n",
" F 1938\n",
" M 2577\n",
"Y - 297\n",
" F 1369\n",
" M 2231"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Count parties by sex & fault\n",
"\n",
"faultgender = data.groupby(['ATFAULT','PSEX']).count().iloc[:,[0]].rename(columns = {'CASEID':'counts'})\n",
"faultgender"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ATFAULT | \n",
" PSEX | \n",
" counts | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" N | \n",
" F | \n",
" 1938 | \n",
"
\n",
" \n",
" 2 | \n",
" N | \n",
" M | \n",
" 2577 | \n",
"
\n",
" \n",
" 4 | \n",
" Y | \n",
" F | \n",
" 1369 | \n",
"
\n",
" \n",
" 5 | \n",
" Y | \n",
" M | \n",
" 2231 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ATFAULT PSEX counts\n",
"1 N F 1938\n",
"2 N M 2577\n",
"4 Y F 1369\n",
"5 Y M 2231"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fg = faultgender.reset_index()\n",
"fg = fg[fg.PSEX != '-']\n",
"fg"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.2394444444444443"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#relative probabilites?\n",
"\n",
"float(2231)/(1369+2231)/0.5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Correcting for confounders\n",
"\n",
"This would seem to indicate that men are ~24% more likely to cause accidents, based on the assumption that men and women are equal portions of the population. However, due to the confounder of men being more likely to drive (due to driving/delivery occupations etc.) this is probably not quite true.\n",
"\n",
"Luckily, the data contains enough information to correct for this, at least partly. The database includes information about both the perpetrators and victims of crashes, which should correct for the hypothesis that there are more men driving. For each gender, we can calculate the probability of being at fault. Then we can calculate the relative risk of being at fault, conditioning on being male.\n",
"\n",
"$\\large RR = \\frac{P(Fault | Male)}{P(Fault | Female)}$"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[0.46401830282861894, 0.4139703658905352, 1.1208973903975479]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get values from dataframes\n",
"NF = float(fg.counts[(fg.PSEX == 'F')&(fg.ATFAULT == 'N')].values[0])\n",
"NM = float(fg.counts[(fg.PSEX == 'M')&(fg.ATFAULT == 'N')].values[0])\n",
"YF = float(fg.counts[(fg.PSEX == 'F')&(fg.ATFAULT == 'Y')].values[0])\n",
"YM = float(fg.counts[(fg.PSEX == 'M')&(fg.ATFAULT == 'Y')].values[0])\n",
"\n",
"#probability of being at fault for male parties\n",
"PM = YM/(YM+NM)\n",
"#probability of being at fault for female parties\n",
"PF = YF/(YF+NF)\n",
"#Relative risk of being at fault, given being a party in a traffic accident and being male\n",
"RR = PM/PF\n",
"[PM,PF,RR]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Conclusion...\n",
"\n",
"So men are ~12% more likely to be at fault in a collision, at least during January 2012 in Los Angeles County. We can also plot data in this notebook as follows."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nISIikRIaEmb2ezPbbGYr48qamdkiM1tjZs+b2Slx88aa2TozW21mF8eV55rZSjNba2a/SmSdRUTk\noES3JP7HkPU1AAAIEElEQVQAXFKq7C7gb+5+BvAiMBbAzDoBQ4GOwABgsplZuM4UYKS7dwA6mFnp\nbYqISAIkNCTc/RVgR6niwcCMcHoG8O1w+lvAHHff5+6FwDqgu5mlA03cfVm43ONx64iISAIlo0/i\n6+F3Z+PuxcDXw/JWwEdxyxWFZa2AjXHlG8MyERFJsEp9x3WCeVVv8L646bzwISIiBxUUFFBQUFDh\ncskIic1mlubum8NTSf8Ky4uANnHLtQ7Losoj3Vd1dRURqZPy8vLIy8uLPc/Pzy9zueo43WTho8TT\nwA3h9PXAU3Hl15hZYzNrC7QHloanpD41s+5hR/aIuHVERCSBEtqSMLNZBGd7TjWzDcA44CFgvpnd\nBKwnGNGEu79rZvOAd4G9wCh3LzkV9QNgOnA8sNDdn0tkvUVEJJDQkHD3YRGzLopY/kHgwTLK3wS6\nVGHVRESkEnTFtYiIRFJIiIhIJIWEiIhEUkiIiEgkhYSIiERSSIiISCSFhIiIRFJIiIhIJIWEiIhE\nUkiIiEgkhYSIiERSSIiISCSFhIiIRFJIiIhIJIWEiIhEUkiIiEgkhYSIiERSSIiISCSFhIiIRFJI\niIhIJIWEiIhEUkiIiEgkhYSIiERSSIiISCSFhIiIRFJIiIhIJIWEiIhEUkiIiEikpIWEmRWa2Qoz\ne9vMloZlzcxskZmtMbPnzeyUuOXHmtk6M1ttZhcnq94iIvVJMlsSB4A8d89x9+5h2V3A39z9DOBF\nYCyAmXUChgIdgQHAZDOzJNRZRKReSWZIWBmvPxiYEU7PAL4dTn8LmOPu+9y9EFgHdEdERBIqmSHh\nwAtmtszMbg7L0tx9M4C7FwNfD8tbAR/FrVsUlomISAI1TOJr93b3j82sBbDIzNYQBEe80s9FRKQa\nJS0k3P3j8OcWM3uS4PTRZjNLc/fNZpYO/CtcvAhoE7d667CsTPfFTeeFDxEROaigoICCgoIKlzP3\n6j9YN7MTgRR332VmJwGLgHzgQmC7uz9sZncCzdz9rrDjeibQg+A00wvA6V5G5c0sCXtUsxiweHGy\na5Fc/ftDMt7b1cXM6n0zW+/zqn2fmxnuftiAoGS1JNKAv5iZh3WY6e6LzOwNYJ6Z3QSsJxjRhLu/\na2bzgHeBvcCosgJCRESqVlJCwt0/BLqWUb4duChinQeBBxNcNRERiaMrrkVEJJJCQkREIikkREQk\nkkJCREQiKSRERCSSQkJERCIpJEREJJJCQkREIikkREQkkkJCREQiKSRERCSSQkJERCIpJEREJJJC\nQkREIikkREQkkkJCREQiKSRERCSSQkJERCIpJEREJJJCQkREIikkREQkkkJCREQiKSRERCSSQkJE\nRCIpJEREJJJCQkREIikkREQkkkJCREQi1aqQMLNLzew9M1trZncmuz4iInVdrQkJM0sBHgEuAc4C\nvmNmZya3ViIidVutCQmgO7DO3de7+15gDjA4yXUSEanTalNItAI+inu+MSwTEZEEqU0hISIi1axh\nsitwBIqAjLjnrcOyw1i1VKdm698/2TVIPrO6/U6o23tXOXqfJ/59bu6e0BeoKmbWAFgDXAh8DCwF\nvuPuq5NaMRGROqzWtCTcfb+Z/RBYRHCa7PcKCBGRxKo1LQkREal+6riuBcxsv5m9ZWZvhz8zKl6r\nzO0sNrPccHps1dZS6jMzO2BmP497/p9mdm8F6ww+0mudzKyfmfWMmHe9mf0r7n9l+pFsO247mWb2\nTjidbWYDjmY7dYVConb43N1z3T0n/LmhCrb5X1WwDZESXwFXmFnzI1jn2wQXxh6JPKBXOfPnxP2v\n3HCE245XcoolBxh4DNup9RQStcNhwxfCo52XzeyN8HFeWN7PzJ6JW26SmY0ote6DwAnhEdcfE157\nqQ/2Ab8FxpSeEb5X/9fMVpjZC2bWOmwNfAv4Wfg+bFtqncvM7HUze9PMFplZCzPLBL4H3Bqu07uM\nepT1v3KzmS0NWxfzzez4sPwPZnZF3HI7S63XEMgHhoavd9UR/1bqAIVE7VDygf62mT0Rlm0GLnL3\nc4BrgElxy5fb0eTuY4EvwiOu6xJTZalnHHgUuNbMmpSaNwn4g7tnA7OASe7+d+Bp4PbwffhhqXWW\nuPt57t4NmAvc4e7rgceAX4brvFpGPa4O/1feMrPrw7In3L27u+cA7wEjy9mHg0/c9wH3AnPD15tf\nmV9EXVNrRjfVc1+4e26pssbAI2bWFdgPnF791RI5yN13mdkMYDSwO25WT+DycPqPwMOV2FwbM5sH\nnAY0AkqHSJQ57v6jUmVdzOwBoClwEvB8JbclqCVRm90GFLv72cA5BKEBQbM//u96fMT6uhZLEmEi\nwZH6SXFlRzOEchLw6/D9/T2i38eVMR0YFW7r/rhtxf5XLLgirXGZa9dzConaoawP9FMILioEGAE0\nCKfXA53MrJGZNSW4+LAse8ILFEWqggG4+w5gHoee0nkN+E44PRxYEk7vBE6O2N7JwKZw+vq48vLW\niZIKFJtZI+DauPJCggMsCG4W2qiMdY/m9eoUhUTtUNaR2GTgBjN7G+gAfA7g7hsJ/klXEdwp962I\n7fwWeEcd11JF4t9bvwBOjSv7EXCjmS0n+JAeHZbPAW4PO6cP6bgm6DD+k5ktA7bElT8DXF5Ox3VZ\n7iG4Q8MSIP4C3KlAv/B/6DzC/6FSFhMcdNXbjmtdTCciIpHUkhARkUgKCRERiaSQEBGRSAoJERGJ\npJAQEZFICgkREYmkkBARkUgKCRERifT/Ab+aok1ZuElMAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"N = 2\n",
"Men = (YM, NM)\n",
"\n",
"ind = np.arange(N) # the x locations for the groups\n",
"width = 0.35 # the width of the bars\n",
"\n",
"fig, ax = plt.subplots()\n",
"rects1 = ax.bar(ind, Men, width, color='r')\n",
"\n",
"Women = (YF, NF)\n",
"rects2 = ax.bar(ind + width, Women, width, color='y')\n",
"\n",
"# add some text for labels, title and axes ticks\n",
"ax.set_ylabel('Count')\n",
"ax.set_title('Count by Fault & Gender')\n",
"ax.set_xticks(ind + width)\n",
"ax.set_xticklabels(('Fault','Not at Fault'))\n",
"\n",
"ax.legend((rects1[0], rects2[0]), ('Men', 'Women'),loc=(0.25,0.75))\n",
"\n",
"def autolabel(rects):\n",
" # attach some text labels\n",
" for rect in rects:\n",
" height = rect.get_height()\n",
" ax.text(rect.get_x() + rect.get_width()/2., 1.05*height,\n",
" '%d' % int(height),\n",
" ha='center', va='bottom')\n",
"\n",
"autolabel(rects1)\n",
"autolabel(rects2)\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}