CoderCastrov logo
CoderCastrov
Гео

Календарь миллиардов под рукой

Календарь миллиардов под рукой
просмотров
21 мин чтение
#Гео

Неисследованные возможности данных о популярности Google в академической и бизнес-сфере

Кратко: [1] Я объясняю, почему данные о популярности Google являются неисследованной золотой жилой для исследователей. [2] Я создаю свой собственный парсер Google карт и собираю данные о популярности в более чем 13 000 местах по всей Европе. [3] Я показываю, как вы можете геокодировать и отобразить все эти места бесплатно, и как вы можете использовать эти цифровые следы, чтобы получить представление о межкультурных различиях в распределении времени (т.е. о том, как люди в определенной культуре обычно проводят свое время) [4] Я фокусируюсь на источниках предвзятости и других потенциальных проблемах, с которыми будущие исследователи должны столкнуться при создании своих исследований.


За последнее десятилетие исследователи в академической среде восхваляли возможности, предоставленные все возрастающим производством цифровых следов, чтобы изменить способ изучения социальной реальности. Изучая паттерны в результатах поиска, фотографиях, твитах и подобных данных, мы могли изучать офлайн мир через онлайн призму, таков аргумент. Один из самых известных сторонников этого нового методологического подхода - всегда харизматичный профессор Ричард Роджерс, является одним из самых известных сторонников этого нового методологического подхода и является своего рода крестным отцом того, что мы сегодня называем "цифровыми методами".

Некоторые идеи Роджерса были мгновенно приняты и сейчас являются частью инструментария аналитика данных. Подумайте, например, о так называемом исследовании "Google Trends", которое используется журналистами, блоггерами и учеными для определения всплесков и спадов "горячих тем" в общественной сфере. Или что насчет прогнозирования всплеска гриппа с использованием тех же данных? Несмотря на некоторые успехи, методологическая парадигма Роджерса - именно из-за своего заразительного энтузиазма и оптимизма - также надежды наивна и рискует затмить некоторые из проблем, сопровождающих анализ цифровых следов. Все взвешенное, онлайн-мир полон предубеждений, от искаженных и самоотобранных популяций до структурных ограничений платформ и алгоритмических расчетов, которые искажают экспозицию. Я вспоминаю об этом каждый раз, когда вижу диктора, бушующего о том, что думают люди в Twitter о последних событиях; платформа, которая представляет собой высокообразованную, левосклонную, относительно молодую самоотобранную подвыборку населения, политически поляризованную своими собственными алгоритмическими фильтрами. Перевод знаний из онлайн-мира в офлайн-мир должен вызывать все виды тревог, и в любом случае должен сопровождаться альтернативными чтениями и интерпретациями исследователем.


Тем не менее, я пишу эту статью, чтобы убедить вас в том, что существует недооцененная золотая жила данных о популярности Google, которая легко доступна, а именно данные о популярности Google. Вы, наверное, заметили график популярности при поиске определенного места на Google картах. График показывает, насколько занято место обычно (0%-100%) в любой заданный час недели, относительно самого загруженного часа (который представляет собой верхний предел шкалы и, следовательно, "100% загруженности"). График выглядит примерно так:

Figure 1. The new digital methods goldmine in all its glory

Я буду аргументировать на протяжении этого блога (a) почему этот тип данных полезен для исследований в академической среде и бизнесе, и (b) как вы можете собирать, исследовать и анализировать данные о популярности. Я напишу свой собственный парсер Google карт для сбора данных о ресторанах и супермаркетах в 30 европейских городах и проведу некоторые исследовательские анализы на языке Python. Я также покажу вам, как вы можете автоматизировать прямую геокодировку бесплатно и как получить геоjson-карты массово для визуализации географических данных с легкостью. Конечная цель здесь - вдохновить будущих исследователей на размышление о новых путях, которые могут использовать этот тип данных для получения новых и захватывающих знаний о нашем социальном мире. Я минимизирую количество представленного здесь кода на Python. Это не пошаговое руководство, а относительно короткое и лаконичное демонстрационное пособие.

[Часть 1] Парсинг Google Maps

