Применяем корреляцию в ритейле

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

    В Datawiz.io, собрав несколько мат-гиков, мы решили попытаться изменить сложившуюся ситуацию. Интересно же использовать свои знания на чем-то реальном, измеримом, и даже, возможно, приносящем пользу обществу. Остановились мы на ритейл индустрии. Ритейл предлагает множество данных для обработки, просто водопад цифр: продажи, чеки, ценообразование, покупатели, программы лояльности,… Есть с чем порезвится.
    image


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

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

    Начнем с простого.

    Возможно ли определить продажи каких товаров могут влиять на общую выручку магазина?

    Имеем исходные данные по двум магазинам, назовем их Гастроном и Универсам:
    1. объем продаж товаров определенной категории;
    2. количество упоминаний в чеках товаров определенной категории.

    Составляем таблицы:
    ряды — недели;
    колонки — категории;
    ячейки -количество проданных товаров или упоминаний в чеках.
    image

    Итого — 4 таблицы, по 2 на каждый магазин.

    Сначала разберемся с корреляцией продаж. как влияют продажи товаров на общий оборот магазина и на продажи других категорий. Тут возможны 3 варианта развития событий.
    image

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

     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='Оборот') 

    image

    Сравним левый и правый графики, они практически одинаковы, что видно на рисунке.

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

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

    Но теперь нас интересует вопрос, как найти все товары подверженные корреляции, и как продажи товаров коррелируются с оборотом магазина? Используем корреляционную матрицу.
    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)
    }


    Корреляция продаж товаров по Гастроному
    image
    *При построении матрицы корреляция близкая к нулю обозначается кругом и серым цветом (используя выбранную нами цветовую гамму), а магнитуда колебаний от нуля определяется эллипсом и его цветом: синий в случае позитивной корреляции, красный в случае негативной.

    На основе матрицы можем выделить топ товаров, продажи которых коррелированы с оборотом магазина

    Хлеб и хлебобулочные изделия 0.977
    Непродовольственные товары 0.950
    Молоко и молочная продукция 0.934
    Колбасные изделия 0.930
    Снеки 0.870
    Табачные изделия 0.835
    Кондитерские изделия 0.802
    Диабетическое питание 0.794
    Бакалея 0.782


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

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

    Корреляция частоты упоминаний товаров в чеках по Гастроному
    image

    Выделяем из этой матрицы топ частоты упоминаний товаров в чеках:

    Хлеб и хлебобулочные изделия 0.986
    Колбасные изделия 0.961
    Непродовольственные товары 0.956
    Молоко. и молочная продукция 0.944
    Кондитерские изделия 0.867
    Снеки 0.864
    Табачные изделия 0.858
    Мясо 0.829
    Диабетическое питание 0.812


    Как видим топ категорий и даже цифры по категориям остались практически те же.

    Применим тот же подход ко второму магазину.

    Корреляция продаж товаров по Универсаму
    image

    А вот тут мы уже видим существенную разницу с Гастрономом.

    Матрица по Универсаму показывает другой топ продаж товаров:

    Непродовольственные товары 0.966
    Хлеб и хлебобулочные изделия 0.943
    Молоко и молочная продукция 0.908
    Диабетическое питание 0.882
    Колбасные изделия 0.840
    Безалкогольные напитки 0.837
    Табачные изделия 0.835
    Кондитерские изделия 0.775
    Алкоголь 0.773


    Корреляция частоты упоминаний товаров в чеках по Универсаму
    image

    Топ частоты упоминаний товаров в чеках по Универсаму:

    Непродовольственные товары 0.975
    Хлеб и хлебобулочные изделия 0.968
    Молоко и молочная продукция 0.948
    Колбасные изделия 0.927
    Диабетическое питание 0.905
    Кондитерские изделия 0.899
    Табачные изделия 0.858
    Безалкогольные напитки 0.819
    Алкоголь 0.785


    Как видим, в Универсаме в топ вошли 2 новые категории — Безалкогольные напитки и Алкоголь вместо Бакалеи и Снеков у Гастронома.
    Возможно это зависит от местоположения магазинов и конкурентной среды.

    Корреляционные матрицы дают нам широкие возможности для анализа.

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

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

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

    Корреляционный анализ показывает текущую ситуацию, товары значительно влияющие на оборот магазина. Но какие из них являются наиболее значимыми? Это проще рассмотреть с помощью построения линейных моделей, что будет темой нашей следующей статьи.
    • +9
    • 10,7k
    • 2
    datawiz.io
    0,00
    Компания
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 2

      0
      Что-то ни Биг Даты, ни машинного обучения… Просто корреляции посчитали.
      И скажите, почему подтверждение гипотезы, что «продажи молока и оборот магазина прямо коррелируются», дает вам право утверждать, что покупатели приходят за молоком и попутно берут другие продукты, а не наоборот: покупатели приходят за всякой всячиной и попутно покупают молоко?
        +4
        Вот для ваших мат-гиков кое-что поинтереснее по теме

        Лекция 21. Поиск ассоциативных правил
        shad.yandex.ru/lectures/machine_learning_21.xml

        Лекция 22. Коллаборативные итерации
        shad.yandex.ru/lectures/machine_learning_22.xml

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

        Самое читаемое