Автоматический анализ клиентских данных (RFM-анализ) с помощью Google BigQuery
Чем лучше бизнес знает предпочтения и поведение клиентов, тем эффективнее создает собственную маркетинговую стратегию и улучшает обслуживание.
Расскажу о RFM-анализе — как он помогает выявлять самых ценных пользователей и оптимизировать ресурсы для удержания и привлечения новых покупателей.
Что такое RFM
Впервые его применили более 25 лет назад в США компании, занимавшиеся продажами по каталогам — Land’s End, Charles Tyrwhitt и JCPenney. Они использовали RFM для минимизации затрат на доставку и повышения прибыли от продаж.
RFM-анализ — это проверенный метод сегментации клиентов по давности последней транзакции, частоте покупок и размеру расходов. Он помогает анализировать поведение клиентов и выделять различные сегменты, в том числе самые ценные, для оптимизации маркетинговых стратегий.
Клиенты классифицируются по трем основным критериям:
- Recency — давно ли покупал клиент.
- Frequency — с какой частотой пользователь покупает.
- Monetary — сколько средств клиент тратит.
Какие данные нужны для сегментации
Больший датасет — более точные результаты. Чтобы не создавать отдельную базу под RFM, используйте Google Analytics 4. Он предоставляет мощный инструментарий для отслеживания метрик посещаемости и поведения пользователей на вашем сайте или в приложении.
Процесс сбора и загрузки данных из Google Analytics 4 в Google BigQuery может быть автоматизирован с помощью интеграции между этими двумя инструментами. После установки интеграции данные автоматически попадают в указанную базу данных Google BigQuery.
Для обработки показателей и сегментации используйте язык Python и библиотеки:
- pandas — для загрузки и обработки данных;
- scikit-learn— для анализа и машинного обучения;
- numpy — для работы с массивами данных;
- matplotlib і seaborn — для визуализации результатов анализа.
Читайте подробнее, Как обходить лимит в 1 млн ивентов выгрузки данных из Google Analytics 4 в Google BigQuery.
Подготовка данных: пример на основе ecommerce-бизнеса
Эффективность RFM-анализа в значительной степени зависит от качества подготовки данных. Ошибки или пропуски на этом этапе могут существенно повлиять на результаты, что, в свою очередь, приведет к неправильным выводам. Рассмотрю пошаговый процесс подготовки данных для ecommerce-бизнеса, анализирующего покупки пользователей.
Этапы подготовки данных:
- Загрузка и обработка.
С помощью библиотеки pandas загрузите данные в формате csv, которые получили из Google Analytics 4.
data = pd.read_csv("output_data.csv", parse_dates=[’event_date’], date_parser=lambda x: pd.to_datetime(x, format=’%Y%m%d’), dtype=dtype_mapping)
- Анализ структуры.
Рассмотрите набор данных, который содержит информацию о транзакциях в онлайн-магазине. Каждая запись в наборе данных отражает покупку пользователя и содержит следующие ключевые переменные.
Этот датасет содержит 33258 записей и 17 переменных с различными типами данных: числовые (цены, количество), категориальные (город, браузер, категория товара, дата)
- Анализ уникальных значений.
Проверка количества уникальных значений в каждой нечисловой переменной позволяет понять, насколько разнообразны данные.
Переменная device_browser содержит одно уникальное значение, следовательно, не будет влиять на результат и может быть удалена. Поскольку она не содержит никакой вариативности, ее включение в анализ не добавляет никакой информативности о сегментации клиентов или анализе их поведения. В переменной event_name также один уникальный показатель, равный «purchase». То есть входной набор данных уже был отфильтрован, и он содержит только пользователей, совершивших покупку.
- Анализ пропущенных данных.
Пропущенные значения в переменных могут существенно влиять. Поэтому важно их найти и обработать.
Пропущенные значения найдены в переменных city, item_category и device_browser
- Описательная статистика.
После проверки структуры и уникальности значений данных важно оценить числовые показатели.
Описательная статистика позволяет понять распределение основных переменных и выявить возможные аномалии. Особенно это важно для полей, связанных с доходом и ценой, поскольку значительные отклонения могут влиять на качество сегментации пользователей.
Анализируя полученные показатели, можно сделать следующие выводы.
Имеющиеся данные охватывают примерно девять месяцев, что свидетельствует о достаточно объемной выборке для выявления тенденций и оценки поведения клиентов в длительный период.
Минимальное значение ecommerce_purchase_revenue (Доход от покупки): 0,000525. Такой низкий показатель может указывать на наличие тестовых транзакций, микроплатежей или некорректно обработанных операций. Это важно, поскольку подобные записи могут искажать средние значения дохода, влиять на сегментацию отдельных групп пользователей.
Высокое стандартное отклонение (22,55) указывает на большую вариативность доходов, что подтверждает значительные колебания в сумме покупок разных клиентов. Это может быть следствием как естественного распределения расходов, так и аномальных значений, которые также важно учесть при дальнейшей обработке данных. Наличие нулевых или очень низких цен (price) может свидетельствовать об ошибках в записях или промоушене, предоставляющей товар бесплатно.
Максимальное значение price — 8790,0. Это указывает на наличие нескольких очень дорогих товаров, что бывает из-за ошибок в данных или редких предметов с чрезвычайно высокими ценами.
Максимальный показатель quantity (Количество): 600 показывает наличие некоторых аномально больших заказов или является результатом ошибок в данных.
С учетом этих выводов следующим этапом станет обработка всех выявленных аномалий, включая низкие и нулевые значения дохода, экстремальные вариации в цене и количестве заказов. Это позволит устранить возможные ошибки, обеспечить корректность анализа и улучшить точность RFM-анализа.
- Очистка и подготовка данных.
device_browser удаляется, поскольку содержит все пропущенные значения.
Пропущенные данные в колонках city и item_category заполняются значением «Unknown».
Обработка аномальных значений:
- для ecommerce_purchase_revenue и price используются 1-й и 99-й процентили для определения допустимого диапазона значений;
- для quantity устанавливается максимальный показатель на основе 99-го процентиля.
После завершения обработки данных все готово к выполнению RFM и дальнейшей сегментации пользователей.
Практическая ценность RFM-анализа
Он помогает:
- Определить самых преданных клиентов.
- Разработать персонализированные маркетинговые стратегии.
- Оптимизировать расходы на маркетинг.
- Повысить удовлетворенность покупателей.
Пример кода для выполнения RFM на собранных данных:
Визуализация результатов RFM-анализа
Для этого используются коробочные диаграммы (boxplot) и гистограммы — первые показывают распределение данных и выявляют аномалии, а вторые демонстрируют частоту значений.
Анализ результатов
Полученные результаты помогают понять поведение клиентов и их ценность для бизнеса:
- Recency —покупатели с малыми значениями recency являются наиболее активными.
- Frequency — клиенты с высокими показателями frequency покупают часто.
- Monetary — пользователи с высоким monetary приносят наибольший доход.
Полученные данные квартилей для каждой из метрик (recency, frequency, monetary) указывают на следующее:
- Recency. Значение медианы (145 дней) указывает на средний период активности клиентов, а данные 75-го процентиля (222 дня) демонстрируют, что некоторые пользователи могли покупать до семи месяцев назад.Максимальное значение (256 дней) показывает достаточно большой интервал последней покупки для наименее активных покупателей. Здесь нужно учитывать сезонность покупок.
- Frequency. Частота покупок указывает на то, что большинство клиентов совершает только одну или две покупки в течение всего периода. Медиана, равная 1,0, подтверждает это, поскольку значительная часть пользователей покупала очень редко.Максимальное значение (6) показывает, что некоторые клиенты могли покупать до шести раз. Похоже, эти покупки по необходимости, что характерно для товаров еженедельного потребления.
- Monetary. Показатели на 25-м процентили (6,43) и медиана (10,34) свидетельствуют о том, что большинство покупок имеют относительно небольшую стоимость.
Значение 75-го процентиля (19,99) указывает на то, что значительная часть покупателей тратит больше. Некоторые показатели достигают максимума (196,96) — это может быть обусловлено спецификой сферы и свидетельствует о крупных разовых заказах.
Кластеризация с помощью K-Means
Мощный инструмент анализа данных, позволяющий разделить большое количество клиентов или товаров на группы по схожим признакам.
Этот подход позволяет найти объекты с аналогичным поведением и характеристиками, что дает возможность применять специализированные маркетинговые и продуктовые стратегии для каждой из таких групп.
Если сегментировать пользователей по категориям товаров и времени последней трансакции, можно выявить таких, которые нуждаются в акциях для увеличения частоты заказов. А также пользователей, которых можно поощрить вернуться к покупкам с помощью специальных предложений.
Сперва нужно подготовить данные:
- Кодирование категориальных переменных. Алгоритм может оперировать только числовыми данными. Поэтому нужно сначала преобразовать все строковые переменные. Например, город, тип устройства или категория товара.
- Масштабирование числовых данных. Числа, представляющие частоту покупок, сумму или время, прошедшее с последней покупки, нужно привести к одному масштабу.
Используя этот инструмент, сделать RFM сегментацию для своего бизнеса проще, чем раскрыть звездную карту для гороскопа. И таким образом определить, что все Водолеи — инфантильные, Девы — душные, а Champions — стабильные покупатели :)
Примеры сегментации:
- Champions (high R, high F, high M). Активные и щедрые, они постоянно возвращаются за новыми покупками и не боятся потратить много денег. Самые преданные клиенты, всегда готовы попробовать новинки.
- Loyal Customers (medium R, high F, medium M). Активные и коммуникабельные, часто покупают по умеренному чеку. Они любят акции и скидки, и всегда готовы вернуться за выгодным предложением.
- Big Spenders (low R, high F, high M). Осторожные и надежные, нечасто покупают, но обычно тратят большие суммы. Они ценят качество и готовы платить за него.
- Perfectionists (medium R, medium F, high M). Регулярно совершают покупки по высокому чеку. Они тщательно выбирают товары и всегда возвращаются к любимым брендам.
- Dreamers (low R, low F, medium M). Редко покупают, но тратят немного. Они любят комфорт и обычно выбирают то, что приносит им удовольствие.
Выбор количества кластеров при помощи «метода локтя»
При настройке алгоритма важно определить оптимальное количество групп, чтобы избежать слишком мелкого разделения клиентов со схожими характеристиками. Или, наоборот, создания слишком больших групп с разнородными данными. Идеальный результат, когда на графике расстояние между группами максимальное, а внутри каждой группы — минимальное. Это обеспечивает четкое разграничение между сегментами.
«Метод локтя» помогает найти оптимальное количество групп для анализа данных. На графике этот метод демонстрирует, как меняется внутренняя вариация с увеличением количества групп. Важно определить точку, где уменьшение вариации становится незначительным.
Выполнение кластеризации и анализ результатов
После определения количества групп примените алгоритм K-Means. Он разделит данные на кластеры и даст для каждого клиента метку — отметку группы, к которой он принадлежит. Проанализировав группы, вы выделите разные типы покупателей и выявите пути улучшения их обслуживания.
Алгоритм определил оптимальным пять кластеров для ваших данных.
Пример результата
Каждая строка в исходных данных имеет определенные значения для закодированных категориальных и числовых переменных, а также принадлежит к определенному кластеру (segments).
Визуализация результатов кластеризации.
Результаты кластеризации показывают характеристики каждого из сегментов по трем основным метрикам:
- recency — последняя активность пользователя;
- frequency — частота покупок;
- monetary — сумма покупок, закодированная в диаметре сегмента.
Проанализирую полученные данные.
Кластер 0: Moderately Active Customers (Medium R, High F, High M).
Количество клиентов: 5805.
Пользователи регулярно покупают на большой чек. Они преданы бренду и часто возвращаются для новых покупок, что делает их важными для удержания.
Кластер 1: Irregular Customers (High R, Low F, Low M).
Количество клиентов: 18296.
Покупатели этого сегмента давно и изредка покупали, тратили мало денег. Они могут потерять интерес, поэтому нуждаются в активном привлечении для возвращения.
Кластер 2: Highly Active Customers (High R, Low F, Medium M).
Количество клиентов: 3514.
Давно совершали последний заказ и редко брали что-то, хотя тратили средние суммы. Они могут быть заинтересованы в приобретениях, но нуждаются в дополнительном стимуле для большей активности.
Кластер 3: Inactive Customers (High R, Medium F, Low M).
Количество клиентов: 4389.
Такие люди покупали давно, но делали это периодически, тратили небольшие суммы.
Кластер 4: Top Spenders (Medium R, High F, High M).
Количество клиентов: 1254.
Покупали сравнительно недавно, делали это часто и тратили большие суммы. Они являются самыми ценными для бизнеса, их стоит поддерживать и поощрять для дальнейших покупок.
Кластеризация с использованием PCA
Principal Component Analysis (PCA) — метод статистического анализа, который помогает уменьшить сложность данных и одновременно сохраняет основную информацию. Особенно полезен, когда у вас много переменных или взаимосвязанных признаков.
Основная цель PCA — уменьшить объем измерений данных, то есть факторов или признаков, превратив их в меньшее количество новых переменных (главных компонентов).
Как это работает:
- Идентификация основных направлений. PCA исследует данные и определяет новые направления (компоненты), в которых показатели имеют наибольшую дисперсию. Это означает, что новые компоненты смогут объяснить наибольшую часть вариаций в значениях.
- Проекция данных. Данные проецируются на эти новые направления.
- Уменьшение размерности. Вместо того чтобы работать со всеми исходными переменными, можно сосредоточиться на нескольких основных компонентах, которые содержат большую часть информации.
Преимущества PCA:
- Упрощение данных. Уменьшение количества измерений помогает упростить модели и анализы, снижает шум и улучшает эффективность алгоритмов машинного обучения.
- Уменьшение вычислительных затрат. Меньшее количество переменных означает меньше вычислительных ресурсов для анализа и визуализации.
- Выявление структуры. PCA помогает выявить основные структуры и шаблоны в данных, что сложно увидеть в высокоразмерных пространствах.
Анализ результатов PCA-кластеризации.
С помощью PCA вы измените размерность данных.
В примере начальной сегментации использовано для каждого клиента девять характеристик, которые преобразовали в три показателя.
После уменьшения размерности данных с помощью PCA выполняйте кластеризацию.
Пример данных после PCA
Визуально такие данные не дают полезной информации. Плюс на обработку вручную требуется много времени. Алгоритмы K-Means быстро анализируют показатели и распределяют их на сегменты.
Пример кластеризации PCA данных в кластерах
На графике каждая точка обозначает определенного клиента, а цвет — класс, к которому он принадлежит. Каждый сегмент можно отделить друг от друга, а это означает, что пользователи отличаются по уникальным признакам.
Используя новое разделение на кластеры, возвращайтесь к метрикам RFM-анализа.
Кластер 0: Infrequent Low Spenders (Medium R, Low F, Low M).
Количество клиентов: 14010.
Покупают с умеренной регулярностью, но тратят незначительные средства. Их стоит поощрять делать частые и крупные покупки.
Кластер 1: High-Frequency Big Spenders (Low R, High F, High M).
Количество клиентов: 144.
Такие люди покупают часто и по большому чеку. Они являются ценными для бизнеса и требуют особого внимания для поддержания лояльности.
Кластер 2: Dormant Low Spenders (High R, Low F, Low M).
Количество клиентов: 17373.
Давно не покупали и вообще редко покупают, чеки небольшие. Эти пользователи нуждаются в активном вовлечении и стимулировании для возврата.
Кластер 3: Occasional Medium Spenders (Low R, Medium F, Medium M).
Количество клиентов: 1406.
Недавно совершали покупки, делают это периодически и тратят средние суммы.
Кластер 4: Moderately Frequent Medium Spenders (Medium R, Medium F, Medium M).
Количество клиентов: 325.
Эти люди покупают с умеренной регулярностью и по среднему чеку. Они имеют потенциал для увеличения расходов при условии надлежащей мотивации.
Применение PCA значительно улучшило качество кластеризации: снижено влияние корреляции между метриками и выделены основные компоненты, несущие наибольшую вариативность данных. Это позволило лучше распределить пользователей по сегментам.
Полученные данные сохранены для построения отчета.
Выводы
Эффективный бизнес всегда ориентируется на клиента. Знание его потребностей, поведения и предпочтений является ключом к созданию успешных маркетинговых стратегий и повышению качества обслуживания.
- RFM-анализ — проверенный метод, позволяющий классифицировать пользователей по частоте покупок, размеру расходов и давности последней трансакции. Такой подход помогает сосредоточиться на самых ценных сегментах аудитории.
- RFM требует качественного датасета, который может быть получен из Google Analytics 4. Интеграция GA4 с Google BigQuery автоматизирует сбор данных для дальнейшей обработки.
- Подготовка данных — критически важный этап для получения корректных результатов. Включает очистку от пропусков, нормализацию значений, удаление аномалий и структурирование показателей.
- С использованием Python и библиотек pandas, scikit-learn, numpy, matplotlib и seaborn можно автоматизировать обработку данных, создать RFM-модели и получить ценные инсайты:
- RFM-анализ дает возможность:
- выявить самых преданных клиентов;
- разработать персонализированные стратегии;
- оптимизировать маркетинговые расходы;
- повысить уровень удовлетворенности покупателей.
- Благодаря RFM можно сегментировать покупателей на группы, например, Champions, Loyal Customers, Big Spenders, Perfectionists, Dreamers и др. Каждая из них имеет уникальные потребности и потенциал для бизнеса.
- Для более глубокой сегментации пользователей можно использовать метод K-Means, который группирует их по схожим характеристикам и позволяет адаптировать маркетинговые стратегии для каждого кластера.
Поэтому RFM-анализ помогает значительно повысить эффективность бизнес-процессов, ориентируясь на поведение клиентов.
Свежее
Как увеличение источников спроса на рекламу повысило прибыль сайта на 60% — кейс mediapool.bg
Рассказываем, как повысили прибыль с новостного сайта без увеличения рекламных мест
Amazon Moments: подробное руководство
Как настроить и использовать программу лояльности Amazon
Настройка и оптимизация динамических поисковых объявлений. Пошаговое руководство
В этой статье разбираю, как динамические поисковые объявления помогают автоматизировать рутинные процессы, охватить весь ассортимент и увеличить объём продаж