Котелок
Влияет ли на наши музыкальные предпочтения пол вокалистов?
  • Данные и аналитика
  • Музыка
  • VK.com
  • Визуализации
Мини-исследование о связи популярности музыкальных групп с полом вокалистов на данных соцсети vk.com
Впервые опубликован на habr.com
Привет всем любителям смотреть на бесполезные графики!

Я несколько раз слышал мнение людей, разбирающихся в музыке, о том, что слушатель необъективен к тембру исполнителей.

В том числе утверждается, что на наши предпочтения влияет пол вокалиста. Если очень грубо, то "мальчики при прочих равных больше любят слушать девочек, и наоборот".

Кажется, это одно из таких утверждений, проверка которых на реальных данных совершенно бесполезна в жизни, но страшно интересна.

Если вы придерживаетесь той же точки зрения — добро пожаловать под кат!

Формулировка гипотезы

Итак, есть утверждение, что существует какая-то зависимость между полом основного вокалиста группы и гендерным распределением её поклонников. Утверждение основывалось на наблюдениях русскоязычных любителей музыки, в основном слушающих рок. Значит логичным предположением будет взять русскоязычных слушателей русскоязычных рок-групп, ну и разбавить их чуть-чуть какой-то контрольной группой.

Первая идея

Отлично. Где брать данные? Первой мыслью было посмотреть гендерный состав фанатов на фотографиях концертов соответствующих групп. Идею пришлось забраковать из-за социального фактора — на концерты принято ходить компаниями, в том числе парами. Да-да, все эти шутки про печальных мужей на концерте Стаса Михайлова.

Кстати, Стас Михайлов как исполнитель, которого слушают в основном женщины, — отличная первая контрольная группа. В качестве второго контроля была выбрана группа "Корни". Не спрашивайте меня почему.

Вторая идея

Далее была высказана мысль о том, что приемлемым индикатором может быть гендерный состав сообществ социальной сети "Вконтакте".

И правда

  • сообщества там не имеют особых социальных ограничений, вступление в группу чаще всего происходит нажатием одной кнопки
  • аудитория в соцсети в основном русскоязычная
  • у части пользователей есть бонус в виде анкеты «Любимая музыка», на которой можно проверить дополнительные гипотезы
  • у ресурса неплохой публичный API, которым можно пользоваться «из коробки»
  • и самое главное, мне давно хотелось этот API «пощупать»

А это значит, что есть план!

  1. Выбираем какой-то список сообществ музыкальных коллективов
  2. Подтягиваем пользователей этих сообществ
  3. Для каждого пользователя вытягиваем его пол и анкету
  4. Собираем данные вместе и смотрим, что из этого выйдет

Работа с API

У контакта оказалось очень приятное API с вменяемой документацией. Просто бери и тащи.
Если кратко, то алгоритм такой:

  1. Авторизуемся на vk в браузере
  2. Идём на https://vk.com/apps?act=manage
  3. Регаем приложение (лично я выбрал Standalone-приложение, возможно, не надо так)
  4. Идём в настройки приложения
  5. Записываем его ID
  6. Идём по мудрёной ссылке, в тело которой добавляем свой ID
  7. После редиректа в урле видем acces token, по умолчанию живёт сутки
  8. Наслаждаемся, но не забываем про уровни доступа и лимиты
  9. Для деталей читаем документацию

Как-то можно сделать так, чтобы токен за сутки не "протухал", но я не стал этим заморачиваться.
По доступу всё просто — через API ты можешь увидеть ровно, что можешь увидеть в браузере с правами того юзера, из-под которого ты авторизовался.

Например, открытые профили и открытые сообщества видны всегда. А этого и достаточно, на самом деле.

Лимиты на число запросов достаточно жесткие, особо не разгуляешься. Но для маленьких задач вроде нашей пойдёт.

Пошла работа

Вытащить список открытых групп и данные анкеты открытых пользователей оказалось очень просто и быстро.

Первая "подстава". Пользователи сообществ грузятся порциями по 1000 штук (плюс-минус) за раз.

Вторая "подстава". Крупные сообщества состоят из 80-90 тысяч пользователей. Хорошая бигдата. Но с ограничениями API качать её придётся неделями.

В целом, для наших целей большая точность не нужна. Выборку можно "засемплировать": взять 1000 случайных пользователей группы. Если не забывать про доверительные интервалы, то на таких объёмах вполне можно жить.

Выборки по 1000 пользователей для 19 групп качаются примерно за 4 часа, так что обе проблемы решаются одновременно.

Поисковый механизм контакта сначала пытается показать моих друзей в каждой группе, но после офсета в 500 данные можно вполне считать рандомными.

С подбором групп я особо не заморачивался. Взял регулярных участников "чартовой дюжины", добрав женских коллективов для того, чтобы результаты можно было сравнивать.

Результаты
(c) 2022. Kotelok, Roman Tsaregorodtsev