Я не первый, кто заинтересовался парсингом данных о популярности. Уже есть популярный пакет на Python, который делает именно это. Однако, эти пакеты требуют либо (1) ключ API, либо (2) заранее известную информацию о конкретных местах, которые вы хотите спарсить (например, идентификаторы мест Google). Более того, эти инструменты только парсят график популярности, в то время как я хотел спарсить всю доступную информацию, включая количество отзывов, категории мест (например, неформальное, уютное) и данные о популярности. Критически важно и, в отличие от этих доступных инструментов, **я хотел, чтобы мой парсер содержал опцию "свободного поиска", где пользователь может просто определить конкретный поиск в предопределенной области, парся все места и всю доступную информацию, соответствующую заданной категории. **Если Google уходит слишком далеко (например, парсит конкретные рестораны в соседнем, но другом городе), сеанс парсинга останавливается и переходит к следующей комбинации регион * термин поиска. Это означает, что парсер сам способен составлять карты регионов, не требуя никаких предварительных знаний о интересующих местах. Например, если вы даете парсеру список из 10 городов (например, Нью-Йорк, Токио) и типы мест (например, ресторан), он должен вернуть все информацию о местах - включая их популярные времена - без дополнительных вводных данных.

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

Я использовал комбинацию Selenium и Beautifulsoup на Python для создания парсера. Ранняя версия парсера автоматически прокручивала все дни в конкретном месте (см. Гиф 2.). Этот метод оказался слишком медленным и был заменен прямым доступом к данным о популярности в исходном коде страницы.

Gif 2. Ранняя версия парсера Google Maps

Окончательная версия парсера содержит около тысячи строк кода и, честно говоря, это огромный беспорядок. Впоследствии я был плохо подготовлен к этой задаче и слишком амбициозен. Верно, он включал все виды фантастических опций и мог справиться с множеством исключений. Например, он проверял, увеличивал ли Google конкретный подрегион или нет, менял ли область поиска общих координат при прокрутке результатов и приводил ли "рядом" поиск к более детализированной области поиска. Все это звучит здорово, пока вы не понимаете, что Google постоянно изменяет свой исходный код, слегка ломая скрипт тут и там, если вы подождете несколько недель. Поэтому, если вы запустите скрипт сейчас, вы обязательно столкнетесь с ошибками. Однако, я смог спарсить около 13 000 мест, относящихся к ресторанам и супермаркетам, в 30 городах 6 западноевропейских стран: Бельгии, Нидерландах, Германии, Италии, Испании и Франции. Все конкретные комбинации регион * категория мест, использованные для этого исследования, можно найти здесь на моем Github.

Если вас интересует, как работает окончательный парсер, посмотрите мое короткое демонстрационное видео здесь. В основе я подключаюсь к моей базе данных MySQL, настроенной на другой Linux-машине, перед парсингом, запускаю браузер Chrome с помощью Selenium, выполняю поиск в Google и парсю данные место за местом. Затем я автоматически загружаю данные в базу данных MYSQL после парсинга всех мест в конкретном регионе, и переключаюсь на другой сервер (с использованием переключателя NordVPN, который я написал) после каждой сессии, чтобы избежать обнаружения ботов. В конце концов, база данных содержит две таблицы. Одна таблица содержит информацию о конкретных местах (одна строка = одно место), такую как категория места, адрес, оценки отзывов и т. д. Вторая таблица используется для хранения данных о популярности времени и немного объемнее, содержа около миллиона строк, где каждая строка представляет собой один час в конкретном месте (так что одна строка = один час). URL Google Maps используется в качестве идентификатора в обеих таблицах, что позволяет связать эти источники данных за считанные секунды.

Рисунок 2. Внутреннее устройство моего парсера Google Maps

Я экспортирую обе таблицы в CSV и вуаля, у нас есть наши данные! Это может звучать так, будто все это было сделано в течение одного ленивого воскресного дня, но это только потому, что я подавляю травму, вызванную всей этой мучительной сборкой данных. Разработка парсера заняла у меня около двух недель, постоянно сталкиваясь с новыми исключениями и непредвиденным поведением Google Maps, и сбор данных занял еще неделю (парсинг 24/7 без прерываний). Я агрегировал категории мест в более значимые и общие уровни (например, "греческий ресторан", "индийский ресторан" = рестораны для наших целей) и создал дополнительную переменную "агрегированная категория".

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

[Часть 2] Получение подробных данных о геолокации.

