Как сравнить датасеты с точками. Продолжение анализа Foursquare places
Это 2-ой пост про Foursquare places и вместе с тем рассказ о том, как сравнивать облака точек из двух пространственных наборов.
В прошлом посте я писала про то как скачать и предобработать данные из Foursquare places. Теперь настало время оценить их качество. Для этого я сравнила эти данные с официальным реестром зарегистрированных бизнесов в городе Тель-Авиве. Реестр я нашла на городском портале открытых данных.
Моя цель — понять, какие из категорий бизнесов Foursquare покрывает хорошо, а в каких есть пробелы.
🔧 Подготовка датасетов по шагам:
1. Ограничила датасет Foursquare рамками города
Сначала я загрузила географические границы Тель-Авива (GeoJSON) и оставила только те POIs, которые находятся внутри них.
2. Привела категории к общей системе
У Foursquare и муниципалитета разные классификации, поэтому я вручную (с помощью ChatGPT) сопоставила их. Для этого я составила словарь: в реестре категории крупнее, поэтому их я использовала как ключи, а листы категорий из Foursquare в качестве значений. Получились следующие укрупнённые категории:
Еда, Здоровье, Развлечения, Индустрия, Авто и транспорт, Магазины и торговля, Безопасность, Водный менеджмент, Заправки и Сельское хозяйство.
3. Перевела точки в гексагоны с помощью H3
Чтобы оценить плотность не одной цифрой на город, а массивом, я преобразовала координаты в ячейки H3 (гексагоны). Использование регулярной сетки - это очень удобный способ сравнения плотности точек: во-первых, она имеет фиксированную площадь, а значит достаточно просто посчитать кол-во объектов;
во-вторых, это дает возможность сделать выводы как об общей площади покрытия, так и покрытии в разных частях города;
в-третьих, сетка позволяет использовать choropleth map для визуализации
Теперь я могу сравнивать датасеты между собой
Методика сравнения датасетов
1. Посчитала базовые статистики
Начинать всегда хорошо с самого простого, поэтому я просто сравнила количество уникальных POIs, пар координат и оригинальных категорий в обоих датасетах
2. Для каждого каждого гекса посчитала, сколько точек в каждом источнике и вывела статистику:
1. в каком % гексов совпадает количество POIs
2. в каком % гексов больше Foursquare
3. в каком % гексов больше из официального источника
3. Для пересекающихся гексов представила статистику из пункта 3 в разрезе категорий бизнеса, посчитала коррелации, построила scatterplots
4.Посчитала дельту между числом объектов для каждой категории и гекса и визуализировала на тепловой карте. При желании вместо абсолютного значения можно показать %, а также исключить пустые гексы.
📊 Что получилось
🔹 Результаты 1-ого сравнения
Получилось, что в официальных данных точек на 10% больше, при этом почти у 50% координаты не уникальны - как минимум 2 точки в здании, а в датасете Foursquare 99.8% точек имеет уникальные координаты. Так же видно, что разнообразие категорий в Foursquare в 20 раз выше, но мы это уже учли, когда сопоставили категории между двумя датасетами
🔹Результаты 2-ого сравнения
Сравнение в гексах показало, что несмотря на бОльшее число POIs в официальных данных foursquare имеет большую площадь покрытия ( в границах города). Пересекается всего 53% (904/1679) из всех гексов, 8% гексов имеют одинаковое число POIs, 20% гексах преобладает Foursquare и в 25% официальный реестр.
🔹Результаты 3-ого сравнения
Официальный реестр оказался полнее почти во всех категориях в пересекающихся гексах.
Особенно сильные различия были в категориях:Еда, Транспорт и Здоровье
Особенно сильные различия были в категориях:Еда, Транспорт и Здоровье
Если смотреть на корреляции и scatterplots, то категория Еды выглядит лучше, чем Транспорт и Здоровье - данные коррелируют с друг с другом на 72% и при детальном изучений различий оказывается, что Foursquare сильно проигрывает только на рынках и на Центральной автобусной станции, часть этажей которой отданы под рынок. В остальных местах он стабильно передает 75% объектов.
Наименее представлена в Foursquare категория Индустрия, Металлы, но это и логично, так как обычно такой бизнес не относится к POIs
🔹Результаты 4-ого сравнения
На юге города, где больше мигрантов и возможно больше бизнесов не представленных онлайн, Foursquare не допокрывает объекты( 20-40 объектов в среднем). В центре данные совпадают, а в некоторых районах в центре Foursquare имеет больше точек. Возможно, индикатор наличия в данных уже не действующих бизнесов.
Если брать конкретную категорию для анализа, то например для Здоровья заметно, что скорее всего есть смещение координат в датасетах. Поскольку ярко красные гексы соседствуют с ярко зелеными, что означает погрешность в районе 150 м. Но в целом, даже если не учитывать такую погрешность, представленность POIs здоровья у Foursquare на 2-4 объекта ниже
📌 Выводы
Этот эксперимент показал мне, что Foursquare отражает распределение объектов в городе, особенно в самых многочисленных категориях ( Еда, здоровье, транспорт), но при этом содержит лишь 70-80% зарегистрированных бизнесов.
Поэтому при разработке приложений, городских карт, где важна полнота я бы не рекомендовала использовать или ограничиваться только Foursquare, при этом для аналитики, где относительные значения важнее абсолютных и погрешность в 20% простительна, этот источник можно использовать.
Ноутбук с кодом можно найти здесь