Original size 2480x3508

Анализ данных об использовании социальных сетей

PROTECT STATUS: not protected
18

Введение

В рамках проекта я проанализировал базу данных, содержащую информацию о времени, которое пользователи проводят в социальных сетях. Данные были найдены на платформе Kaggle.

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

Для визуализации использованы цвета из палитры tab20b библиотеки matplotlib, что позволило добиться визуальной целостности и читаемости инфографики.

big
Original size 1536x1024

Этапы работы

Для работы с данными были подключены библиотеки: Pandas и NumPy — для анализа, Matplotlib и Seaborn — для визуализации, Scikit-learn и SciPy — для построения модели и работы с выбросами.

big
Original size 960x147

Данные были загружены с компьютера и прочитаны с помощью pandas. Для первичного анализа были выведены первые строки, типы данных и базовая статистика.

big
Original size 944x397

Замена пропусков

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

Original size 959x349

Фильтрация и сортировка

На этом этапе я применил фильтрацию по возрасту: отобрал пользователей старше 50 лет и отсортировал их по доходу. Boxplot (ящик с усами) показал, что их доходы распределены равномерно, медиана — около 14–15 тыс., выбросов не наблюдается.

Original size 982x552

Ящик с усами

Далее была выполнена фильтрация по нескольким условиям: я выделил женщин с доходом выше среднего и отсортировал их по времени в соцсетях. Диаграмма рассеяния показала, что прямой зависимости между доходом и временем в соцсетях нет — поведение остаётся индивидуальным и разнообразным.

Original size 982x552

Диаграмма рассеяния

Original size 982x552

Новые признаки

На этом этапе я создал два новых признака: Первый — возрастные группы (критерий: создание признака через анонимную функцию), что позволило наглядно показать, что большинство пользователей — от 30 до 49 лет.

Original size 982x552

Круговая диаграмма

Original size 4608x3072

Второй признак — уровень финансовой стабильности, сформированный через именную функцию (критерий: создание признака с помощью именной функции). На графике видно, что большинство пользователей относятся к средней группе по финансовым параметрам.

Original size 982x552

Гистограмма

0

Сводные таблицы

В этом блоке я построил 5 сводных таблиц и визуализировал их в виде столбчатых диаграмм (bar chart), используя разные комбинации признаков, методов и группировок.

Original size 982x644

Столбчатая диаграмма

Я построил первую сводную таблицу (критерий: группировка по одному признаку — age_group). График показывает, что наивысший средний доход — у пользователей группы middle (30–49 лет), примерно 15,500. У групп senior и young доход ниже. Это соответствует рыночным ожиданиям и возрастной траектории роста доходов.

Original size 982x644

Составная столбчатая диаграмма

Создана сводная таблица по двум признакам (age_group и gender) — критерий: группировка по нескольким признакам.

График демонстрирует, что в группах middle и senior женщины зарабатывают больше мужчин. Это нетипичный результат, который может указывать на особенность датасета. В группе young разница между полами минимальна.

Original size 4608x2719
Original size 982x644

Составная столбчатая диаграмма

На основе среднего значения по двум числовым показателям (age, time_spent) построена таблица — критерий: агрегация двух переменных. Время в соцсетях стабильно во всех группах (примерно 5 часов), но молодёжь проводит в соцсетях не сильно больше, чем старшие категории, что может указывать на переосмысление цифровых привычек.

Original size 982x644

Составная столбчатая диаграмма

Здесь реализовано сравнение трёх методов агрегации (mean, max, min) — критерий: множественная агрегация по одному признаку. Во всех группах максимальный доход близок к 20,000. У middle наблюдается наивысшее среднее значение и умеренный разброс. Это говорит о том, что в этом возрасте зарабатывают как низкооплачиваемые специалисты, так и высокооплачиваемые профессионалы.

Original size 982x644

Составная столбчатая диаграмма

Комплексный анализ двух признаков (age, time_spent) с тремя методами агрегации — критерий: множественная агрегация по нескольким числовым столбцам.

Максимальное время в соцсетях стабильно и одинаково у всех — примерно 9 часов. Средние значения возраста и минимальные значения времени показывают ожидаемые возрастные различия, но не подтверждают гипотезу о том, что молодёжь — самые активные пользователи.

0

Удаление выбросов

На этом этапе я удалил выбросы из данных с помощью двух методов.

Original size 854x553

Гистограмма

Original size 854x553

Гистограмма

Первый — метод трёх стандартных отклонений, применённый к целевой переменной time_spent (критерий: метод N стандартных отклонений для целевого признака). Я построил две гистограммы — до и после удаления выбросов. Они полностью совпадают. Это объясняется тем, что распределение значений изначально было равномерным, а выбросов оказалось крайне мало — настолько, что удаление не повлияло на визуальную форму графика вообще.

Original size 735x451