После загрузки данных в нашу среду Python мы готовы к некоторому исследовательскому визуальному анализу, то есть к отображению местоположений на какую-то карту (GeoJson, shapefile и т. д.). Насколько мне известно, невозможно извлечь точную геолокацию конкретного места из Google Maps. Конечно, вы найдете некоторые блог-посты, в которых описывается, как можно скрэпить координаты конкретного места из кода страницы, но эти методы (а) ненадежны или (б) не работают из-за недавних изменений в исходном коде. Кроме того, не путайте координаты, включенные в URL страницы места Google, с фактическими координатами места. Они представляют только широту и долготу центра карты, которые не представляют и не являются уникальными для конкретного местоположения!

Это означает, что нам придется взять адреса Google Maps и выполнить прямое геокодирование либо:

  • Скрэпить какую-то другую геокодирующую платформу, например latlong.net
  • Воспользоваться открытыми данными openstreetmap, разместив собственный сервер OSRM. Я не хочу использовать бесплатный API OSM, который, безусловно, заблокирует меня, если я буду отправлять ему 13 000+ запросов за короткий период времени.
  • Воспользоваться коммерческим геокодирующим API, таким как Google Maps API.

Однако, поскольку я предпочитаю тратить свои деньги на книги и видеоигры, а не на какой-то API-сервис, я не хочу раскрывать свой кошелек. Мне понадобился день, чтобы выяснить самый надежный способ прямого геокодирования 13 000 местоположений, не потратив ни цента.

Как оказалось, платформы, такие как latlong.net, хорошо осознают свою привлекательность для ботов и поэтому реализовали несколько мер безопасности для предотвращения автоматического сбора данных. Они заблокировали мой IP-адрес после скрэпинга всего нескольких местоположений, и переключение на новый сервер через VPN замедлило бы процесс на значительную (и неприемлемую) степень. То же самое относится и к другим платформам. Следующее, что я попытался сделать, - это размещение собственного сервера openstreetmap. Это сработало, но я быстро понял, что значительная часть моих запросов была неоднозначной, когда OSM распознавал неправильное местоположение или вообще не распознавал адрес. Возможно, API OSM недостаточно гибкое для работы с несогласованным форматом некоторых адресов Google Maps? Что бы ни было, это означало, что мне пришлось искать коммерческий API-сервис без... какого-либо бюджета. Ой.

Google Maps не подходил: их политика ценообразования привела бы к тому, что я потратил бы около 70 долларов только на геокодирование. После некоторого исследования и тестирования нескольких коммерческих API с небольшой партией адресов, API Positionstack оказался явным победителем. Он справляется с неоднозначными адресами без особых проблем и - вот самое лучшее - позволяет выполнять 25 000 бесплатных запросов (прямое/обратное геокодирование) каждый месяц! Интересно, ваш бюджет обновляется в начале каждого календарного месяца. Это означает, что вы можете выполнить 50 000 бесплатных запросов за два дня (например, 31 августа и 1 сентября), если вы планируете заранее.

Я использовал адрес и страну каждого местоположения в качестве параметров для моих запросов Positionstack и использовал ID местоположения в качестве идентификатора для связи геокодированного набора данных с моим набором данных Google Maps. Я также записывал, не удался ли конкретный запрос (что иногда случалось...) и реализовал ограниченный цикл повтора (о котором вы можете прочитать в моем блог-посте здесь), если это было так. Важно было приостановить скрипт после каждого запроса на 3 секунды, чтобы избежать вызова любой защиты от перегрузки. Если скрипт выдает ошибку, мы приостанавливаем запросы на целую минуту, чтобы...

Код для выполнения всех более 13 000 запросов Positionstack выглядит следующим образом:

Убедитесь, что вы заменяете 'YOUR KEY HERE' в коде своим собственным ключом API.

Хотя Positionstack оказался бесплатной альтернативой геокодированию Google, производительность этого API была несколько нестабильной. Если вам повезло, Positionstack принимает тысячи и тысячи запросов без каких-либо проблем, но он также может выдавать одну ошибку за другой без разумного объяснения. Я записал количество неудачных запросов во время двух сессий, распределенных на два дня. Результаты отображены ниже (см. Рисунок 4).

