Предыстория
Нью-Йоркские власти обеспокоились проблемой дошкольного образования. Малообеспеченные семьи часто не могут позволить своим детям дошкольные программы, а это создает разрыв с детьми из обеспеченных семей. Власти поставили задачу обеспечить универсальное бесплатное дошкольное образование в формате «рядом с домом».
Мэрии предстояло не только разработать обучающие программы и выделить классные комнаты, но и рассказать всем семьям с маленькими детьми (нужный возраст – 4 года) о новой возможности.
Было решено, что аналитики больших данных выявят подходящие семьи, а волонтеры обзвонят родителей и подробно расскажут о бесплатном дошкольном образовании.

Решение
Аналитики выбрали семь источников информации о семьях с 4-летними детьми. Но эти данные нельзя было просто наложить друг на друга: в некоторых наборах информация была неполной, в других находились банальные опечатки. Компьютер мог неправильно сопоставить данные и вывести одну и ту же семью несколько раз. В таком случае некоторые родители получили бы несколько звонков, что тратит время обеих сторон.
Перед аналитиками стояла задача сопоставить разрозненные данные из разных источников и вывести записи с максимальным количеством информации о каждой семье.
Сбор данных
Аналитики использовали 7 источников данных:
- HHS-Connect (клиентский индекс Health and Human Services) – набор данных о лицах, которые когда-либо пользовались городскими услугами. Здесь записаны данные о членах семьи, получали ли они пособия, отдельно указан глава домохозяйства.
- Набор данных, приобретенный у компании Experian (специализируется на аналитике для рыночных исследований). Данные о семьях с 4-летними детьми, проживающие в Нью-Йорке.
- Набор данных от Департамента здравоохранения и психической гигиены. Содержит все записи о рождении детей в Нью-Йорке 4 года назад. Содержит информацию о детях и их родителях/опекунах.
- Наборы данных из системы управления регистрацией учащихся. Списки тех, кто предварительно зарегистрировался в выбранной школе, и тех, кто этого не сделал. Содержат информацию о детях и их родителях/опекунах.
- Набор данных о поданных заявках в центры раннего развития. Содержит информацию о детях и их родителях/опекунах.
- Набор данных об одобренных заявках в центры раннего развития. Содержит информацию о детях и их родителях/опекунах. Все данные подтверждены.
- Еще один набор данных о детях, зарегистрированных в центрах раннего развития. Однако в этом наборе информация не верифицирована должным образом.
Сначала все данные были помещены в городскую платформу для работы с данными Databridge, принадлежащую Отделу аналитики данных (MODA) и Департаменту информационных технологий и телекоммуникаций (DoITT). Департамент взял на себя процессы ETL (извлечение данных из внешних источников; их трансформация и очистка; загрузка в хранилище данных).
Одновременно команда консалтинговой группы Avanade разработала CRM для волонтеров, чтобы те могли добавлять дополнительную информацию, полученную во время телефонных звонков.
Работа с данными
Первый шаг – выбор тех полей, которые есть одновременно во всех наборах. Выбранные поля: фамилия, адрес, номер телефона и идентификационный номер здания (BIN), в котором проживает семья.
Затем – структуризация данных. Все символы в строках получили верхний регистр, а все специальные символы (например, дефисы в номерах телефонов) – удалены.
Названия полей тоже были приведены к единому стандарту. Поля, заполненные явно плохими данными (например, вместо номера телефона – «000-000-0000») были исключены.
Затем аналитики объединили все наборы данных. Несколько записей сливались в одну, если совпадали следующие поля: фамилия и номер телефона, или фамилия и адрес; или адрес и номер телефона; или идентификационный номер здания и номер телефона.
Аналитики использовали процедуру SAS DQMATCH, которая удаляет ненужные слова (например, «the» или «Mr.»), удаляет некоторые гласные и т. д. Подробности о процедуре можно прочитать здесь.
Каждое новое домохозяйство получило свой идентификатор.

Чтобы бороться с возможными опечатками в именах детей, было создано поле, которое показывает расстояние Левенштейна.
Расстояние Левенштейна – разница в символах между двумя строками. Например, расстояние между именами «ROBERT» и «JOBERY» равно 2, потому что нужно изменить «J» на «R» и «Y» на «T», чтобы превратить «JOBERY» в «ROBERT».
Если расстояние Левенштейна между именами детей в одном домохозяйстве было больше 2, то появлялось поле «новый ребенок», которое получало «дочерний идентификатор» (идентификатор домохозяйства + числовая версия первых 6 букв имени ребенка).
Если в семье есть только один 4-летний ребенок, то его идентификатор был таким же, как и идентификатор домохозяйства.
После создания всех идентификаторов аналитики выгрузили новый набор данных. В строке каждого домохозяйства были собраны все контакты и данные о семье (включая число детей). Набор был загружен в CRM, с которой работали волонтеры.
Проект занял 4 месяца, аналитики использовали инструменты Base SAS и SAS Dataflux. В итоге сотрудники мэрии и волонтеры привлекли к программе бесплатного дошкольного образования 53 250 учеников.