Исследование и визуализация данных

Это вторая часть статьи Data Storytelling об убийствах в Чикаго, которые в последнее время были горячей темой, включая упоминания президента Трампа, когда он баллотировался на свой пост в 2017 году. Я из Чикаго, и каждый раз, когда я встречаюсь с людьми из другого штата, они не могут не поговорить со мной об уровне убийств в городе, но очень немногие люди поднимают эту тему с точки зрения осведомленности о данных.

В первой части этой серии я очистил данные о преступлениях, но теперь я попытаюсь извлечь некоторые выводы из данных на местах. В этом разделе я буду использовать недавно созданный фрейм данных pandas из предыдущего раздела, чтобы нарисовать картину убийств в городе Чикаго.

самое опасное место в Чикаго - улицы летом, по выходным, с 23:00 до 2:00.

Распределение преступности по городу

Первое, что мы хотим увидеть, - это распределение убийств по всему городу, сгруппированных по полицейским участкам.

Для этого воспользуемся Сиборном. Мы будем черпать вдохновение из более ранних диаграмм рассеяния в первой части, чтобы визуализировать все убийства с 2001 по февраль 2018 года по округам. Ниже приведен код и полученный график.

# plot all homicides in dataset by location per District
df_homicide = df_homicide.loc[(df_homicide['X Coordinate']!=0)]
sns.lmplot('X Coordinate',
           'Y Coordinate',
           data=df_homicide[:],
           fit_reg=False, 
           hue="District", 
           palette='Dark2',
           size=12,
           ci=2,
           scatter_kws={"marker": "D", 
                        "s": 10}) 
ax = plt.gca()
ax.set_title("All Homicides (2001-2018) per District")

Из изображения выше мы можем наблюдать следующее:

  • высокий уровень убийств сгруппирован в верхнем левом и среднем нижнем углу диаграммы разброса.
  • Показатели убийств в правом верхнем углу и некоторые области в середине более свободно разбросаны.

Поскольку каждый район имеет свой цвет, из этой диаграммы мы можем сделать вывод о том, что районы с большим количеством точек, сгруппированных вместе, имеют больше убийств, чем те, в которых их нет. Итак, теперь, в некоторой степени, у нас есть представление об убийствах из пространственного измерения, но я также хотел бы понять эти показатели убийств из временного измерения.

Ниже я создал некоторую визуализацию убийства во времени и сделал заметки о наблюдениях после этого.

Годовой уровень убийств:

# plot bar chart of homicide rates for all years
plt.figure(figsize=(12,6))
sns.barplot(x='Year',
            y='HOMICIDE',
            data=df_homicide.groupby(['Year'])['Primary Type'].value_counts().\
                 unstack().reset_index(),
            color='steelblue').\
            set_title("CHICAGO MURDER RATES: 2001 - 2018")

Из представленной выше визуализации гистограммы мы можем сделать следующие выводы:

  • По доступным данным, убийства в Чикаго имели короткий всплеск восходящей тенденции с 2001 по 2003 год с 460 до 586.
  • За этим последовало хорошее падение до диапазона 400, который поддерживался в течение четырех лет до 2008 года.
  • Затем количество убийств сразу упало до 400 за семь лет до 2016 года.
  • Однако в 2016 году количество убийств резко выросло до 749 282 убийства по сравнению с 467 в 2015 году.
  • В 2017 году также наблюдался стабильно высокий уровень убийств, хотя и снизился с 90 до 659.
  • Можно сказать, что в 2016 и 2017 годах в Чикаго произошло заметное увеличение количества убийств.
  • Я думаю, мы можем начать понимать, почему в новостях так много говорится об убийствах в городе Ветров.
  • В свете наших наблюдений за прошлыми двумя годами в нашем наборе данных, я хотел иметь это в виду и по ходу изучать остальные данные глубже.

Ежемесячный уровень убийств:

# plot homicides sorted by month
fig, ax = plt.subplots(figsize=(14,6))
month_nms = ['January','February','March','April','May','June','July','August'\
             ,'September','October','November','December']    