В первый день Positionstack возвращал координаты около 8000 местоположений без заметных сбоев. Первые два часа он почти не выдавал ошибок, и даже после 7 часов скрипт должен был повторить только 15 запросов. После этого API столкнулось с некоторыми проблемами, но оно все равно выдало только 30 ошибок после выполнения более 8000 запросов за 9 часов. Отлично! Во второй день, однако, скрипт непрерывно сталкивался с ошибками, с 80 повторами после всего 2 часов. Важно отметить, что это не связано с количеством запросов, которые я уже потратил на свой "месячный бюджет", поскольку мой бюджет был обновлен между первым днем (31 августа) и вторым днем (1 сентября). Тем не менее, это всего лишь незначительный недостаток: вы просто заставляете скрипт приостановиться на минуту и повторить запрос; скрипт никогда не застревает на конкретном адресе.

Важно отметить, что «успешный» запрос не обязательно означает, что местоположение было успешно геокодировано. Positionstack также может возвращать:

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

Давайте посмотрим, сколько пропущенных значений возвращается по странам и городам (см. Рисунок 5).

Синяя часть каждого столбика представляет адреса, которые были геокодированы на менее детализированном уровне (обычно на уровне улицы). Красная часть представляет процент «истинных» пропусков, то есть Positionstack просто не распознает адрес и возвращает пустой JSON.

Кажется, существуют явные различия в производительности между регионами. Адреса в Испании и Италии чаще возвращают пропущенные значения, и адреса в Валенсии не возвращают конкретное местоположение адреса в каждом втором случае! Другие страны в нашей выборке имеют меньше проблем. 96% всех адресов в Роттердаме были успешно геокодированы на уровне адреса. Гент (95%), Брюссель (90%), Мюнхен (94%), Ницца (93%) и подобные им имеют похожие показатели успеха. Вина за высокий уровень ошибок среди некоторых испанских и итальянских городов не обязательно лежит на Positionstack. Возможно, мы имеем дело с разными конвенциями форматирования между Google и Positionstack для адресов в Испании и/или Италии. Если это так, некоторая базовая обработка данных может исправить эту проблему. Однако это не объясняет относительно низкий уровень ошибок, скажем, в Милане и Сарагосе.

Давайте построим все местоположения, чтобы получить общую картину о полученных здесь данных. Я использовал пакет Geopandas для построения координат. К счастью, Geopandas поставляется с несколькими картами, такими как карта Европы. После всего нескольких строк кода скрэпинга, полученные нами точки сразу становятся видны (см. Рисунок 6).

Вы можете заметить высокую концентрацию местоположений в Бельгии и Нидерландах, но это просто результат относительно небольшой площади этих стран. Помните, что каждый регион представлен своими пятью крупнейшими городами, поэтому, естественно, эти города (и их рестораны/супермаркеты) находятся довольно близко друг к другу. Скрапинг городов в других странах выделяется больше, например, Париж и Тулуза во Франции.

Важно отметить, что такие геокодированные данные позволяют задавать все новые интересные исследовательские вопросы и остаются ценными за пределами простых визуализационных целей. Например, можно измерить расстояние от конкретного местоположения до центра города и связать это с другими интересными переменными. Например: рестораны, находящиеся близко к центру города, дороже или дешевле (категоризация «€€» в Google Maps) ресторанов в пригородах? Сконцентрированы ли определенные типы ресторанов в одном районе (например, «Китайский квартал» или улицы с высокой концентрацией кебаб-ресторанов)?

[Часть 3] Загрузка геоjson-карт в больших объемах

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

К счастью, существует отличный пакет на Python, называемый osmnx, который позволяет получать подробные карты, используя базу данных OpenStreetMap. Ниже приведен код для получения уличных сетей 30 городов в нашей базе данных. Я записал каждую карту на жесткий диск (в папку "maps") в формате GeoJSON. Мне нужны только фактические координаты сети (т.е. положение линий), поэтому мы можем отбросить другие атрибуты в объекте графа.

Я включил пример того, как вы можете отобразить эти файлы GeoJson с помощью пакета GeoPandas, о котором я упоминал ранее (см. вторую часть кода выше). Загрузка каждого сохраненного файла GeoJson в мою среду Python и их отображение с использованием подграфиков дает нам наглядный обзор 30 изучаемых городов (см. рисунок 7).

Рисунок 7. Карты 30 городов, полученных с помощью Google

