Введение

«The Offender Based Transaction Statistics (OBTS)» (далее также – «OBTS», датасет) - серия датасетов, подготовленных бюро судебной статистики для сбора информации, фиксирующей путь взрослых[1] преступников от момента попадания их в систему уголовного правосудия США до их «выхода», будь то приговор или «оправдание». Указанная статистика состоит из всех дел, прошедших через уголовные системы штата за указанный календарный год. В нашем случае это 1990 год. Отдельным наблюдением в датасете является уголовное дело, закодированное уникальный ключом, для каждого дела в идеале мы должны знать 61 параметр, включая полицейский, прокурорский, судебный уровень и уровень вынесения приговора. Датасет включает в себя социально-демографические данные, данные о юридической квалификации дела на каждом этапе, дате и времени, исходе дела. Более подробная информация, описание всего датасета, иные необходимые сведения содержатся в исчерпывающем виде на официальном сайте проекта по ссылке: Offender Based Transaction Statistics (OBTS), 1990. Наше описание не ставит целью повторять сведения, уже описанные другими авторами.

[1] Не путать с понятием «совершеннолетний», т.к. по законам США за некоторые виды преступлений ответственность может наступать раньше 18/21 года

Список файлов

  1. 06191–0001-Data – оригинальный датасет с официального сайта. Формат .xpt
  2. 06191–0001-Codebook – подготовленное бюро судебной статистики официальное описание OBTS. Содержит полную информацию о целях, способе сбора информации, даёт расшифровку некоторым терминам, содержит полную информацию о типе данных, их смысле, максимальном и минимальном значениях, качестве заполненности данных, расшифровке закодированных переменных для каждого параметра. Также в конце описания можно найти словари терминов, расшифровку кодов преступлений и округов (County) штатов. В случае недопониманий в первую очередь обращайтесь к этому файлу. Формат .pdf
  3. «obts_recoded» - подготовленный нашей командой датасет OBTS, в котором мы избавляемся от закодированных переменных, превращая их в читабельные, исправляем ряд неточностей изначального датасета. Описание процесса препроцессинга представлено ниже. Работа проводилась в ЯП python и R, конечная тетрадь с кодом препроцессинга, как и сам код сделаны в R. Формат .csv
  4. «obts_filtered» - подготовленный нашей командой отфильтрованный датасет. Фильтрация проводилась с целью улучшения заполненности датасета. В дальнейшем мы используем финальный датасет в изучение траектории уголовного дела в США методами машинного обучения. Работа с датасетом на данном этапе будет также описана ниже. Формат .csv

Препроцессинг

Перекодирование названий округов

Выполнено в R с использованием RStudio.

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

В оригинальном датасете колонка V8 соответствует округу, V7 – штату. При этом названия штатов обозначены уникальными аббревиатурами, но округи обозначены неуникальными числовыми/число-буквенными/буквенными кодами.

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

Для этого мы с помощью RTabulizer извлекли и распознали страницы описания датасета, со словарём округов (сс. 72–81). Табулайзер не смог правильно распознать все пары код – округ, большая часть склеилась в таком формате: «000  [1]Округ000  Округ», то есть надо было разделить последнее слово и первые цифры. Для этого мы применили регулярные выражения.

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

Важно! Надо оставлять двойной пробел, чтобы сепаратор был универсальным – надо помнить это при редактировании данных. В будущем вам будет проще разделять пару код-округ на два столбца. Возможно, в вашей версии табулайзера пробел будет не двойной. Проверьте как эта программа разделила пару код-округ.

После этого каждый датафрейм надо было превратить из двуколоночного (вида код-пара|код-пара) в одноколоночный. Так как нам нужно сохранить логику словаря, чтобы соответствующий округ был в соответствующем штате надо было сохранить порядок пар «код округ», то есть присоединять пары следующим образом: «первый столбец первая строка, второй столбец первая строка и т.д.»

Мы получили 10 одноколоночных датафреймов, которые теперь соединяем в один. Чистим этот датафрейм от NA и пустых строк. Разбиваем датафрейм на две колонки по сепаратору двойного пробела.

У нас получился датафрейм с названиями штатов и парами код-округ. Теперь мы создаём колонку с названиями штата для каждой пары код-округ, оставшиеся в датафрейме названия штатов будет нам в качестве подсказки. Больше нам названия штатов, в отдельной строке не нужны. В нашем оригинальном датасете отсутствуют некоторые штаты. Строки с этими штатами мы тоже удаляем.