完整项目地址:www.kaggle.com/weiyunchen/nypd-mv-collisions
序言
北京第三区交通委提醒您:道路千万条,安全第一条。行车不规范,亲人两行泪。
加载数据
相信通过序言,大家已经基本了解了这是一个怎样的数据集,它统计了从2012年到2019年在大城市纽约发生的1454053起交通事故。
缺失值处理
可以看到,缺失值主要分布在一些附加信息的特征中,尤其是第三四五辆机动车的信息几乎全部为缺失值,这说明大型多辆机动车的交通事故占极少数
由于这是一个交通事故的统计数据,因此若记录的某些数据没有对事故损失的具体描述,既几项关键信息数据的记录均为缺失值,那么这些数据就是没有意义的数据,这些关键信息的缺失不仅给计算造成了负担,也会影响我们后续的分析。
该数据集的关键信息即为伤亡信息的数据,我们按照这些条件进行查找看是否存在无意义的数据或统计错误的数据。
根据上面的查询结果,可以看出虽然某些伤亡人数信息存在缺失值,但并不存在这些信息均为缺失值的数据,也就是说某些信息记录的某类伤亡人数为缺失值值等价与该事故造成的该类伤亡人数为0,说明该数据集中的每条数据对事故的关键信息都是存在一定记录的,我们只需要小改就可以。
我们注意到该数据集对每起事故的肇事车辆预设的最大登记数为5,但大部分肇事车辆数都达不到5,因此对肇事车辆的信息记录的位置会存在很多缺失值,接下来我们查看是否存在跳跃记录的情况,既不按照表格顺序填写肇事车辆信息
上面的结果可以看出,在第三辆肇事车辆数据为空值的情况下,第四辆和第五辆也均为空值,这说明该数据集对肇事车辆的统计确实是按照表格顺序填写的,因此我们可以根据第三辆肇事车辆数据是否为空值判断肇事车辆是否不少于三辆
通过以上分析,我们得出结论,除了死伤人数及经纬度信息外,其他列的空值都是文字信息,且基本都是按照正常的逻辑填写,对我们稍后的分析不会产生影响,因此为了尽可能还原数据的特征,我们暂时不做处理。
对于死伤人数及经纬度信息的缺失值。我们将死伤人数的空值替换为0
,经纬度的空值替换为U
。
处理完伤亡人数的缺失值以后,我们可以额外补充一列死伤人数之和的特征。
地理因素分析
接下来我们对事故发生的地理位置进行分析,由于该数据集结构清晰信息简炼,所以我们只需要将该数据集中的重要信息表现在地图上即可。
我们首先利用
LOCATION
变量对每个地点的事故发生次数进行统计生成了新数据集count_loc
,然后在原来的数据集上对特征进行了筛选重新组成了一个新的数据集new_loc,该数据集是对每一个事故地点的地理特征信息的记录。
接下来我们将这两个数据集合并成一个新数据集the_loc
,该数据集既包含事故发生地点的地理特征信息,又标明了每个地点的事故发生次数。
可以看到该数据集总体的结构非常清晰。
由于原始数据是对12年到19年的所有交通事故的记录,共145万起交通事故,因此若将这些事故地点全部标记到地图上是不美观且没有意义的,数据分析的最终目的是寻求规律,因此我们仅将事故最高发的2000个地点在地图上标记并打上标签,其中标签含义如下:
- Lat : 纬度
- Lng : 经度
- ZIP CODE : 邮编
- ON STREET NAME : 附近街道名称
- BOROUGH : 行政区
-
Incidents : 事故发生次数
基于时间序列的综合分析
我们猜想,交通事故的发生频率与时间、人口甚至人文风气等因素都存在很大的关系,设想一下:在上下班时间,一个路口挤满了人,在阴天雨季,道路能见度低,路面湿滑,此时,一个熟悉的声音在耳畔响起
北京第三区交通委再次提醒您:道路千万条,安全第一条。行车不规范,亲人两行泪
通过流浪地球,我们感受到了北京第三交通委的热切关怀,通过不厌其烦的提醒来唤起大家对交通安全的重视,这也从侧面反映了交通事故和当地的环境存在很大的联系,接下来我们先对纽约的五个行政区进行对比分析
行政区-时间序列分析
- 首先,我们利用
BOROUGH
和date
这两个变量交叉组合对原来的数据集重新排序分类,并统计每一类的伤亡人数NUMBER OF PERSONS INFLUENCED
之和,得到一个新的数据集time_place_person
- 然后,通过
BOROUGH
变量的五种不同的取值将一个数据集切分成五个平行的数据集df1
到df5
- 由于这五个平行数据集拥有相同的时间序列标签
date
,因此我们利用date
作为母结点,将五个平行的数据集重新合并成一个数据集df
- 五个平行数据集合并后,各自的维度
value
组成了五个平行的value_行政区
,也就相当于我们将原始数据集中一维的value
切分为了五个平行的维度value_行政区
并重新映射到时间序列里
可以看出,交通事故的发生具有一定的季节周期性和地域性
月、日、时-时间序列分析
将上面的数据集更换为month_0和hour_0,我们便得到了小时和月份的时序图
时间序列分解图
下面我们将时间序列分解为趋势,季节和残差分量
ACF和PACF自相关图
可以看到,自相关和偏自相关都是12阶拖尾,说明交通事故的发生频率具有季节变动特征,可以用ARMA模型进行分析
网友评论