fig = sns.barplot(x='Month',
                  y='HOMICIDE',
                  data=df_homicide.groupby(['Year','Month'])['Primary Type'].\
                  value_counts().unstack().reset_index(),
                  color='#808080')
ax.set_xticklabels(month_nms)
plt.title("CHICAGO MURDER RATES by MONTH -- All Years")
# -------------------------------------------
# plot average monthly temps in Chicago
# source of data:  ncdc.noaa.gov
mntemp = [26.5,31,39.5,49.5,59.5,70,76,75.5,68,56,44,32]
df_temps = pd.DataFrame(list(zip(month_nms,mntemp)),
                       columns=['Month','AVERAGE TEMPERATURE'])
fig, ax = plt.subplots(figsize=(14,6))
sns.barplot(x='Month', y='AVERAGE TEMPERATURE', data=df_temps,color='steelblue')

  • Из месяца в месяц мы видим, что в среднем количество убийств начинает неуклонно расти в течение марта и достигает пика в июле.
  • Январь был немного выше, чем февраль, но это похоже на продолжение декабря.
  • Многое приписывают этой циклической тенденции, но лучшее объяснение, похоже, связано со среднемесячными температурами и погодой в целом.
  • Зимы в Чикаго, как правило, очень холодные, и это не позволяет большинству людей выходить на улицу без особой необходимости.
  • Другой возможной причиной этой циклической тенденции является тот факт, что школы не работают в летние месяцы, и, следовательно, у большего числа молодых людей есть время, чтобы попасть в еще большие неприятности. Учитывая, что возрастная группа наибольшего риска - это возраст от 15 до 30 лет (Источник: Чикаго Трибьюн)

Уровень убийств в день недели:

# plot homicide rates vs. day of the week
fig, ax = plt.subplots(figsize=(14,6))
week_days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']    
fig = sns.barplot(x='Weekday',
                  y='HOMICIDE',
                  data=df_homicide.groupby(['Year','Weekday'])['Primary Type'].\
                       value_counts().unstack().reset_index(),
                  color='steelblue')
ax.set_xticklabels(week_days)
plt.title('HOMICIDE BY DAY OF THE WEEK -- All Years')

Затем мы копаем глубже, чтобы получить более детальный взгляд на временные рамки с месяца на неделю.

  • На этом уровне в понедельник и вторник был самый низкий уровень убийств - в среднем около 60 убийств в день.
  • В среду был небольшой подъем, за которым последовал еще один небольшой подъем в четверг. Это небольшое изменение едва заметно, но, учитывая, что это среднее значение за 18 лет, мы можем предположить, что некоторые из этих скачков более выражены в течение одних недель, чем другие.
  • Эта небольшая тенденция к росту, наблюдаемая ранее на этой неделе, увеличилась на 25% с 61 убийства в день в среднем до 81 убийства в день. Однако мы должны помнить, что эти средние значения не скорректированы с учетом сезонного характера этих убийств. Так что на самом деле цифры намного выше в теплые месяцы и ниже в более холодные.
  • В субботу показатель был устойчиво высоким, но лишь незначительно повысился по сравнению с пятницей.
  • Воскресенье действительно испытало падение уровня убийств до 60-х по сравнению с 80-ми, которое продолжало падать в понедельник и достигать максимальных 50, прежде чем недельный цикл повторился снова и снова.
  • Мы не знаем, что вызывает этот цикл, но мы можем предположить, что они связаны с отсутствием учебы или работы, и в это время все больше людей склонны заниматься наркотиками, бандитизмом и другими преступлениями.

Показатели убийств по часам:

# use seaborn barplot to plot homicides vs. hour of the day 
fig, ax = plt.subplots(figsize=(14,6))
fig = sns.barplot(x='HourOfDay',
                  y='HOMICIDE',
                  data=df_homicide.groupby(['Year','HourOfDay'])['Primary Type'].\
                       value_counts().unstack().reset_index(),
                  color='steelblue',
                  alpha=.75)
plt.title('HOMICIDE BY HOUR OF THE DAY -- All Years')

