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

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

В статистике линейная регрессия — это линейный подход к моделированию взаимосвязи между скалярным откликом (Y) и одной или несколькими независимыми переменными (X).

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

Мы можем описать лежащую в основе взаимосвязь между Yi и Xi, включая этот термин ошибки Ei, с помощью

Yi=α+ β Xi +Ei

Эта взаимосвязь между истинными базовыми параметрами α и β и точками данных называется моделью линейной регрессии.

Графически линейная регрессия представлена ​​на рисунке ниже:

Как видите — линия линейной регрессии наиболее оптимально описывает набор данных.

Но как это можно использовать для анализа тенденций? Здесь могут помочь коэффициенты регрессии. Коэффициент α здесь означает пересечение линии регрессии с осью Y. Коэффициент β означает наклон — тангенс угла между осью X и линией регрессии. Так, если у клиента будут положительные тенденции — коэффициент β будет иметь положительное значение, если тенденция отрицательная — коэффициент β будет иметь отрицательное значение.

Итак, чтобы определить тренды для клиента — достаточно собрать данные по его активности, сгруппированные по временным интервалам, и рассчитать коэффициенты регрессии для этого набора данных. Это можно сделать очень легко на Python:

import numpy as np
import matplotlib.pyplot as plt
# get customer operations number grouped by montes as dictionary [‘x’: [4, 5, 6, ...], ‘y’: [12, 63, 88]]
data = getPaymentsByMonths(accountId)
x = np.array(data['x'])
y = np.array(data['y'])
# draw data points on the chart
plt.plot(x, y, 'o')
# calculate regression coefficients
b, a = np.polyfit(x, y, 1)
# draw regression line on the chart
plt.plot(x, b*x + a)
# display chart
plt.show()

Сравним результаты регрессионного анализа для 2 клиентов на основе данных о количестве операций в месяц:

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

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

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