Продвинутая аналитика на SQL

Теория: Агрегация для Scatter Chart

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

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

Точечная диаграмма

Представим, что у нас есть таблица средних продаж и прибыли по категориям товаров:

avg_sales_profit

sub_categoryavg_salesavg_profit
Paper48.52820.626
Labels37.38316.902
Storage266.96924.160
.........

В этой таблице мы видим три столбца:

  • sub_category — категория товара
  • avg_sales — средние продажи по категориям товаров
  • avg_profit — средняя прибыль по категориям товаров

По этой таблице мы хотим выявить взаимосвязь между средними продажами и средней прибылью. Для визуализации этой взаимосвязи хорошо подходят точечные диаграммы или Scatter chart.

Посмотрим, как выглядит точечная диаграмма:

sales_profit_scatter_chart

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

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

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

Мы выделим два вида точечных диаграмм:

  1. Обычная точечная диаграмма или Scatter chart. Она состоит из точек, координаты которых — это пары значений наших двух переменных
  2. Пузырьковая диаграмма или Bubble chart. Она состоит из «пузырьков», координаты которых — пары значений наших переменных, а размер пузырька определяется третьей переменной

Посмотрим, как выглядит пузырьковая диаграмма для продаж и прибыли, где размер пузырька — это количество проданных товаров:

sales_profit_bubble_chart

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

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

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

Агрегация для точечной диаграммы

Мы будем работать с базой данных scatter_chart. В ней содержится одна таблица sales:

Sales

order_idorder_dateship_dateship_modecustomer_idcustomer_namesegmentcountrycitystatepostal_coderegionproduct_idcategorysub_categoryproduct_namesalesquantitydiscountprofit
CA-2014-1038002014-01-03 00:00
2014-01-07 00:00
Standard ClassDP-13000Darren PowersConsumerUnited StatesHoustonTexas77095CentralOFF-PA-10000174Office SuppliesPaperMessage Book, Wirebound, Four 5 1/2" X 4" Forms/Pg., 200 Dupl. Sets/Book16.44820.25.551199999999998
CA-2014-1123262014-01-04 00:00
2014-01-08 00:00
Standard ClassPO-19195Phillina OberHome OfficeUnited StatesNapervilleIllinois60540CentralOFF-LA-10003223Office SuppliesLabelsAvery 50811.78430.24.271699999999999
CA-2014-1123262014-01-04 00:00
2014-01-08 00:00
Standard ClassPO-19195Phillina OberHome OfficeUnited StatesNapervilleIllinois60540CentralOFF-ST-10002743Office SuppliesStorageSAFCO Boltless Steel Shelving272.73630.2-64.77480000000001
............................................................

В таблице мы видим такие столбцы:

  1. order_id — ID заказа
  2. order_date — дата заказа
  3. ship_date — дата отгрузки товара
  4. ship_mode — класс отгрузки
  5. customer_id — ID покупателя
  6. customer_name — имя покупателя
  7. segment — категория покупателя
  8. country — страна
  9. city — город
  10. state — штат/округ
  11. postal_code — почтовый индекс
  12. region — регион
  13. product_id — ID товара
  14. category — категория товара
  15. sub_category — подкатегория товара
  16. product_name — наименование товара
  17. sales — сумма продаж по заказу
  18. quantity — количество единиц товара в заказе
  19. discount — скидка на заказ
  20. profit — прибыль по заказу

Мы хотим агрегировать продажи sales и прибыль profit по подкатегориям товаров sub_category, чтобы получить средние продажи и прибыль. Для этого мы используем агрегацию по подкатегориям с помощью GROUP BY и агрегирующую функцию AVG, чтобы вычислить среднее.

Напишем такой SQL-запрос:

SELECT
    sub_category,
    AVG(sales) AS avg_sales,
    AVG(profit) AS avg_profit
FROM sales
GROUP BY sub_category;

С помощью этого запроса мы получили таблицу со средними продажами и прибылью по подкатегориям товаров:

avg_sales_profit

sub_categoryavg_salesavg_profit
Paper48.527620437956220.62626131386861
Labels37.3833142857142916.901582857142856
Storage266.9688717948717524.15990897435896
Binders132.11787037037035.271685802469117
Art27.385106796116497.105900000000001
Chairs548.953525423728749.37576440677966
Phones438.302318181818273.59770113636361
Fasteners15.2232000000000043.281847999999999
Furnishings78.8984000000000113.83537529411765
Accessories184.523333333333348.41520555555552
Envelopes72.9937272727272728.905886363636363
Bookcases372.6196444444444-13.928205555555556
Appliances162.6256428571428528.71635476190476
Tables602.0913625000001-48.64985750000001
Supplies681.069263157894525.92234736842104
Machines2983.788555555556-168.7506333333336
Copiers884.9813333333335224.9953833333333

Ссылка на таблицу

Скопируем эту таблицу в Google Sheets и построим точечный график. Для этого нужно выбрать тип диаграммы «Точечная диаграмма». Мы получили такую диаграмму:

sales_profit_scatter_chart

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

Теперь попробуем построить пузырьковую диаграмму. В качестве третьей переменной, от которой будет зависеть размер пузырька, мы возьмем quantity — это количество единиц одного товара. Для этого нужно изменить запрос так, чтобы кроме средних продаж и прибыли он выводил и суммарное количество единиц товара:

SELECT
    sub_category,
    AVG(sales) AS avg_sales,
    AVG(profit) AS avg_profit,
    SUM(quantity) AS sum_quantity
FROM sales
GROUP BY sub_category;

В результате мы получили новую таблицу:

SalesProfitQuantity

sub_categoryavg_salesavg_profitsum_quantity
Paper48.527620437956220.62626131386861494
Labels37.3833142857142916.901582857142856144
Storage266.9688717948717524.15990897435896300
Binders132.11787037037035.271685802469117634
Art27.385106796116497.105900000000001398
Chairs548.953525423728749.37576440677966232
Phones438.302318181818273.59770113636361353
Fasteners15.2232000000000043.281847999999999117
Furnishings78.8984000000000113.83537529411765311
Accessories184.523333333333348.41520555555552292
Envelopes72.9937272727272728.90588636363636383
Bookcases372.6196444444444-13.92820555555555676
Appliances162.6256428571428528.71635476190476129
Tables602.0913625000001-48.64985750000001144
Supplies681.069263157894525.9223473684210463
Machines2983.788555555556-168.750633333333631
Copiers884.9813333333335224.995383333333315

Ссылка на таблицу

В этой таблице четыре столбца:

  • sub_category — подкатегория товаров
  • avg_sales — средние продажи для подкатегории товаров
  • avg_profit — средняя прибыль для подкатегории товаров
  • sum_quantity — суммарное количество всех проданных товаров по одной подкатегории

Теперь скопируем эту таблицу в Google Sheets и построим диаграмму. В качестве типа выберем «Пузырьковая диаграмма». В настройках в поле «Размер» выберем параметр sum_quantity. И отключим легенду в «Дополнительные» -> «Легенда» -> «Расположение» -> «Не выбрано». Новая диаграмма будет выглядеть так:

sales_profit_bubble_chart

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

Выводы

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

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

Рекомендуемые программы