Привет всем любителям смотреть на бесполезные графики!
Я несколько раз слышал мнение людей, разбирающихся в музыке, о том, что слушатель необъективен к тембру исполнителей.
В том числе утверждается, что на наши предпочтения влияет пол вокалиста. Если очень грубо, то "мальчики при прочих равных больше любят слушать девочек, и наоборот".
Кажется, это одно из таких утверждений, проверка которых на реальных данных совершенно бесполезна в жизни, но страшно интересна.
Если вы придерживаетесь той же точки зрения — добро пожаловать!
Формулировка гипотезыИтак, есть утверждение, что существует какая-то зависимость между полом основного вокалиста группы и гендерным распределением её поклонников. Утверждение основывалось на наблюдениях русскоязычных любителей музыки, в основном слушающих рок. Значит логичным предположением будет взять русскоязычных слушателей русскоязычных рок-групп, ну и разбавить их чуть-чуть какой-то контрольной группой.
Первая идеяОтлично. Где брать данные? Первой мыслью было посмотреть гендерный состав фанатов на фотографиях концертов соответствующих групп. Идею пришлось забраковать из-за социального фактора — на концерты принято ходить компаниями, в том числе парами. Да-да, все эти шутки про печальных мужей на концерте Стаса Михайлова.
Кстати, Стас Михайлов как исполнитель, которого слушают в основном женщины, — отличная первая контрольная группа. В качестве второго контроля была выбрана группа "Корни". Не спрашивайте меня почему.
Вторая идеяДалее была высказана мысль о том, что приемлемым индикатором может быть гендерный состав сообществ социальной сети "Вконтакте".
И правда
- сообщества там не имеют особых социальных ограничений, вступление в группу чаще всего происходит нажатием одной кнопки
- аудитория в соцсети в основном русскоязычная
- у части пользователей есть бонус в виде анкеты «Любимая музыка», на которой можно проверить дополнительные гипотезы
- у ресурса неплохой публичный API, которым можно пользоваться «из коробки»
- и самое главное, мне давно хотелось этот API «пощупать»
А это значит, что есть план!
- Выбираем какой-то список сообществ музыкальных коллективов
- Подтягиваем пользователей этих сообществ
- Для каждого пользователя вытягиваем его пол и анкету
- Собираем данные вместе и смотрим, что из этого выйдет
Работа с APIУ контакта оказалось очень приятное API с вменяемой документацией. Просто бери и тащи.
Если кратко, то алгоритм такой:
- Авторизуемся на vk в браузере
- Идём на https://vk.com/apps?act=manage
- Регаем приложение (лично я выбрал Standalone-приложение, возможно, не надо так)
- Идём в настройки приложения
- Записываем его ID
- Идём по мудрёной ссылке, в тело которой добавляем свой ID
- После редиректа в урле видем acces token, по умолчанию живёт сутки
- Наслаждаемся, но не забываем про уровни доступа и лимиты
- Для деталей читаем документацию
Как-то можно сделать так, чтобы токен за сутки не "протухал", но я не стал этим заморачиваться.
По доступу всё просто — через API ты можешь увидеть ровно, что можешь увидеть в браузере с правами того юзера, из-под которого ты авторизовался.
Например, открытые профили и открытые сообщества видны всегда. А этого и достаточно, на самом деле.
Лимиты на число запросов достаточно жесткие, особо не разгуляешься. Но для маленьких задач вроде нашей пойдёт.
Пошла работаВытащить список открытых групп и данные анкеты открытых пользователей оказалось очень просто и быстро.
Первая "подстава". Пользователи сообществ грузятся порциями по 1000 штук (плюс-минус) за раз.
Вторая "подстава". Крупные сообщества состоят из 80-90 тысяч пользователей. Хорошая бигдата. Но с ограничениями API качать её придётся неделями.
В целом, для наших целей большая точность не нужна. Выборку можно "засемплировать": взять 1000 случайных пользователей группы. Если не забывать про доверительные интервалы, то на таких объёмах вполне можно жить.
Выборки по 1000 пользователей для 19 групп качаются примерно за 4 часа, так что обе проблемы решаются одновременно.
Поисковый механизм контакта сначала пытается показать моих друзей в каждой группе, но после офсета в 500 данные можно вполне считать рандомными.
С подбором групп я особо не заморачивался. Взял регулярных участников
"чартовой дюжины", добрав женских коллективов для того, чтобы результаты можно было сравнивать.
РезультатыВо-первых, гендерное соотношение всей выборки оказалось смещённым — 55% любителей всех групп оказались представительницами прекрасного пола. Идеальное 50 на 50 меня бы смутило гораздо сильнее.
Мне показалось, что лучше всего картину покажет горизонтальный bar chart с нарисованными усами доверительных интервалов.