Продолжая анализ временных рамок, имеет смысл взглянуть на уровень убийств в Чикаго с точки зрения времени суток. Я думаю, что легко сделать предположение, что убийства происходят чаще ночью, чем днем, но в лучшем случае это всего лишь предположение, поэтому было разумно смотреть на цифры, независимо от того, насколько очевидным, на наш взгляд, является вывод.

Один из способов взглянуть на приведенный выше график - с точки зрения обычного рабочего или учебного дня.

  • В 7 часов утра самое низкое количество убийств - около 9, но с наступлением утра мы наблюдаем неуклонный рост количества убийств.
  • В 14:00 мы пересекаем отметку 15, которая уступает место еще одному устойчивому росту с небольшой волатильностью, когда в 18:00 резко возрастает, а в 19:00 падает, но этого недостаточно, чтобы стереть предыдущий прирост ставки.
  • В 9 часов вечера все начинает тревожиться. Средние значения иногда могут не дать четкой картины, но они сообщают об этой простой метрике суммы всех наблюдений, разделенной на количество наблюдений. Учитывая это, 25 убийств в час - это довольно много.
  • С 21:00 до 12:00 мы наблюдаем очень устойчивый рост этих показателей. Показатели в 12 и 1 час ночи остаются выше 30 убийств в час, и только в 2 часа ночи мы видим падение ниже 30, а затем быстрое падение до 7 утра обратно до уровня ниже 10.
  • Вероятная причина этого падения может быть потому, что все склонны ложиться спать ближе к ночи. Даже наркодилерам и членам банд иногда приходится засыпать.
  • Последнее наблюдение из приведенного выше графика, которое я хотел бы сделать, заключается в том, что по шкалам ошибок для каждой часовой шкалы разница в ночные часы больше, чем в дневные часы, что указывает на более активные периоды убийств в ночное время.

Годовое количество убийств в разбивке по домам:

# plot domestic variable vs. homicide variable
fig, ax = plt.subplots(figsize=(14,6))
df_arrest = df_homicide[['Year','Domestic']]
ax = sns.countplot(x="Year",
                   hue='Domestic',
                   data=df_arrest,
                   palette="Blues_d")
plt.title('HOMICIDE - DOMESTIC STATS BY YEAR')

  • Уровень внутренней причастности для всего диапазона данных, похоже, не оказывает заметного влияния на количество убийств. Всплеск убийств с 2016 по 2017 год не имеет заметной корреляции с внутренними цифрами.
  • Учитывая, что исходный набор данных содержал более 40 типов преступлений, связанных с поджогами, сексуальными посягательствами, домашним насилием, преследованием и т. Д., Имеет смысл, что эта переменная была включена в набор данных, но она бесполезна для нашего конкретного случая, связанного с убийствами, даже если она должен иметь вес в домашнем насилии.

Уровень убийств по месту преступления:

# visualize the "scene of the crime" vs. number of occurences at such scene
crime_scene = df_homicide['Primary Type'].\
            groupby(df_homicide['Location Description']).\
            value_counts().\
            unstack().\
            sort_values('HOMICIDE',ascending=False).\
            reset_index()
    
# Top Homicide Crime Scene Locations
crime_scene.head(10)

# create a count plot for all crime scene locations
g = sns.factorplot(x='Location Description',
                   y='HOMICIDE',
                   data=crime_scene,
                   kind='bar',
                   size=10,
                   color='steelblue', 
                   saturation=10)
g.fig.set_size_inches(15,5)
g.set_xticklabels(rotation=90)
plt.title('CRIME SCENE BY LOCATION FREQUENCY')

  • Из приведенного выше сюжета Seaborn FactorPlot видно, что большинство убийств (более 60%) происходит на улице.
  • На втором месте - автомобили, за ними следуют квартира, переулок, дом, подъезд, двор и парковка.
  • Остальные участки присутствуют в очень небольших количествах, чтобы иметь значительное статистическое влияние. Тем не менее, стоит подробнее изучить методы сбора данных, поскольку некоторые другие места (какими бы специализированными ни были ярлыки) могут быть помечены после более крупного обобщенного ярлыка, такого как улица.
  • Вдали от всех вышеперечисленных наблюдений, которые мы сделали до сих пор, мы можем начать видеть, как вырисовывается картина, которая есть; самое опасное место в Чикаго - улицы летом, по выходным, с 23:00 до 2:00.
  • Однако мы хотим знать, верно ли это для всех частей Чикаго. Так часто меня спрашивают чужие друзья, чувствую ли я себя в безопасности, живя в Чикаго, и я говорю им, что это безопасно, если вы не пойдете в неправильные места. Затем я показываю свое исследование, чтобы выяснить, правда ли это.