Файлы GeoJson содержат только координаты сети, которые будут отображаться каждый раз при построении сети в соответствии с настройками вашей графической библиотеки (например, matplotlib). Это означает, что независимо от того, насколько вы увеличиваете масштаб, улицы будут отображаться в четкой детализации. Ниже вы можете увидеть конечный результат второй части приведенного выше кода для Нидерландов (см. рисунок 8).

Рисунок 8. Карты 5 крупнейших городов Нидерландов

Давайте объединим информацию от Google, Position stack и OpenStreetMap и отобразим все собранные рестораны и супермаркеты в Париже. Вы можете найти код для получения рисунка 9 ниже. В этом случае супермаркеты обозначены зелеными точками, рестораны - оранжевыми точками, но вы можете изменить цветовую схему по своему усмотрению, конечно.

Рисунок 9. Рестораны и супермаркеты в Париже (всего 602 места)

Простое отображение данных также может раскрыть некоторые потенциальные источники смещения, обусловленные структурными ограничениями платформы Google Maps. Это явно видно здесь. Как видите, кажется, что мы собрали больше данных о центре Парижа. Я посещал Париж несколько раз, и очевидно, что не все рестораны представлены на этой карте. В Париже есть больше, чем туристический центр, но это все, что действительно имеет значение согласно Google. Это может быть связано с тем, как я создал парсер. Я просто сказал Google "найти рестораны в Париже", без дополнительных указаний. Исходя из этого, логично, что Google будет (а) сосредотачиваться на центре города и (б) что Google прекращает предлагать варианты после определенного количества страниц, даже если в регионе есть больше ресторанов. Действительно, независимо от области, собранной с помощью парсера, предложения Google обычно прекращаются после примерно 320 мест. Эти два алгоритмических тенденции вместе означают, что полученные данные смещены в сторону включения мест в центре города, что может иметь значение для вашего исследования. Это особенно важно, если вас интересуют разные районы внутри одного и того же региона или города. Если это так, вам следует создать парсер, который явно нацеливается на несколько подрегионов, таких как разные районы в одном городе.

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

Рисунок 10. Увеличение масштаба в небольшом районе Парижа

[Часть 4] Обработка, исследование и очистка данных

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

Теперь пришло время фактически исследовать данные о популярности в разное время. Напомним: для каждого места и, если доступно, у нас есть значение от 0 до 100 для каждого часа недели. Значение 100 указывает на то, что в этот конкретный час тенденция быть самым оживленным часом недели для этого конкретного места. Однако, и чтобы повторить, места без достаточных данных о местоположении просто не имеют данных о популярности в разное время. Вопрос остается в том, о каком количестве пропущенных данных мы говорим на самом деле. Я создал следующий график, чтобы оценить, насколько серьезно это искажение в нашей базе данных (см. Рисунок 11).

Рисунок 11. Пропущенные данные о популярности в разное время - по типу места и региону

Ясно, что мы говорим о значительной доле пропущенных данных. Примерно 40% всех мест, которые мы извлекли из Google Maps, не имеют данных о популярности в разное время. Эти места просто недостаточно популярны, чтобы сгенерировать надежную оценку популярности. Это относится к примерно 4 из 10 ресторанов и 3 из 10 супермаркетов. Интересно, что в испанских и итальянских городах, таких как Барселона и Сарагоса (50%), пропущенных данных существенно больше, чем в регионах западных стран, таких как Эйндховен и Мюнхен (30%). Возможно, это результат культуры питания, преобладающей среди южных культур, где больше (местных) баров, обслуживающих относительно небольшое количество постоянных клиентов. Действительно, гуляя по Барселоне, вы ошеломлены количеством маленьких (и очаровательных) тапас-баров, в то время как рестораны в городах, таких как Утрехт или Антверпен, должны "расти или сгореть". Это означает, что - какие бы анализы мы ни проводили в этом разделе - мы говорим только о 60% самых популярных ресторанов в нашей выборке. Давайте помнить об этом, когда мы будем интерпретировать результаты ниже.

