Котелок
Влияет ли на наши музыкальные предпочтения пол вокалистов?
  • Данные и аналитика
  • Музыка
  • 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 данные можно вполне считать рандомными.

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

Результаты

Во-первых, гендерное соотношение всей выборки оказалось смещённым — 55% любителей всех групп оказались представительницами прекрасного пола. Идеальное 50 на 50 меня бы смутило гораздо сильнее.

Мне показалось, что лучше всего картину покажет горизонтальный bar chart с нарисованными усами доверительных интервалов.


Привет всем любителям смотреть на бесполезные графики!

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

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

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

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

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

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

Первая идея

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

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

Вторая идея

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

И правда

  • сообщества там не имеют особых социальных ограничений, вступление в группу чаще всего происходит нажатием одной кнопки
  • аудитория в соцсети в основном русскоязычная
  • у части пользователей есть бонус в виде анкеты «Любимая музыка», на которой можно проверить дополнительные гипотезы
  • у ресурса неплохой публичный 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 данные можно вполне считать рандомными.

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

Результаты

Во-первых, гендерное соотношение всей выборки оказалось смещённым — 55% любителей всех групп оказались представительницами прекрасного пола. Идеальное 50 на 50 меня бы смутило гораздо сильнее.

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

h = std_err * scipy.stats.t.interval(confidence, nn-1, loc=0, scale=1)[1]/math.sqrt(nn)
, где
std_err — стандартное отклонение, np.std(data)
nn — размер выборки

Т.к. мы не спасаем ничьи жизни, уровень значимости в 90% (если мы проведём 100 таких экспериментов, мы готовы ошибиться в 10 из них) нас вполне устроит.
Гендерное распределение поклонников тех или иных групп в сообществах "Вконтакте" на случайной выборке примерно в 1000 участников с доверительными интервалами.
По горизонтальной шкале распределение:
отрицательные значения — преобладают девушки
положительные — преобладают юноши
начало координат — соотношение "50 на 50"
Группы отсортированы по полу основного исполнителя (сверху "мужские", снизу "женские", водораздел Корни-Земфира).

Для тех, кто больше любит таблицы:

group_gender: 1 — девушки, 2 — юноши

mean: отрицательные значения — доля девушек больше, положительные — доля юношей больше

Что мы можем из всего этого сказать?

Во-первых, оба контроля пройдены. У нас было ощущение, что Михайлова и группу "Корни" больше слушают женщины. Так и вышло, их показатели оказались схожи.

Во-вторых, репрезентативность выборок для наших целей оказалась приемлемой. Явная неопределённость оказалась только у одной группы ("Сплин", "усы" пересекают "ноль"). Возможная неопределённость — тоже только у одной ("Nautilus Pompilius", "усы" пересекли бы "ноль" на более строгом уровне значимости).

В-третьих, зависимость и правда есть. Только противоположная той, которая утверждалась. Все группы с женским вокалом (5 из 5) имеют преимущественно женскую аудиторию. Доля женщин-любителей Сургановой почти вдвое выше доли женщин-любителей Михайлова. Среди "мужских" групп в целом, есть преобладание мужской аудитории, хотя встречаются как коллективы, не имеющие практически никакого полового дисбаланса ("Сплин", "Нау", "Чайф"), так и имеющие преимущественно женскую аудиторию ("Би-2", "Мумий Тролль" и, внезапно, "Пикник"). Интересно.

А что с анкетой?

Анкета "Любимая музыка" в контакте — произвольное текстовое поле, так что там всякое писали. Если честно, сложных закономерностей я вытащить не смог.

Базовая гипотеза "название группы в топе быть должно" в целом подтверждается. Если чуть-чуть поработать с токенами, то можно выделить "расстояние" между родственными группами. Но до пола просто так не дотянуться.

Так что просто полюбуйтесь на топ в виде облаков слов:

"Арийцы" чаще упоминают других представителей металла
Фанатов Цоя больше тянет слушать англоязычную музыку
Про отсылки Земфиры к "Radiohead" знают не только музыкальные критики
Фанаты группы "Корни" обладают какой-то очень альтернативной логикой
Любительницы "Мельницы" отдают должное другим представителям фолка, "Пикник", "Кино" и "Ария" в фаворитах
"Мумий-тролли" неохотнее всех указывают что-то в анкете
Связь любителей Сургановой и Арбениной ожидалась и подтвердилась
А вот "снайперы" "оркестр" не жалуют, они больше по Земфире со "Сплинами"
Поклонники "Алисы" чаще других указывают списки групп. В топе "Ария" и "Кино", несмотря на сложные отношения между фанатами этих групп
Фанаты "Би-2" любят цифры. Из этого облака узнал о группе "Насквозь"
Любители Нау ценят Сплин, Агату Кристи и множество зарубежных групп
У фанатов "Пилота" интересна популярность частицы не. "Кукрыниксы", "КиШ" и "Ария" в топе
Любители "Сплина" ценят Земфиру и ДДТ
Киша указывают меньше участники соответствующей группы. А ещё они любят много иностранных групп. И "Кукрыниксы", что ожидаемо
Поклонники Михайлова немногословны и "неожиданно" ценят шансон
Из конструктивной части на сегодня всё. Исходный код доступен всем желающим.

Если вам хочется ещё что-то посмотреть на этом датасете — пишите в комментариях.

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

(c) 2022. Kotelok, Roman Tsaregorodtsev