Тепловая карта - Уровень убийств в полицейском участке:

# create a heatmap showing crime by district by year
corr = df_homicide.groupby(['District','Year']).count().Date.unstack()
fig, ax = plt.subplots(figsize=(15,13))
sns.set(font_scale=1.0)
sns.heatmap(corr.dropna(axis=1),
            annot=True,
           linewidths=0.2,
           cmap='Blues',
            robust=True,
           cbar_kws={'label': 'HOMICIDES'})
plt.title('HOMICIDE vs DISTRICT vs YEAR')

Выше я создал тепловую карту, сравнивающую все полицейские округа Чикаго с количеством убийств в каждом округе с 2001 по 2017 год.

  • Как показывает тепловая карта, убийства неравномерно распределены по районам. Более темная область соответствует более высокому уровню убийств.
  • Чем темнее область на тепловой карте, тем больше убийств в этом районе в соответствующем году.
  • В округах 1, 16 и 20 уровень убийств низкий: 10 или меньше в год за все годы в наборе данных.
  • Во всех округах 17, 18, 19 и 24 уровень убийств составляет 20 или меньше убийств в год, хотя в некоторые годы они опускаются ниже 10 в год.
  • В округах 2, 12, 14 и 22 в год регистрируется 30 или менее убийств.
  • В остальных округах более 30 убийств в год, причем в некоторых из них уровень убийств значительно превышает 50 в год.
  • В районах 7 и 11 наблюдаются стабильно высокие цифры на протяжении 17 лет в наборе данных. Мы могли бы пойти дальше и объявить их самыми смертоносными полицейскими округами в Чикаго для убийств.
  • Самый высокий уровень убийств для всего набора данных был в округе 11 в 2016 году с 92 убийствами.
  • 2016 год был худшим годом по количеству убийств в наборе данных: в 6 округах было зарегистрировано более 50 убийств.
  • Тепловая карта оживляет эти данные и является отличным инструментом в нашем наборе инструментов для исследования данных.

Наиболее опасные и наименее опасные полицейские округа

with sns.plotting_context('notebook',font_scale=1.5):
    sorted_homicides = df_homicide[df_homicide['Year']>=2016].groupby(['District']).count()\
                    .Arrest.reset_index().sort_values('Arrest',ascending=False)
    fig, ax = plt.subplots(figsize=(14,6))
    sns.barplot(x='District',
                y='Arrest',
                data=sorted_homicides,
                color='steelblue',
                order = list(sorted_homicides['District']),
                label='big')
    plt.title('HOMICIDES PER DISTRICT (2016-2017) - Highest to Lowest')

Как мы видели ранее на тепловой карте, некоторые районы более опасны, чем другие, но теперь мы можем более внимательно изучить это наблюдение. Из различных визуализаций, которые мы создали, мы можем, по крайней мере, сделать вывод, что 2016 и 2017 годы были самыми активными годами для убийств в Чикаго.

  • На диаграмме выше я визуализирую наибольшее и наименьшее количество убийств в округе за этот двухлетний период, чтобы увидеть их отношения.
  • За эти два года в 10 лучших округах было совершено более 90 убийств.
  • В округе 11 было на 30 убийств больше, чем в следующей группе в этом списке.
  • На первые пять из 22 групп приходится более 50% всех убийств в городе.
  • На первые 10 групп приходится более 80% всех убийств в Чикаго.
  • В 8 из 25 округов уровень убийств от очень низкого до относительно низкого.

Аресты против нерестований за убийства:

Затем я рассмотрел взаимосвязь между арестом и убийствами, построив некоторые взаимосвязи ниже.

Похоже, в Чикаго тебе сойдет с рук убийство.

