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

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

Фон

У нас есть набор данных о 18 000 клиентов с информацией о поле, образовании, браке, возрасте, просрочке платежа и других переменных.

На графике справа показано, что количество клиентов, которые просрочили платеж, почти на 75% больше, чем тех, кто заплатил сумму. Теперь, чтобы построить модель логистической регрессии, мы используем функцию glm() и устанавливаем аргумент семейства на «биномиальный». это дает нам результат с указанием значения значимости для каждой переменной и соответствующих коэффициентов.

Статистическая значимость

После построения модели логистической регрессии необходимо проверить статистическую достоверность. Это помогает объяснить, как на самом деле работает проверка гипотезы. Если нулевая гипотеза, также известная как H0, верна, то есть информационный бюллетень не влияет на возврат клиента. Вы могли бы предположить, что синяя кривая является истинным распределением оценки коэффициента и что наши данные дадут значение Z где-то близко к середине кривой, т.е. близко к 0. Но после проверки значений Z переменных в нашем наборе данных мы видим, что переменная имеет значение дальше от 0 и оказывает значительное влияние, и поэтому мы отвергаем нулевую гипотезу.

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

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

Один из способов сделать это — использовать метод Step AIC. В конце процесса вы увидите модель с меньшим количеством исследовательских переменных и более высоким значением AIC. Запуск модели AIC отлично справился с задачей, убрав несколько переменных, которые были включены в более раннюю модель логистической регрессии.

Но проверка правдоподобия модели с точки зрения контента очень важна.

Подобно R-квадрату в линейной регрессии, в логистической регрессии мы используем статистику псевдо-R-квадрата. Сюда входят Mc Fadden, Cox & Snell и Nagelkerle.

Для статистической интерпретации это интерпретируется следующим образом:

  1. Приемлемо › 0,2 значение 0,2 или выше приемлемо
  2. Хорошо, если › 0,4 значение 0,4 или выше считается хорошим
  3. Очень хорошо, если › 0,5 значение 0,5 или выше считается очень хорошим

Используя функцию LogRegR2 () из пакета «descr», мы можем получить меры для R-квадрата. Плохое значение 0,2 или ниже показывает, что у модели есть проблема с объяснением дисперсии набора данных.

Другой мерой хорошего соответствия является измерение точности модели. Измерение прогнозируемых значений с помощью функции прогнозирования (), а затем отображение их в матрице путаницы с использованием функции путаницыMatrix () из пакета «caret» путем установки определенного порога позволяет нам сравнивать прогнозируемые значения с фактическими значениями.

  1. True Negative (TN) = наша модель предсказывала, что нет, а фактические значения были нет.
  2. Ложноотрицательный (FN) = наша модель ошибочно предсказала это как «нет», но фактический результат был «да».
  3. False Positve (FP) = наша модель предсказывала, что да, но фактический результат был отрицательным.
  4. Истинно положительный (TP) = наша модель предсказала да, и фактический результат был да.

Чтобы определить чувствительность модели, необходимо найти оптимальное пороговое значение, для которого мы хотели бы классифицировать прогнозируемое значение как 1. Поскольку функция прогнозирования дает вероятность от 0 до 1, мы можем определить значение, выше которого мы бы хотите классифицировать как 1, а остальные как 0. Чтобы найти оптимальное пороговое значение, это зависит от характера бизнеса, например, при установке порога для тех, кого мы хотели бы подвергнуть риску диабета или определенному риску для здоровья, мы можем сохранить пороговое значение 0,8, 0,9 или даже выше.

Но из розничного магазина и обычного бизнеса мы хотели бы максимизировать ценность и не хотим терять клиентов, для которых есть даже небольшая вероятность. Одним из способов расчета порога является расчет суммы выплаты. Например, в этом случае мы знаем, что за определение каждого правильного прогноза (Истинно Положительный) мы получим 1000 долларов, а за каждый ложный прогноз (Ложно Положительный), когда наша модель предсказывала «да», но фактическое значение было «нет», нам будет предъявлено обвинение. 250 долларов.

1000 долл. США*Истинно положительный результат — 250 долл. США*Ложно положительный результат даст нам сумму выплаты.

Как видно на рисунке 5, мы максимизируем сумму выплаты, установив пороговое значение 0,3, следовательно, мы используем это как точку отсечки. Все предсказанные значения выше 0,3 преобразуются в 1 с помощью функции ifelse().