1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
* RFM-анализ - простое средство классификации клиентов в интересах маркетинга на основе профиля их потребления.
* Он предусматривает классификацию (ранжирование) клиентов в группы по давности совершения последней транзакции (Recency - R, 
  частоте покупок, визитов, посещений или транзакций (Frequency - F) и денежной ценности этих покупок (Monetary - M), 
  а также выведение составного показателя - R-F-M. Обычно для каждого показателя выводится 5 групп (значение в ключевом слове
  NTILES в командах RANK ниже), но это число можно менять. 5 групп создаются на основе квинтилей, т.е. равных по размеру групп.
* Разумеется, в небольшом примере, представленном ниже, наполненность групп может быть неодинаковой.
* В данном примере клиенты, принадлежащие к группе 5-5-5 по показателю R-F-M, считаются наиболее ценными клиентами: их последняя покупка
  совершена недавно, покупки они совершают часто, и в сумме потратили у нас достаточно много денег. Клиенты группы 1-1-1, вероятно, 
  "случайные", разовые клиенты, которые совершили небольшое число небольших по стоимости покупок уже достаточно давно. 
* Подобная классификация применяется в интересах выявления наиболее ценных клиентов, групп клиентов, которых надо "развивать", ценных клиентов, 
  которые склонны к оттоку (давно не совершали покупок) и ряда других специфических групп. Для групп, заинтересовавших бизнес-аналитика, 
  могут быть предложены специальные программы, условия, сделаны предложения в рамках маркетинговых кампаний. В data mining показатели
  R-F-M часто являются хорошими предикторами для предсказания склонности клиента к оттоку, к совершению повторной покупки, к подключению
  новой услуги и т.д. Таким образом, RFM анализ находит широкое применение в аналитическом CRM.


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

* Приводимый ниже синтаксис сначала создает простой пример данных, где по каждому клиенту (id) подытожены показатели давности, частоты
  и суммарной стоимости совершенных им покупок (транзакций). Разумеется, если у вас на руках имеется база данных о транзакциях клиентов, 
  такую информацию также можно обработать, но предварительно придется провести несложную агрегацию файла данных. Поскольку данный пример
  ориентирован на демонстрацию RFM-анализа, будем считать, что данные уже подготовлены в нужном виде:.

* Пример данных --------------------------------------------------.
DATA LIST LIST /id Recency Frequency Monetary.
BEGIN DATA
1 1 2 23.1
2 6 5 132.9
3 0 4 22.2
4 4 1 4.3
5 43 1 6.12
6 3 1 23
7 2 1 4.53
8 3 8 33.23
9 4 7 19.32
10 5 1 45.2
11 7 1 65.89
12 5 5 35.22
13 5 5 32.96
14 2 9 81.11
15 1 12 165.5
16 2 3 51
17 12 2 13
18 11 3 13.01
19 3 21 432.3
20 32 23 626.7
END DATA. 

FORMATS id Recency Frequency (F5.0) Monetary (F5.1).
VAR LAB
 id 'ID клиента'
 Recency 'Давность покупки'
 Frequency 'Число покупок'
 Monetary 'Сумма стоимости покупок'.
* ----------------------------------------------------------------.



* Корреляции -----------------------------------------------------.
* Хотя это и не является частью RFM-анализа, полезно изучить корреляции, чтобы увидеть ожидаемые закономерности и убедиться
  в целостности данных. В частности, логично предположить, что показатели частоты и денежной ценности клиентов должны
  хорошо положительно коррелировать.

CORR Recency Frequency Monetary.
* ----------------------------------------------------------------.



* RFM-группировка, вариант 1 -------------------------------------.
* Каждый из 3-х показателей разбивается на квинтили независимо друг от друга, мы придаем одинаковую "важность" каждому
  из 3-х показателей.
* Например, что если для клиента мы видим значение M=5, то сумма покупок для данного клиента
  входит в число 20% наиболее крупных покупок во всей выборке клиентов.
* NB! Если вы выбрали этот вариант группировки, то поставьте значки * перед каждой из трех команд RANK во втором варианте
  группировки.
* NB! Заметьте, что по показателю Recency мы номера групп выставляем в "обратном" порядке (Descending), т.е. наиболее
  давние покупки получают меньший код, а недавние - больший. В этом смысле правильнее было бы назвать этот показатель не Recency
  (недавность), а Remoteness (отдаленность факта покупки от настоящего времени).

RANK Recency (D) Frequency Monetary (A) /NTILES (5) INTO R F M.
* ----------------------------------------------------------------.



* RFM-группировка, вариант 2 -------------------------------------.
* Производится группировка сначала по показателю давности (ряд теорий считают этот показатель наиболее важным), затем - 
  по показателю частоты ВНУТРИ каждой из групп по давности, затем - по показателю денежной ценности ВНУТРИ каждого сочетания
  групп по давности и частоте.
* Например, если для клиента мы видим значения R=1, F=5, M=5, это означает, что сумма покупок данного клиента входит в число
  20% наиболее крупных покупок в подгруппе клиентов, относящихся к 20% клиентов в выборке, совершивших покупки давно и одновременно
  к 20% клиентов с наибольшей частотой покупок внутри этой группы давно ничего не приобретавших клиентов.
* Таким образом, среди групп 1-5-5 и 1-5-1 в данном варианте группировки различия в суммах покупок могут быть значительно меньше, чем
  среди тех же групп в первом варианте группировки. В этом варианте показатели F и M играют вторичную роль относительно недавности покупок.
* NB! Если вы выбрали этот вариант группировки, то поставьте значок * перед командой RANK в первом варианте
  группировки.

*RANK Recency (D) /NTILES (5) INTO R.
*RANK Frequency (A) BY R /NTILES (5) INTO F.
*RANK Monetary (A) BY R F /NTILES (5) INTO M.
* ----------------------------------------------------------------.


* Создаем совокупный показатель RFM и описываем все 4 показателя -.
COMPUTE RFM = R*100 + F*10 + M.
VAR LAB
 R 'Группа по давности'
 F 'Группа по частоте'
 M 'Группа по денежной ценности'
 RFM 'Сводный показатель RFM'.
EXE.
* Посмотрите на результат в файле данных.
* ----------------------------------------------------------------.



* Отсортируем и выведем список клиентов---------------------------.
* Наиболее "ценные" клиенты в смысле недавности, частоты и 
  объема покупок - в начале списка.

SORT CASES BY RFM (D).
LIST RFM id.
* ----------------------------------------------------------------.



* Что дальше... ---------------------------------------------------.
* Как сказано выше, калькуляция показателя RFM и его составляющих несложна. Наибольшую ценность этот показатель приобретает в последующем
  применении при решении конкретных бизнес-задач. Например, вам хотелось бы выявить достаточно ценных клиентов, давно не совершавших
  у вас покупок. Следует постараться вернуть этих клиентов в компанию, стимулировать их к возобновлению потребления. Бизнес-правило, 
  определяющее таких клиентов, может выглядеть таким образом:

TEMP /*Временное удаление данных по условию, до первой процедуры, в данном случае - LIST*/.
SEL IF (R=1 or R=2) & Range(F, 3, 5) & Range (M, 3, 5).
* Вот они:.
LIST RFM id.
* ----------------------------------------------------------------.

*P.S. RFM-анализ реализован в последних версиях SPSS (IBM SPSS Statistics) в модуле Direct Marketing. Он снабжен диалоговым интерфейсом
      и позволяет делать анализ как по агрегированным данным о клиентах, так и по данным о транзакциях.