# create seaborn countplots  for whole dataset
fig, ax = plt.subplots(figsize=(14,6))
df_arrest = df_homicide[['Year','Arrest']]
ax = sns.countplot(x="Year",
                   hue='Arrest',
                   data=df_arrest,
                   palette="PuBuGn_d")
plt.title('HOMICIDE - ARRESTS STATS BY YEAR')

На приведенной выше диаграмме сравниваются аресты и не арестованные для всех убийств в наборе данных за все 17 лет.

  • В начале 2000-х полиция произвела больше арестов, чем не арестовала ни одного.
  • С 2001 по 2008 годы полиция арестовала более половины совершенных убийств.
  • С 2009 года по настоящее время полиция производила аресты менее чем в половине случаев.
  • На самом деле эта тенденция выглядит так, как будто тенденция к снижению количества арестов со стороны полиции, возможно, началась примерно в 2004 году.
  • В 2016 и 2017 годах количество арестов составляло менее 30%.
# create seaborn countplots for 2016 and 2017 -- high crime rate spike years
fig, ax = plt.subplots(figsize=(14,6))
ax = sns.countplot(x="Month",
                   hue='Arrest',
                   data=df_homicide[df_homicide['Year']>=2016][['Month','Arrest']],
                   palette="PuBuGn_d")
month_nms = ['January','February','March','April','May','June','July',\
             'August','September','October','November','December']    
ax.set_xticklabels(month_nms)
plt.title('HOMICIDE - ARRESTS STATS BY MONTH -- (2016-2018)')

  • Что меня действительно удивляет, так это то, что даже после пика преступности в 2016 году, за которым последовало 2107, полиция продолжала арестовывать за убийства. На рисунке выше сделана попытка взглянуть на характеристики месяца, но он просто подтверждает наши предыдущие наблюдения.
  • Я пока не обнаружил веской причины для этого снижения, но после небольшого поиска я обнаружил сообщения в СМИ об изменении политики CPD, чтобы меньше концентрироваться на аресте преступников низкого уровня и больше сосредотачиваться на более крупной рыбе с точки зрения масштабов преступности. Возникает вопрос, не является ли убийство серьезным преступлением?
  • Еще одна интересная вещь, которая произошла в 2016 году, - это внимание общественности к стрельбе полицией в отношении цветных людей, и это заставляет меня задуматься, могло ли это сыграть большую роль в том, что полиция не слишком агрессивна при арестах. Большинство районов с высоким уровнем преступности находятся преимущественно в районах проживания меньшинств, и в 2016 году судья постановил выпустить видео, на котором полиция Чикаго застреливает члена черного сообщества.
# create seaborn lmplot to compare arrest rates for different districts
dfx = df_homicide[df_homicide['District'].\
                isin(list(sorted_homicides.head(10)['District']))].\
                groupby(['District','Year','Month','Arrest'])['Primary Type'].\
                value_counts().unstack().reset_index()
with sns.plotting_context('notebook',font_scale=1.25):
    sns.set_context("notebook", font_scale=1.15)
    g = sns.lmplot('Year','HOMICIDE',
                   col='District',
                   col_wrap=5,
                   size=5,
                   aspect=0.5,
                   sharex=False,
                   data=dfx[:],
                   fit_reg=True,
                   hue="Arrest", 
                   palette=sns.color_palette("seismic_r", 2),
                   scatter_kws={"marker": "o",
                            "s": 7},
                   line_kws={"lw":0.7})

Дальнейшая разбивка арестов и невыполнения арестов на районном уровне, только по районам с наибольшим количеством убийств, добавила больше веса моему предыдущему наблюдению за уменьшением количества арестов за эти годы в наборе данных. На графиках выше показаны линии регрессии арестов и невыполненных арестов на одной оси для 10 самых опасных районов.

Тенденция к тому, что полиция производит меньше арестов, чем в предыдущем году, началась еще до 2006 года, и к 2010 году таблица перевернулась во всех округах, и количество арестованных было меньше половины всех убийств.

Вполне может быть, что шансы быть арестованным за убийство меньше половины. Шансы значительно улучшаются, если вы преступник, живущий в районе с высоким уровнем преступности.

