$ sudo teach IT

Файл для практики.

month,country,region,advertising,sales,customers
1,Armenia,North,10,115,15
2,Georgia,South,15,145,18
3,Armenia,East,20,145,22
4,Georgia,West,25,205,28
5,Armenia,Central,30,115,35
6,Georgia,North,35,300,40
7,Armenia,South,40,275,48
8,Georgia,East,45,300,55
9,Armenia,West,50,340,62
10,Georgia,Central,55,370,70
11,Armenia,North,60,395,78
12,Georgia,South,65,430,85
13,Armenia,East,70,460,95
14,Georgia,West,75,490,105
15,Armenia,Central,80,530,120

До этого момента мы рассматривали графики, которые помогали изучать отдельные признаки. Мы анализировали количество объектов в категориях, исследовали распределения данных и сравнивали различные группы между собой.

Однако в реальной аналитике очень часто возникает другой вопрос: существует ли связь между двумя признаками? Например, влияет ли рекламный бюджет на продажи? Связан ли возраст клиента с суммой его покупок? Увеличивается ли прибыль компании вместе с количеством заказов?

Такие задачи встречаются практически в каждом аналитическом проекте. Именно поэтому Seaborn предоставляет специальные инструменты для визуализации взаимосвязей между признаками.

В этом уроке мы познакомимся с графиками scatterplot(), lineplot() и regplot(), научимся искать зависимости между переменными, анализировать корреляции и использовать дополнительные признаки через параметры hue, size и style.

Что вы узнаете в рамках статьи

  • Когда использовать scatterplot().
  • Для чего нужен lineplot().
  • Как работает regplot().
  • Что такое корреляция.
  • Как искать зависимости между признаками.
  • Как использовать дополнительные переменные через hue.
  • Как отображать дополнительную информацию через size и style.

Ключевые термины

  • Корреляция — статистическая связь между признаками.
  • Scatterplot — диаграмма рассеяния.
  • Lineplot — линейный график.
  • Regplot — график с линией регрессии.
  • Тренд — общее направление изменения данных.
  • Hue — параметр для разделения данных по цветам.
  • Size — параметр для отображения дополнительного признака через размер объектов.
  • Style — параметр для отображения дополнительного признака через форму объектов.

Почему важно изучать связи между признаками

Представим, что компания собирает данные о рекламных расходах и продажах.

advertising = [10, 20, 30, 40, 50]
sales = [100, 150, 220, 290, 340]

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

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

Самым популярным инструментом для анализа связи между двумя числовыми признаками является scatterplot(). Каждая точка на графике представляет одно наблюдение.

Построим первый пример.

import seaborn as sns
import matplotlib.pyplot as plt

sns.scatterplot(
    x=advertising,
    y=sales
)

plt.show()

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

Как интерпретировать scatterplot

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

Именно поэтому диаграмма рассеяния считается одним из главных инструментов исследовательского анализа данных.

Поиск закономерностей

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

Линейные графики и lineplot()

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

Например:

days = [1, 2, 3, 4, 5]
visitors = [120, 140, 160, 180, 210]

В такой ситуации удобнее использовать lineplot().

import seaborn as sns
import matplotlib.pyplot as plt

sns.lineplot(
    x=days,
    y=visitors
)

plt.show()

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

Когда использовать lineplot()

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

Что такое корреляция

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

Почему визуализация важна

Даже если позже будет вычисляться коэффициент корреляции, график остается важным инструментом. Он позволяет увидеть необычные наблюдения и выбросы, заметить возможные нелинейные зависимости между признаками, а также обнаружить группы объектов, которые могут отличаться по своим характеристикам. Благодаря этому визуальный анализ часто помогает найти закономерности, которые сложно заметить при просмотре таблицы данных.

Regplot и линия тренда

Диаграмма рассеяния показывает точки. Но иногда полезно дополнительно отобразить общую тенденцию изменения данных. Для этого используется regplot().

import seaborn as sns
import matplotlib.pyplot as plt

sns.regplot(
    x=advertising,
    y=sales
)

plt.show()

На графике появится линия регрессии. Она показывает предполагаемое направление зависимости между признаками.

Как интерпретировать линию регрессии