Просто для исследовательских целей я хотел бы провести три анализа.

  • _Кластеризация _данных о популярности ресторанов: можем ли мы выявить регионы с похожими паттернами посещения? Я беру только рестораны здесь, потому что я подозреваю, что культура питания более определена культурно, чем поход в супермаркет. В идеале, мы бы видели, что каждая страна формирует свой собственный типичный кластер "популярных времен", где рестораны придерживаются разных паттернов популярности в разных странах (и культурах).
  • В какой день недели рестораны или супермаркеты достигают пика популярности? Это отличается от страны к стране? Например, означает ли знаменитая итальянская культура питания, что каждый день недели значительная часть ресторанов испытывает некий пик? И все дисциплинированные немцы выходят поесть в субботу?
  • В который час рестораны достигают пика популярности? Испанцы выходят поздно вечером (скажем, около 9 вечера), когда рестораны в Нидерландах пусты?

Заключение и предложения для будущих исследований

Целью данной статьи было вдохновить будущих исследователей и дать некоторые полезные указания по получению, обработке и анализу данных о популярности Google в определенное время. Хотя проведенные здесь исследования могут показаться очевидными или указывать на достаточно банальные выводы, эти данные могут указывать на очень ценные закономерности в правильном исследовательском контексте.

Одно важное предостережение относительно использования данных о популярности в определенное время - это множество источников смещения, о которых было сообщено во всей статье. Здесь мы не говорим только о простом смещении выборки (кто отслеживается и является ли это представительной выборкой населения), но здесь также явно присутствует алгоритмическое смещение. Например, как мы видели при построении карты собранных мест, Google Maps склонен фокусироваться на небольшой площади при поиске мест, с предпочтением центра города. Эти места могут не быть представительными для "прототипического" типа места по ряду причин (например, туристы могут искажать тенденции популярности). Будущие исследователи должны быть в курсе этого и написать свой парсер таким образом, чтобы диверсифицировать географическое распределение собранных мест в пределах одного местного региона. Например, можно выбирать разные районы в пределах одного и того же населенного пункта/города.

Кроме того, исследователю приходится иметь дело с пропущенными данными, которые, вероятно, не являются случайными. Наши анализы позволяют оценить, что около 40% мест на Google Maps (для ресторанов и супермаркетов) имеют пропущенные данные о популярности в определенное время из-за недостаточного количества посетителей. Разумно предположить, что эти места имеют некоторые общие характеристики. Например, так называемые "этнические продуктовые магазины" (например, турецкие супермаркеты) вероятно чаще попадают в категорию пропущенных данных, так как они обычно обслуживают относительно небольшое сообщество, часто сконцентрированное в одном районе. В зависимости от поставленного исследовательского вопроса, это может иметь серьезные последствия для достоверности и валидности выводов исследователя.

Наконец, создание карты конкретного региона по типу мест все еще требует некоторой ручной работы. Во-первых, Google неизбежно вернет некоторые места, которые не являются relevant для вашего поискового запроса, и их система категоризации часто слишком подробна и неясна. Это означало, что мне пришлось преобразовать все уникальные категории Google в более общую агрегированную категорию. Во-вторых, в зависимости от вашего исследовательского вопроса, возвращенные места могут включать в себя несколько кластеров мест, каждый из которых соответствует разным тенденциям посещаемости. Это было видно при анализе наших кластеров. Поэтому, возможно, потребуется некоторое снижение размерности, такое как PCA, чтобы выявить соответствующие подкластеры мест. Но исследователи могут быть более творческими и выбрать более простые решения, такие как включение мест на основе конкретных ключевых слов. Например, турецкие супермаркеты могут быть извлечены путем сопоставления имен рецензентов с списком популярных турецких имен (например, Юсуф, Эймен, Омер и т. д.).

Тем не менее, несмотря на эти потенциальные трудности, данные о популярности Google в определенное время остаются малоисследованным и, возможно, ценным источником информации как для академических исследований, так и для бизнеса. Мы смогли собрать более 13 000 мест Google, геокодировать их конкретное местоположение, отобразить эти места на карте конкретного города и найти некоторые закономерности, которые могут указывать на культурные нормы в области питания и покупок продуктов. Что еще интереснее, мы сделали это, потратив ровно ноль долларов. Один интересный путь для академических исследователей может заключаться в поиске продолжительных изменений в популярности в определенное время. В свете текущей пандемии COVID-19 можно искать значительные изменения в нашем распорядке дня, которые могут продолжаться даже после окончания пандемии. Это предполагает три волны сбора данных: до, во время и после пандемии. В этом контексте непрерывное мониторинг и сбор данных о популярности в определенное время (каждые несколько месяцев и т. д.) могут оказаться ценным занятием в отделах коммуникации и социологии.