Затем я использовал Folium, альбом визуализации на питоне, чтобы создать несколько карт, иллюстрирующих некоторые из моих находок, и сделать заметки ниже. Карты в исходном коде адаптируются к пользователю, поэтому вы можете увеличивать и уменьшать масштаб и перемещать их.

Хролоплетная карта убийств и округов

(2001–2017)

# plot chloropleth maps 2001 - 2017
def toString(x):
    return str(int(x))
df_homicide_allyears = df_homicide.groupby(['District']).count().Arrest.reset_index()
df_homicide_allyears['District'] = df_homicide_allyears['District'].apply(toString)
# ______________________________________________________#
chicago = location=[41.85, -87.68]
m = folium.Map(chicago,
               zoom_start=10)
plugins.Fullscreen(
    position='topright',
    title='Expand me',
    title_cancel='Exit me',
    force_separate_button=True).add_to(m)
m.choropleth(
    geo_data='chicago_police_districts.geojson',
    name='choropleth',
    data=df_homicide_allyears,
    columns=['District', 'Arrest'],
    key_on='feature.properties.dist_num',
    fill_color='YlOrRd', 
    fill_opacity=0.4, 
    line_opacity=0.2,
    legend_name='Choropleth of Homicide per Police District : 2001-2017',
    highlight=True
    )
folium.TileLayer('openstreetmap').add_to(m)
folium.TileLayer('cartodbpositron').add_to(m)
folium.LayerControl().add_to(m)
m.save("map1.html") 
IFrame('map1.html', width=990, height=700)
# plot 2016-2018 chloropleth map
# code for second map is available on github

  • Я создал две хороплетные карты для двух разных таймфреймов. Один для всего набора данных, а другой для периода 2016–2017 годов, когда мы наблюдали всплеск убийств.
  • Эти карты - отличный способ показать, как преступления с убийствами различаются в разных полицейских округах.
  • На обеих картах мы видим, что преступность сконцентрирована вокруг полицейских участков на западной и южной стороне города.
  • Есть два района, которые особенно выделяются оттуда затемненными оттенками. Это 11-й и 7-й районы.
  • Кроме того, районы с более высоким уровнем преступности географически связаны / заразны.

Тепловая карта убийств и округов - (2016–2017 гг.)

# plot heatmap all districts -- (2016-2018)
after_2015_geo = []
for index, row in df_homicide[df_homicide['Year']>=2016][['Latitude','Longitude','District']].dropna().iterrows():
    after_2015_geo.append([row["Latitude"], row["Longitude"],row['District']])
# ___________________________________________________________________
chicago = location=[41.85, -87.68]
m = folium.Map(chicago, zoom_start=9.5,control_scale = False)
plugins.Fullscreen(
    position='topright',
    title='Expand me',
    title_cancel='Exit me',
    force_separate_button=True).add_to(m)
m.choropleth(
    geo_data='chicago_police_districts.geojson',
    name='choropleth',
    data=df_homicide_after_2015,
    columns=['District', 'Arrest'],
    key_on='feature.properties.dist_num',
    fill_color='YlOrRd', 
    fill_opacity=0.4, 
    line_opacity=0.2,
    legend_name='HeatMap Homicides : 2016-2017',
    highlight=True
    )
m.add_child(plugins.HeatMap(after_2015_geo,
                            name='all_homicides_2016_to_2017',
                            radius=5,
                            max_zoom=1,
                            blur=10, 
                            max_val=3.0))
folium.TileLayer('openstreetmap').add_to(m)
folium.TileLayer('cartodbpositron').add_to(m)
folium.LayerControl().add_to(m)
m.save("map3.html") 
IFrame('map3.html', width=990, height=700)

  • Приведенные выше визуализации тепловых карт были созданы с помощью библиотеки визуализаций pythons Folium, которая дает отличный контроль над построением динамических карт на записной книжке.
  • Тепловая карта рассчитана на период 2016–2017 годов. Отдельные места преступления из этого временного интервала нанесены на карту города и представлены в виде цветов.
  • Тепловая карта может помочь нам визуализировать общие местоположения на карте, где наблюдается высокая или низкая частота преступлений. Темно-оранжевым цветом обозначены области с высоким уровнем преступности, а отдельные светло-желто-зеленые оттенки показывают на карте места с низким уровнем преступности.
  • Сразу складывается впечатление, что убийства выше на западной и южной стороне Чикаго. Мы можем увеличивать масштаб для получения более подробной информации по каждой области, где при каждом увеличении отображается больше кластеров в этой подобласти.