Ящик с усами

Original size 735x451

Ящик с усами

Второй — метод 1.5 IQR, применённый к количественному предиктору income. Я построил боксплоты до и после удаления выбросов. Графики оказались абсолютно идентичными: медиана, границы коробки и усы остались неизменны. Это свидетельствует о том, что исходные данные были устойчивыми, и выбросы имели крайне малое влияние.

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

0

После удаления выбросов (time_spent — по 3σ, income — по 1.5 IQR), я получил датафрейм df_clean2.

Пропусков нет, 1000 строк — объём не пострадал. Типы данных корректны, все признаки сохранены. Средний доход — 15 015, медиана — 14 904 — распределение симметричное. Среднее время в соцсетях — 5 минут в день. Новые признаки income_per_minute и finance_level тоже очищены. Дальнейший анализ — только на df_clean2.

0

Описательные статистики

На этом этапе я исследовал целевой количественный признак — доход (income).

Первый шаг — меры центральной тенденции (критерий: расчёт и визуализация среднего и медианы). Медиана показывает значение дохода, которое делит выборку на две равные части — 50% пользователей имеют доход ниже 14904, 50% — выше. Среднее значение дохода — 15 015. Медиана — 14 904, чуть ниже. Это говорит о слабой асимметрии в сторону более низких значений: у большинства пользователей доход ниже среднего.

Original size 790x490

Гистограмма с линиями среднего и медианы

Второй шаг — квартильный анализ (критерий: расчёт и визуализация всех квартилей). Распределение дохода показано через деление на 4 части — квартели. 25% пользователей зарабатывают менее 12 402, 75% — менее 17 674. Все значения после удаления выбросов укладываются в границы «усов».

Original size 783x490

Ящик с усами

Третий и четвёртый шаги — разброс и категориальный признак (критерии: расчёт мер разброса и описание категориального признака)

Доходы пользователей варьируются в пределах 9 968 (размах). IQR — 5 272 показывает ширину основной «средней» группы. Стандартное отклонение — 2 959, то есть большинство доходов отклоняются от среднего примерно на эту величину.

Категориальный признак gender описан без графика, так как данные легко читаются в числах: мода — male, это самая частая категория. Всего три уникальных значения: female, male, non-binary.

Корреляция Пирсона

Корреляционный анализ (критерий: визуализация матрицы и интерпретация самой сильной корреляции) Я построил тепловую карту, чтобы проанализировать связи между количественными признаками. Самая сильная корреляция оказалась между time_spent и income_per_minute (—0.80): чем больше человек проводит времени в соцсетях, тем меньше его доход за минуту. Это логично: высокая эффективность времени часто означает меньше времени онлайн. Диаграмма рассеяния помогает визуально подтвердить: чем больше time_spent, тем ниже income_per_minute.

Original size 899x590

Тепловая карта (корреляционная матрица)

Original size 690x490

Диаграмма рассеяния (между двумя самыми скоррелированными признаками)

Original size 4608x3072
0

Линейная регрессия

Цель этого этапа — построить парную линейную регрессию и проверить, влияет ли количество времени, проведённого в соцсетях (time_spent), на доход в минуту (income_per_minute).

Original size 899x590

Диаграмма рассеяния + линия регрессии

Общее уравнение: income_per_minute = β₀ + β₁ * time_spent + ε

После обучения модель приняла вид: income_per_minute = 178.03 − 20.33 * time_spent

Интерпретация коэффициентов:

β₀ (178.03): если пользователь вообще не тратит время в соцсетях, его доход в минуту составит 178.03

β₁ (—20.33): каждая лишняя единица времени снижает доход в минуту в среднем на 20.33

На диаграмме рассеяния показаны реальные точки и линия регрессии. Наблюдается выраженная отрицательная линейная зависимость.

Качество модели:

R² = 0.634 → модель объясняет 63,4% вариации дохода MSE = 1535.08 → средняя ошибка ≈ 39.18 MAE = 28.89 → среднее абсолютное отклонение модели

0

Заключение

В рамках проекта я провёл полный цикл анализа пользовательских данных о времени в соцсетях. Заменил пропуски, устранил выбросы, создал новые признаки, применил фильтрацию, сортировку и построил сводные таблицы. Описал числовые и категориальные признаки, визуализировал распределения, посчитал центральные тенденции, меры разброса, квартильные характеристики и корреляции. На очищенных данных обучил парную линейную регрессию, интерпретировал коэффициенты и метрики качества модели. Все шаги оформлены графически в едином стиле — от первичного анализа до финальной модели.

Описание применения генеративной модели

В данном проекте использовались нейросети ChatGPT и DeepSeek для генерации кода и помощи в анализе данных.

Обложка и все иллюстрации были созданы с помощью ChatGPT.

Ссылки

Анализ данных об использовании социальных сетей
18
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more