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

Мы будем прогнозировать переменную not.full.paid, которая показывает, что кредит не был возвращен полностью.

Чтобы предсказать не.полностью.оплачено, мы будем использовать следующие независимые переменные, доступные нам в наборе данных, как показано ниже:

  • credit.policy: 1, если клиент соответствует критериям кредитного андеррайтинга LendingClub.com, и 0 в противном случае.
  • цель: цель кредита (принимает значения «кредит_карта», «консолидация долга», «образовательный», «крупная_покупка», «малый_бизнес» и «все_другие»).
  • int.rate: процентная ставка по кредиту в виде доли (ставка 11% будет сохранена как 0,11). Заемщикам, которых LendingClub.com считает более рискованными, назначаются более высокие процентные ставки.
  • Рассрочка: ежемесячные платежи (в долларах США), причитающиеся с заемщика, если кредит финансируется.
  • log.annual.inc: натуральный логарифм годового дохода заемщика, о котором сообщается самостоятельно.
  • dti: отношение долга к доходу заемщика (сумма долга, деленная на годовой доход).
  • fico: кредитный рейтинг FICO заемщика.
  • days.with.cr.line: количество дней, в течение которых у заемщика была кредитная линия.
  • revol.bal: возобновляемый баланс заемщика (сумма, не выплаченная в конце цикла выставления счетов по кредитной карте).
  • revol.util: коэффициент использования возобновляемой линии заемщика (сумма использованной кредитной линии по отношению к общей сумме доступного кредита).
  • inq.last.6mths: количество запросов заемщика от кредиторов за последние 6 месяцев.
  • delinq.2yrs: сколько раз заемщик просрочивал платеж более чем на 30 дней за последние 2 года.
  • pub.rec: количество унизительных публичных записей заемщика (заявления о банкротстве, налоговые удержания или судебные решения).

Есть 9578 строк и 14 переменных, мы также видим, что нет никаких признаков каких-либо выбросов, глядя на сводные данные. Также очевидно, что НС не так много, и мы оставим такие НС в модели, так как их гораздо меньше, а данных у нас достаточно. При таком подходе модель будет отбрасывать только 46 строк, что представляет для нас меньший риск, поскольку данные довольно велики и отсутствуют выбросы. В наших данных мы видим, что 1533 не погасили кредит, а 8045 вернули кредит.

Мы разделили данные, используя коэффициент разделения 80% обучения и 20% теста.

Мы разделяем данные на обучение, тестирование и запуск модели логистической регрессии со всеми переменными. Счетчики поезда и теста следующие: -

Теперь мы улучшим модель и удалим несущественные переменные, а затем повторно запустим модель.

Теперь мы видим, что все наши переменные имеют значимые p-значения, и все значимые, которые не являются факторными переменными и являются числовыми, большинство значений факторных переменных также значимы. AIC немного выше, но лучше, чем у предыдущей модели, а число итераций Fisher также низкое. Также в модели отсутствует мутиколинеарность, и, как мы видим, все значения vif() меньше 5. Наша окончательная модель показывает, что переменная кредит.политика имеет значение и уменьшает значения по умолчанию. Если ссуда представляет собой ссуду в рассрочку, то вероятность дефолта увеличивается на 1,238, а баллы log.annual.inc и fico уменьшают дефолты по кредитам, что имеет смысл, поскольку более высокие баллы по ним и доходам уменьшат ставки. Revol.bal на кредитной карте также увеличивает ставку по умолчанию, а также переменную inq.last.6months. Также количество pub.rec также увеличивает значения по умолчанию.

R-квадрат, рассчитанный по модели, довольно низкий, т.е. 0,06992193, и нам нужно улучшить эту модель или даже рассмотреть более сложную модель.

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

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

Использованная литература: