Панамские документы. С миру по нитке

в 8:30, , рубрики: data mining, R, shiny, shiny dashboards, визуализация данных, хабр не для политики

imageКак многим известно из прессы, международный консорциум журналистов-расследователей (ICIJ) выложил в свободный доступ, так называемый «Панамский архив»: сведения о лицах, связанных с офшорными компаниями по всему миру, полученные неизвестными лицами из панамской юридической фирмы Mossack Fonseca.

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

Обзор данных

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

Итак, имеется 4 csv-файла с данными и файл связи между ними, в каждом файле присутствует идентификатор (не уникальный), а связность между узлами обеспечивает файл связи, в котором в колонке rel_type указан тип связи. Путем анализа файлов, их идентификаторов, рисованием на бумаге линий и стрелок, было определено, что связность обеспечивается следующим образом (рис. 1).
image
рис. 1 Схема связи между данными в файлах

В итоговую таблицу попали данные о бенефициарах офшоров (файл Officers), их адресах (Adresses), и самих офшорах (Entities).
Учитывая, что идентификаторы не уникальны (имеются общие пересекаемые множества), и объединить попарно таблицы по ключу однозначно невозможно, то таблицы соединялись одна за одной, объединениями слева и общими пересечениями. Все это было сделано в R с помощью пакетов tidyr и dplyr. В дальнейшем, были исключены некоторые малозначимые колонки. Итоговое число уникальных сущностей (то есть всех бенефициаров со связанными с ними офшорами) составило 1.4 млн. записей.

Интерфейс

Графическим веб-интерфейсом традиционно является интерфейс shiny-dashboard, в котором используется только основная панель с двумя закладками.

Отображение на глобусе

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

Для отображения потоков на глобусе, используется пакет threejs, для рендеринга, в данном случае, используется генерация карты (а не готовый снимок ландшафтного покрова). На глобусе столбиками отображены все страны, в которых имеются владельцы офшоров (таких оказалось 220, то есть фактически все страны мира), высота столбика отражает количество владельцев офшоров относительно других стран. А дугами отмечены все офшоры из всех стран, толщина дуг зависит от количества офшоров в данном направлении. Для детализации можно выбирать конкретные страны и увидеть владельцами каких офшоров они являются. В таблице в соседнем блоке указано общее число офшоров для пары – страна бенефициар и страна офшор.

Таблица

На второй закладке (рис.3) приведена таблица с объединенными данными, а учитывая значительное количество данных (1.5 млн. строк), для отображения таблицы используется объект Data Table с вычислениями (фильтрацией, сортировкой, поиском) на серверной стороне, это обеспечивается пакетом DT (враппером к JS библиотеке DataTables). Для каждой колонки возможно осуществить сортировку, поиск нужных значений (поиск занимает около 3-4 секунд).
image
рис. 3 Вторая закладка

ЗаключениеВыводы

А выводы каждый делает сам...

Автор: atikhonov

Источник

Поделиться новостью

* - обязательные к заполнению поля