Примечание. Я также создал интервальные тепловые карты и карты кластеров, которые более интерактивны и их можно просмотреть здесь и на github.

Наконец, я создал карты кластеров, на которых показаны группы мест убийств. Здесь находится интерактивная записная книжка, созданная на nbviewer.

Они отображают отдельные места преступления, что более или менее похоже на тепловую карту, без добавления цвета к этим географическим местоположениям. Одна из карт предназначена для периода 2016–2017 годов, а другая - для данных за 2 месяца, доступных для 2018 года (январь и февраль).

Карта января и февраля особенно интересна, потому что она показывает, где преступность уже начала проявляться в больших количествах в начале 2018 года. К сожалению, убийства происходят по той же схеме, что и в предыдущие годы, при этом подавляющее большинство преступлений происходит в одних и тех же районах. .

Карта станет отличным инструментом для тех, кто в нужной области пытается определить, какие проблемные места требуют дополнительных ресурсов. Карты также могут быть отличным инструментом для визуального осмотра отдельных мест совершения преступлений для людей в сообществе и в сочетании с их знанием местности могут дать новые идеи, которые можно исследовать и принимать меры, чтобы сделать сообщество более безопасным. Примером может служить определение членами сообщества проблемных мест и создание безопасного маршрута для детей в школу и обратно. Карта будет большим подспорьем, помогая им определять менее опасные блоки.

Заключение

В этом блокноте я использовал данные, собранные полицейским управлением Чикаго, чтобы получить некоторые сведения об убийствах в Чикаго. Хотя проведенный здесь анализ данных лишен национальной перспективы, мои основные выводы можно свести к нескольким ключевым моментам, приведенным ниже:

  • Количество убийств сильно варьируется в зависимости от полицейского участка. Кажется, что в районах с высокой численностью населения из года в год всегда наблюдается высокая численность, и наоборот.
  • Количество убийств практически не изменилось с 2004 по 2015 год: 400 и 500 убийств в год. В 2016 году эти цифры внезапно выросли до 700 убийств в год.
  • Эти новые цифры сохранялись в 2017 году на уровне более 650 убийств в год.
  • Существует корреляция между погодными температурами и количеством убийств в месяц. Чем теплее месяц, тем больше совершается убийств.
  • День недели также влияет на то, сколько убийств совершается, а в выходные дни число убийств выше.
  • Время дня также влияет на количество совершаемых убийств: с 21:00 до 2:00 наиболее опасно, а с 7:00 до 13:00 - самые безопасные часы.
  • В округах 11, 7 и 15 было самое большое количество убийств в период 2016–2017 годов: более 120 убийств в каждом за тот же период.
  • Подавляющее большинство убийств совершается на улице, составляя более 60% всех мест убийств.
  • В 20,16, 18, 1, 19, 17, 24 и 14 округах за период 2016–2017 годов было совершено менее 20 убийств в каждом, что делает их самыми безопасными полицейскими округами в Чикаго.
  • Количество арестов за убийства сокращается с 2003 года, и в 2008 году количество убийств превысило количество арестов, произведенных за убийства. По состоянию на 2018 год на каждые 10 убийств производится менее 3 ареста.

Хотя эти наблюдения очень информативны, я должен упомянуть, что они не рисуют всей картины, и следует проводить сравнения с национальными или другими сопоставимыми данными, чтобы сделать их более перспективными. Например, хотя количество убийств в год кажется высоким, мы не знаем, находится ли оно в пределах среднего национального показателя или слишком высоко. Такие сравнения помогут нам построить более убедительные аргументы в наших рассказах о данных, используя их для подтверждения наших местных результатов.

При этом наши выводы по-прежнему очень актуальны для местных руководителей, потому что они очень четко показывают, где и когда, но не почему.