На данный момент система высшего образования свела математику до одноразового применения — сломать мозг студентов младших курсов непрофильных специальностей и благополучно выветрится к следующей сессии. Некоторые, правда, потом еще помнят что такие науки как математика и статистика это реальная сила, но мало кто это понимает и тем более применяет в своей деятельности.
В Datawiz.io, собрав несколько мат-гиков, мы решили попытаться изменить сложившуюся ситуацию. Интересно же использовать свои знания на чем-то реальном, измеримом, и даже, возможно, приносящем пользу обществу. Остановились мы на ритейл индустрии. Ритейл предлагает множество данных для обработки, просто водопад цифр: продажи, чеки, ценообразование, покупатели, программы лояльности,… Есть с чем порезвится.
Простая визуализация ритейл данных это тоже достаточно скучно. Традиционная аналитика может показать данные вчерашнего дня и выглядит круто в отчетах, но она никогда не покажет завтрашний день.
Модели машинного обучения действуют иначе. Они дают Вам возможности контроля и взаимодействия. Вы можете играть с моделями, изменять параметры и смотреть как это влияет на результат, изучать возможные последствия различных комбинаций факторов. Чем не общение с оракулом?
Начнем с простого.
Возможно ли определить продажи каких товаров могут влиять на общую выручку магазина?
Имеем исходные данные по двум магазинам, назовем их Гастроном и Универсам:
1. объем продаж товаров определенной категории;
2. количество упоминаний в чеках товаров определенной категории.
Составляем таблицы:
ряды — недели;
колонки — категории;
ячейки -количество проданных товаров или упоминаний в чеках.
Итого — 4 таблицы, по 2 на каждый магазин.
Сначала разберемся с корреляцией продаж. как влияют продажи товаров на общий оборот магазина и на продажи других категорий. Тут возможны 3 варианта развития событий.
Мы знаем что практически любой магазин продает большое количество молока. Примем гипотезу, что продажи молока и оборот магазина прямо коррелируются. Мы обозначим данные о продажах молока синим, а данные об обороте красным.
Сравним левый и правый графики, они практически одинаковы, что видно на рисунке.
На нижней диаграмме мы отобразили по горизонтали “Молоко и молочную продукцию”, а по вертикали “Оборот”, и тут так же мы можем наблюдать линейную зависимость. А значит наша гипотеза была верна.
Покупатели приходят в магазин за молоком, но так же покупают и другие товары, а значит для магазина выгодно привлекать покупателей даже за счет снижения цены на молочные продукты.
Но теперь нас интересует вопрос, как найти все товары подверженные корреляции, и как продажи товаров коррелируются с оборотом магазина? Используем корреляционную матрицу.
Корреляция продаж товаров по Гастроному
*При построении матрицы корреляция близкая к нулю обозначается кругом и серым цветом (используя выбранную нами цветовую гамму), а магнитуда колебаний от нуля определяется эллипсом и его цветом: синий в случае позитивной корреляции, красный в случае негативной.
На основе матрицы можем выделить топ товаров, продажи которых коррелированы с оборотом магазина
Хлеб и хлебобулочные изделия 0.977
Непродовольственные товары 0.950
Молоко и молочная продукция 0.934
Колбасные изделия 0.930
Снеки 0.870
Табачные изделия 0.835
Кондитерские изделия 0.802
Диабетическое питание 0.794
Бакалея 0.782
По нашему опыту хлеб, пакеты (непродовольственные товары), молоко и колбасные изделия имеют высокий коэффициент корреляции практически в любом магазине мира. Каждый, кто приходит в магазин, как правило, покупает один или несколько из этих товаров. А вот снеки, табачные и кондитерские изделия отличаются в этом конкретном случае, значит у Гастронома есть покупатели которые приходят в магазин именно за этими группами товаров.
Теперь применим анализ по частоте упоминаний товаров в чеках — ориентированный на покупателя, а не товар, подход.
Корреляция частоты упоминаний товаров в чеках по Гастроному
Выделяем из этой матрицы топ частоты упоминаний товаров в чеках:
Хлеб и хлебобулочные изделия 0.986
Колбасные изделия 0.961
Непродовольственные товары 0.956
Молоко. и молочная продукция 0.944
Кондитерские изделия 0.867
Снеки 0.864
Табачные изделия 0.858
Мясо 0.829
Диабетическое питание 0.812
Как видим топ категорий и даже цифры по категориям остались практически те же.
Применим тот же подход ко второму магазину.
Корреляция продаж товаров по Универсаму
А вот тут мы уже видим существенную разницу с Гастрономом.
Матрица по Универсаму показывает другой топ продаж товаров:
Непродовольственные товары 0.966
Хлеб и хлебобулочные изделия 0.943
Молоко и молочная продукция 0.908
Диабетическое питание 0.882
Колбасные изделия 0.840
Безалкогольные напитки 0.837
Табачные изделия 0.835
Кондитерские изделия 0.775
Алкоголь 0.773
Корреляция частоты упоминаний товаров в чеках по Универсаму
Топ частоты упоминаний товаров в чеках по Универсаму:
Непродовольственные товары 0.975
Хлеб и хлебобулочные изделия 0.968
Молоко и молочная продукция 0.948
Колбасные изделия 0.927
Диабетическое питание 0.905
Кондитерские изделия 0.899
Табачные изделия 0.858
Безалкогольные напитки 0.819
Алкоголь 0.785
Как видим, в Универсаме в топ вошли 2 новые категории — Безалкогольные напитки и Алкоголь вместо Бакалеи и Снеков у Гастронома.
Возможно это зависит от местоположения магазинов и конкурентной среды.
Корреляционные матрицы дают нам широкие возможности для анализа.
На чем хотели бы заострить внимание, при анализе данных матриц стоит учитывать не только корреляцию (позитивную или негативную), не коррелируемые товары, так же стоит анализировать. Например, растительное масло не коррелируется как ни с одной другой категорией товаров, так и с общим оборотом магазина. Анализ чеков аналогично показывает, что есть покупатели который приходят в магазин исключительно за растительным маслом. А значит маркетолог может разместить его в торговом зале где угодно и покупатель все равно отыщет нужный ему товар.
Еще один аспект, некоторые товары имеют обратную корреляцию, как, например, рыба и снеки. Это легко объяснить тем, что люди, как правило, в зависимости от своих предпочтений берут либо пиво+снеки, либо пиво+рыбу. Очень редко кто-то покупает и рыбу и снеки одновременно. Схожая ситуацию с мороженой и свежей рыбой, мороженым и тортами.
Детальный анализ связей между товарами дает большое количество таких фактов, которые могут быть полезны.
Корреляционный анализ показывает текущую ситуацию, товары значительно влияющие на оборот магазина. Но какие из них являются наиболее значимыми? Это проще рассмотреть с помощью построения линейных моделей, что будет темой нашей следующей статьи.
В Datawiz.io, собрав несколько мат-гиков, мы решили попытаться изменить сложившуюся ситуацию. Интересно же использовать свои знания на чем-то реальном, измеримом, и даже, возможно, приносящем пользу обществу. Остановились мы на ритейл индустрии. Ритейл предлагает множество данных для обработки, просто водопад цифр: продажи, чеки, ценообразование, покупатели, программы лояльности,… Есть с чем порезвится.
Простая визуализация ритейл данных это тоже достаточно скучно. Традиционная аналитика может показать данные вчерашнего дня и выглядит круто в отчетах, но она никогда не покажет завтрашний день.
Модели машинного обучения действуют иначе. Они дают Вам возможности контроля и взаимодействия. Вы можете играть с моделями, изменять параметры и смотреть как это влияет на результат, изучать возможные последствия различных комбинаций факторов. Чем не общение с оракулом?
Начнем с простого.
Возможно ли определить продажи каких товаров могут влиять на общую выручку магазина?
Имеем исходные данные по двум магазинам, назовем их Гастроном и Универсам:
1. объем продаж товаров определенной категории;
2. количество упоминаний в чеках товаров определенной категории.
Составляем таблицы:
ряды — недели;
колонки — категории;
ячейки -количество проданных товаров или упоминаний в чеках.
Итого — 4 таблицы, по 2 на каждый магазин.
Сначала разберемся с корреляцией продаж. как влияют продажи товаров на общий оборот магазина и на продажи других категорий. Тут возможны 3 варианта развития событий.
Мы знаем что практически любой магазин продает большое количество молока. Примем гипотезу, что продажи молока и оборот магазина прямо коррелируются. Мы обозначим данные о продажах молока синим, а данные об обороте красным.
plotPair <- function(x,y,namesX,namesY){
par(mfrow=c(2,1))
plot(x,type='l',col='red',main=namesX,xlab='')
plot(y,type='l',col='blue',main=namesY,xlab='')
par(mfrow = c(3,2),
oma = c(5,4,0,0) + 1,
mar = c(0,0,1,1) + 1
)
layout(matrix(c(1,2,3,4,5,5), 3,2, byrow = TRUE))
plot(x,type='l',col='blue',ylab='log sales qty',main=namesX,xlab='')
plot(y,type='l',col='red',main=namesY,xlab='')
hist(x,col='blue',main=names(x),breaks=20)
hist(y,col='red',main=names(y),breaks=20)
m<-lm(y~x)
plot(x,y,xlab=namesX,ylab=namesY)
abline(m,col='green',lwd=3)
}
plotPair(x=moloko_df$Молоко.и.молочная.продукция',
y=moloko_df$sum,
namesX='Молоко.и.молочная.продукция',
namesY='Оборот')
Сравним левый и правый графики, они практически одинаковы, что видно на рисунке.
На нижней диаграмме мы отобразили по горизонтали “Молоко и молочную продукцию”, а по вертикали “Оборот”, и тут так же мы можем наблюдать линейную зависимость. А значит наша гипотеза была верна.
Покупатели приходят в магазин за молоком, но так же покупают и другие товары, а значит для магазина выгодно привлекать покупателей даже за счет снижения цены на молочные продукты.
Но теперь нас интересует вопрос, как найти все товары подверженные корреляции, и как продажи товаров коррелируются с оборотом магазина? Используем корреляционную матрицу.
corr<-function(df){
cr <-cor(df, use="complete.obs")
par(cex = 0.9)
corrplot.mixed(corr=cr,upper="ellipse", tl.pos="lt", col = colorpanel(50, "red", "gray60", "blue4"),
cl.cex=0.5,tl.cex=1.1)
}
Корреляция продаж товаров по Гастроному
*При построении матрицы корреляция близкая к нулю обозначается кругом и серым цветом (используя выбранную нами цветовую гамму), а магнитуда колебаний от нуля определяется эллипсом и его цветом: синий в случае позитивной корреляции, красный в случае негативной.
На основе матрицы можем выделить топ товаров, продажи которых коррелированы с оборотом магазина
Хлеб и хлебобулочные изделия 0.977
Непродовольственные товары 0.950
Молоко и молочная продукция 0.934
Колбасные изделия 0.930
Снеки 0.870
Табачные изделия 0.835
Кондитерские изделия 0.802
Диабетическое питание 0.794
Бакалея 0.782
По нашему опыту хлеб, пакеты (непродовольственные товары), молоко и колбасные изделия имеют высокий коэффициент корреляции практически в любом магазине мира. Каждый, кто приходит в магазин, как правило, покупает один или несколько из этих товаров. А вот снеки, табачные и кондитерские изделия отличаются в этом конкретном случае, значит у Гастронома есть покупатели которые приходят в магазин именно за этими группами товаров.
Теперь применим анализ по частоте упоминаний товаров в чеках — ориентированный на покупателя, а не товар, подход.
Корреляция частоты упоминаний товаров в чеках по Гастроному
Выделяем из этой матрицы топ частоты упоминаний товаров в чеках:
Хлеб и хлебобулочные изделия 0.986
Колбасные изделия 0.961
Непродовольственные товары 0.956
Молоко. и молочная продукция 0.944
Кондитерские изделия 0.867
Снеки 0.864
Табачные изделия 0.858
Мясо 0.829
Диабетическое питание 0.812
Как видим топ категорий и даже цифры по категориям остались практически те же.
Применим тот же подход ко второму магазину.
Корреляция продаж товаров по Универсаму
А вот тут мы уже видим существенную разницу с Гастрономом.
Матрица по Универсаму показывает другой топ продаж товаров:
Непродовольственные товары 0.966
Хлеб и хлебобулочные изделия 0.943
Молоко и молочная продукция 0.908
Диабетическое питание 0.882
Колбасные изделия 0.840
Безалкогольные напитки 0.837
Табачные изделия 0.835
Кондитерские изделия 0.775
Алкоголь 0.773
Корреляция частоты упоминаний товаров в чеках по Универсаму
Топ частоты упоминаний товаров в чеках по Универсаму:
Непродовольственные товары 0.975
Хлеб и хлебобулочные изделия 0.968
Молоко и молочная продукция 0.948
Колбасные изделия 0.927
Диабетическое питание 0.905
Кондитерские изделия 0.899
Табачные изделия 0.858
Безалкогольные напитки 0.819
Алкоголь 0.785
Как видим, в Универсаме в топ вошли 2 новые категории — Безалкогольные напитки и Алкоголь вместо Бакалеи и Снеков у Гастронома.
Возможно это зависит от местоположения магазинов и конкурентной среды.
Корреляционные матрицы дают нам широкие возможности для анализа.
На чем хотели бы заострить внимание, при анализе данных матриц стоит учитывать не только корреляцию (позитивную или негативную), не коррелируемые товары, так же стоит анализировать. Например, растительное масло не коррелируется как ни с одной другой категорией товаров, так и с общим оборотом магазина. Анализ чеков аналогично показывает, что есть покупатели который приходят в магазин исключительно за растительным маслом. А значит маркетолог может разместить его в торговом зале где угодно и покупатель все равно отыщет нужный ему товар.
Еще один аспект, некоторые товары имеют обратную корреляцию, как, например, рыба и снеки. Это легко объяснить тем, что люди, как правило, в зависимости от своих предпочтений берут либо пиво+снеки, либо пиво+рыбу. Очень редко кто-то покупает и рыбу и снеки одновременно. Схожая ситуацию с мороженой и свежей рыбой, мороженым и тортами.
Детальный анализ связей между товарами дает большое количество таких фактов, которые могут быть полезны.
Корреляционный анализ показывает текущую ситуацию, товары значительно влияющие на оборот магазина. Но какие из них являются наиболее значимыми? Это проще рассмотреть с помощью построения линейных моделей, что будет темой нашей следующей статьи.
Комментарии (2)
knagaev
07.08.2015 10:56+4Вот для ваших мат-гиков кое-что поинтереснее по теме
Лекция 21. Поиск ассоциативных правил
shad.yandex.ru/lectures/machine_learning_21.xml
Лекция 22. Коллаборативные итерации
shad.yandex.ru/lectures/machine_learning_22.xml
valodik
Что-то ни Биг Даты, ни машинного обучения… Просто корреляции посчитали.
И скажите, почему подтверждение гипотезы, что «продажи молока и оборот магазина прямо коррелируются», дает вам право утверждать, что покупатели приходят за молоком и попутно берут другие продукты, а не наоборот: покупатели приходят за всякой всячиной и попутно покупают молоко?