Если линия идет вверх, можно предположить наличие положительной зависимости. Если вниз — отрицательной. Чем ближе точки располагаются к линии, тем сильнее выражена связь между признаками. Поэтому regplot() часто используют на этапе предварительного анализа данных.

Поиск трендов

Главная задача regplot() — помочь увидеть общий тренд. Например, даже если отдельные наблюдения немного отличаются друг от друга, линия может показать устойчивый рост показателя. Подобный подход часто используется в маркетинге, финансах и продуктовой аналитике.

Использование hue

До этого момента мы анализировали только два признака одновременно. Но в реальных данных часто присутствует дополнительная информация. Например country, которая содержит страну клиента. Параметр hue позволяет отображать такую информацию через цвет.

sns.scatterplot(
    data=df,
    x="advertising",
    y="sales",
    hue="country"
)

Теперь каждая страна будет отображаться собственным цветом. Это позволяет сравнивать несколько групп на одном графике.

Использование size

Иногда полезно показать дополнительный показатель через размер точек.

Например:

sns.scatterplot(
    data=df,
    x="advertising",
    y="sales",
    size="customers"
)

Чем больше значение признака customers, тем крупнее будет отображаться точка. Так можно одновременно анализировать уже три переменные.

Использование style

Еще один способ отображения дополнительной информации — параметр style.

sns.scatterplot(
    data=df,
    x="advertising",
    y="sales",
    style="region"
)

В этом случае разные группы будут отображаться различными маркерами. Например, одна категория может отображаться кружками, а другая треугольниками.

Комбинирование параметров

Самое интересное начинается тогда, когда параметры объединяются.

Например:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

advertising = [10, 20, 30, 40, 50]
sales = [100, 150, 220, 290, 340]
country = ["Armenia", "Georgia", "Armenia", "Georgia", "Armenia"]
customers = [15, 22, 35, 48, 60]
region = ["North", "South", "East", "West", "Central"]

df = pd.DataFrame({
    "advertising": advertising,
    "sales": sales,
    "country": country,
    "customers": customers,
    "region": region
})

sns.scatterplot(
    data=df,
    x="advertising",
    y="sales",
    hue="country",
    size="customers",
    style="region"
)

plt.show()

Теперь один график отображает сразу несколько признаков. Однако использовать подобные возможности стоит аккуратно. Если одновременно кодировать информацию через положение, размер и цвет точек, график может стать сложным для восприятия. Добавляйте дополнительные визуальные параметры только тогда, когда они действительно помогают лучше понять данные, а не перегружают визуализацию.

Наиболее частые ошибки

  • Использовать lineplot для несвязанных наблюдений
    Линия может создать ложное впечатление о наличии последовательности.
  • Делать выводы только по нескольким точкам
    Для надежных выводов требуется достаточное количество данных.
  • Перегружать график параметрами hue, size и style одновременно
    Визуализация становится сложной для восприятия.
  • Игнорировать выбросы
    Они могут существенно влиять на интерпретацию зависимости.
  • Путать корреляцию и причинно-следственную связь
    Наличие корреляции не означает, что один показатель вызывает другой.

Наиболее частые вопросы

  • Что лучше использовать: scatterplot или regplot?
    Scatterplot показывает данные, а regplot дополнительно отображает линию тренда.
  • Можно ли использовать hue и size одновременно?
    Да, Seaborn поддерживает такое сочетание.
  • Всегда ли корреляция означает наличие зависимости?
    Корреляция указывает на связь, но не доказывает причинно-следственные отношения.
  • Когда лучше использовать lineplot?
    Когда наблюдения образуют последовательность, например временной ряд.
  • Зачем нужен regplot?
    Для визуального анализа общего тренда между признаками.

Итоги

В этом уроке вы познакомились с инструментами Seaborn для анализа взаимосвязей между признаками. Мы научились использовать scatterplot() для исследования зависимостей, lineplot() для анализа последовательных данных и regplot() для поиска трендов.

Кроме того, вы узнали, что такое корреляция, как интерпретировать взаимосвязи между признаками и как использовать параметры hue, size и style для отображения дополнительной информации на графике. Эти инструменты активно применяются в исследовательском анализе данных и помогают находить закономерности, которые сложно заметить в обычных таблицах.

На следующий урок