Studium przypadku „Kredyty - Identyfikacja docelowych odbiorców pożyczki” koncentruje się na analizie ryzyka w procesie udzielania finansowania klientom. Wykorzystując techniki eksploracyjnej analizy danych (EDA), projekt ma na celu zrozumienie, w jaki sposób cechy konsumentów oraz parametry pożyczek wpływają na prawdopodobieństwo terminowej spłaty zobowiązań.
Firmy udzielające pożyczek stoją przed podwójnym wyzwaniem: z jednej strony ryzykują utratę potencjalnych zysków, jeśli odrzucą wnioski klientów zdolnych do spłaty, z drugiej - mogą ponieść straty finansowe, jeśli zaakceptują wnioski osób, które nie wywiążą się ze zobowiązań. Dlatego kluczowe jest zidentyfikowanie zmiennych, które są silnymi wskaźnikami niewypłacalności. W związku z tym niniejsze studium przypadku stawia następujące pytania badawcze:
Czym charakteryzuje się każda grupa decyzji (zaakceptowani/odrzuceni itd.)?
Jaka rola typu klienta - Stary vs Nowy? Czy warto pozyskiwać nowych klientów czy skupić się na utrzymaniu obecnych?
Które zmienne mają większy wpływ - finansowe czy socjoekonomiczne?
Czy wysokość kwoty kredytu wpływa na prawdopodobieństwo odmowy, anulowania lub niewykorzystania oferty?
W jaki sposób status kontraktu (zatwierdzony, anulowany, odmowa, niewykorzystana oferta) odzwierciedla potencjalne trudności klienta ze spłatą rat?
Czy istnieją wzorce w danych dotyczące liczby rat lub harmonogramu spłat, które mogą sygnalizować ryzyko problemów ze spłatą?
Jakie kombinacje czynników (np. kwota kredytu + typ klienta + status kontraktu) najlepiej przewidują trudności ze spłatą?
W niniejszym projekcie wykorzystane zostaną dane z pliku „previous_application_new.csv”, zawierającego informacje o decyzjach kredytowych (zatwierdzone, anulowane, odrzucone, niewykorzystane), oraz słownik zmiennych „opis_zmiennych.xlsx”, który ułatwi interpretację atrybutów. Analiza pozwoli wskazać wzorce zachowań klientów i czynniki ryzyka, które mogą wspierać proces podejmowania decyzji kredytowych.
W dokumencie wykorzystano zestaw bibliotek służących do wczytywania,
czyszczenia, przekształcania i wizualizacji danych, takich jak
tidyverse, dplyr, ggplot2,
naniar, VIM czy corrplot.
Dodatkowo użyto pakietów wspierających modelowanie statystyczne i ocenę
jakości modeli, m.in. . leaps, pROC,
caret oraz narzędzi do tworzenia interaktywnych tabel i
wykresów, takich jak gt, kableExtra,
plotly i networkD3.
Proces analizy rozpoczęto od wczytania zbioru danych i wstępnego rozpoznania jego struktury.
Zbiór previous_application_new.csv zawiera 25 000 obserwacji oraz 37 zmiennych, które dzielą się na:
16 zmiennych tekstowych (chr) – opisujących m.in. typ umowy, status wniosku czy dzień tygodnia złożenia aplikacji,
21 zmiennych numerycznych (dbl) – zawierających identyfikatory, kwoty finansowe (wnioskowane i przyznane) oraz wskaźniki czasu.
Takie zestawienie danych pozwala na przeprowadzenie wielowymiarowej analizy – zarówno jakościowej (wzorce zachowań), jak i ilościowej (wartości kredytowe).
| SK_ID_PREV | SK_ID_CURR | NAME_CONTRACT_TYPE | AMT_ANNUITY | AMT_APPLICATION | AMT_CREDIT | AMT_DOWN_PAYMENT | AMT_GOODS_PRICE | WEEKDAY_APPR_PROCESS_START | HOUR_APPR_PROCESS_START | FLAG_LAST_APPL_PER_CONTRACT | NFLAG_LAST_APPL_IN_DAY | RATE_DOWN_PAYMENT | RATE_INTEREST_PRIMARY | RATE_INTEREST_PRIVILEGED | NAME_CASH_LOAN_PURPOSE | NAME_CONTRACT_STATUS | DAYS_DECISION | NAME_PAYMENT_TYPE | CODE_REJECT_REASON | NAME_TYPE_SUITE | NAME_CLIENT_TYPE | NAME_GOODS_CATEGORY | NAME_PORTFOLIO | NAME_PRODUCT_TYPE | CHANNEL_TYPE | SELLERPLACE_AREA | NAME_SELLER_INDUSTRY | CNT_PAYMENT | NAME_YIELD_GROUP | PRODUCT_COMBINATION | DAYS_FIRST_DRAWING | DAYS_FIRST_DUE | DAYS_LAST_DUE_1ST_VERSION | DAYS_LAST_DUE | DAYS_TERMINATION | NFLAG_INSURED_ON_APPROVAL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1044104 | 358675 | Cash loans | NA | 0 | 0 | NA | NA | FRIDAY | 16 | Y | 1 | NA | NA | NA | XNA | Canceled | -169 | XNA | XAP | NA | Repeater | XNA | XNA | XNA | Credit and cash offices | -1 | XNA | NA | XNA | Cash | NA | NA | NA | NA | NA | NA |
| 1228470 | 344960 | Cash loans | 16015.860 | 378000 | 378000 | NA | 378000 | SUNDAY | 12 | Y | 1 | NA | NA | NA | XNA | Refused | -474 | XNA | HC | NA | Repeater | XNA | Cash | x-sell | Contact center | -1 | XNA | 36 | low_normal | Cash X-Sell: low | NA | NA | NA | NA | NA | NA |
| 1212786 | 208259 | Consumer loans | 6190.965 | 30141 | 31635 | 0 | 30141 | THURSDAY | 20 | Y | 1 | 0.0000000 | NA | NA | XAP | Approved | -2226 | Cash through the bank | XAP | Unaccompanied | Repeater | Photo / Cinema Equipment | POS | XNA | Country-wide | 1500 | Consumer electronics | 6 | high | POS household with interest | 365243 | -2195 | -2045 | -2045 | -2041 | 0 |
| 2750575 | 293651 | Cash loans | 12598.200 | 67500 | 67500 | NA | 67500 | WEDNESDAY | 9 | Y | 1 | NA | NA | NA | XNA | Approved | -486 | Cash through the bank | XAP | NA | Repeater | XNA | Cash | x-sell | Country-wide | 60 | Furniture | 6 | middle | Cash X-Sell: middle | 365243 | -456 | -306 | -306 | -300 | 0 |
| 2188643 | 251267 | Cash loans | 16591.500 | 135000 | 135000 | 0 | 135000 | SATURDAY | 20 | Y | 1 | 0.0000000 | NA | NA | XNA | Approved | -2799 | XNA | XAP | NA | Refreshed | XNA | Cash | x-sell | Country-wide | -1 | Consumer electronics | 10 | middle | Cash Street: middle | 365243 | -2769 | -2499 | -2499 | -2490 | 0 |
| 2337373 | 394154 | Consumer loans | 39423.150 | 3015000 | 1035000 | 1980000 | 3015000 | SATURDAY | 9 | Y | 1 | 0.7152239 | NA | NA | XAP | Refused | -789 | Cash through the bank | VERIF | NA | New | XNA | Cars | XNA | Car dealer | 329 | Industry | 36 | low_normal | POS industry with interest | NA | NA | NA | NA | NA | NA |
| 1169959 | 365865 | Cash loans | NA | 0 | 0 | NA | NA | WEDNESDAY | 9 | Y | 1 | NA | NA | NA | XNA | Refused | -245 | XNA | HC | NA | Repeater | XNA | XNA | XNA | Credit and cash offices | -1 | XNA | NA | XNA | Cash | NA | NA | NA | NA | NA | NA |
| 2405817 | 158643 | Cash loans | NA | 0 | 0 | NA | NA | FRIDAY | 20 | Y | 1 | NA | NA | NA | XNA | Canceled | -283 | XNA | XAP | NA | Repeater | XNA | XNA | XNA | Contact center | -1 | XNA | NA | XNA | Cash | NA | NA | NA | NA | NA | NA |
| 1101830 | 447361 | Consumer loans | 6290.730 | 55386 | 55386 | 0 | 55386 | MONDAY | 18 | Y | 1 | 0.0000000 | NA | NA | XAP | Approved | -21 | Cash through the bank | XAP | NA | Repeater | Mobile | POS | XNA | Country-wide | 25 | Connectivity | 10 | low_normal | POS mobile without interest | 365243 | 365243 | 282 | 365243 | 365243 | 0 |
| 2176627 | 106729 | Cash loans | NA | 0 | 0 | NA | NA | MONDAY | 6 | Y | 1 | NA | NA | NA | XNA | Canceled | -381 | XNA | XAP | NA | Repeater | XNA | XNA | XNA | Credit and cash offices | -1 | XNA | NA | XNA | Cash | NA | NA | NA | NA | NA | NA |
Wstępny przegląd pierwszych dziesięciu wierszy ujawnia dużą złożoność zbioru oraz widoczną obecność brakujących wartości (NA). Wymusza to pogłębioną analizę braków danych, aby ocenić ich wpływ na rzetelność końcowych wyników.
Zmienne oznaczają kolejno:
SK_ID_PREV: Unikalny identyfikator poprzedniego
wnioskuSK_ID_CURR: Unikalny identyfikator bieżącego
wnioskuNAME_CONTRACT_TYPE: Typ umowy (np. gotówkowy,
ratalny)AMT_ANNUITY: Kwota raty kredytowejAMT_APPLICATION: Kwota, o którą klient wnioskowałAMT_CREDIT: Ostateczna przyznana kwota kredytuAMT_DOWN_PAYMENT: Wkład własny w poprzedniej
aplikacjiAMT_GOODS_PRICE: Cena towaru, o który wnioskowanoWEEKDAY_APPR_PROCESS_START: Dzień tygodnia złożenia
aplikacjiHOUR_APPR_PROCESS_START: Godzina złożenia
aplikacjiFLAG_LAST_APPL_PER_CONTRACT: Flaga: czy była to
ostatnia aplikacja dla danego kontraktuNFLAG_LAST_APPL_IN_DAY: Flaga: czy była to ostatnia
aplikacja klienta danego dniaRATE_DOWN_PAYMENT: Wskaźnik wkładu własnego
(znormalizowany)RATE_INTEREST_PRIMARY: Podstawowa stopa procentowa
(znormalizowana)RATE_INTEREST_PRIVILEGED: Uprzywilejowana stopa
procentowa (znormalizowana)NAME_CASH_LOAN_PURPOSE: Cel pożyczki gotówkowejNAME_CONTRACT_STATUS: Status kontraktu (np.
zatwierdzony, odrzucony)DAYS_DECISION: Dni do decyzji względem bieżącej
aplikacjiNAME_PAYMENT_TYPE: Wybrany sposób płatnościCODE_REJECT_REASON: Powód odrzucenia aplikacjiNAME_TYPE_SUITE: Kto towarzyszył klientowi przy
aplikacjiNAME_CLIENT_TYPE: Typ klienta (nowy, stały)NAME_GOODS_CATEGORY: Kategoria towaruNAME_PORTFOLIO: Portfel produktu (np. CASH, POS,
CAR)NAME_PRODUCT_TYPE: Typ produktu (np. cross-sell,
walk-in)CHANNEL_TYPE: Kanał pozyskania klientaSELLERPLACE_AREA: Obszar sprzedaży poprzedniej
aplikacji (miejsce)NAME_SELLER_INDUSTRY: Branża sprzedawcyCNT_PAYMENT: Liczba rat kredytu w aplikacjiNAME_YIELD_GROUP: Grupa oprocentowania (niska, średnia,
wysoka)DAYS_FIRST_DRAWING: Dni do pierwszej wypłaty względem
bieżącej aplikacjiDAYS_FIRST_DUE: Dni do pierwszej raty względem bieżącej
aplikacjiDAYS_LAST_DUE_1ST_VERSION: Dni do pierwszej wersji
ostatniej ratyDAYS_LAST_DUE: Dni do ostatniej raty względem bieżącej
aplikacjiDAYS_TERMINATION: Dni do zakończenia kontraktu względem
bieżącej aplikacjiNFLAG_INSURED_ON_APPROVAL: Flaga: czy klient wybrał
ubezpieczenie przy aplikacjiKluczowym etapem przygotowania danych było zidentyfikowanie kolumn najbardziej obciążonych brakami danych.
| Nazwa zmiennej | Liczba braków | Procent braków |
|---|---|---|
| PRODUCT_COMBINATION | 4 | 0.02% |
| AMT_ANNUITY | 5589 | 22.36% |
| CNT_PAYMENT | 5589 | 22.36% |
| AMT_GOODS_PRICE | 5754 | 23.02% |
| DAYS_FIRST_DRAWING | 9940 | 39.76% |
| DAYS_FIRST_DUE | 9940 | 39.76% |
| DAYS_LAST_DUE_1ST_VERSION | 9940 | 39.76% |
| DAYS_LAST_DUE | 9940 | 39.76% |
| DAYS_TERMINATION | 9940 | 39.76% |
| NFLAG_INSURED_ON_APPROVAL | 9940 | 39.76% |
| NAME_TYPE_SUITE | 12246 | 48.98% |
| AMT_DOWN_PAYMENT | 13261 | 53.04% |
| RATE_DOWN_PAYMENT | 13261 | 53.04% |
| RATE_INTEREST_PRIMARY | 24922 | 99.69% |
| RATE_INTEREST_PRIVILEGED | 24922 | 99.69% |
Analiza wykazała, że 15 z 37 zmiennych posiada braki o różnym natężeniu:
Braki marginalne: PRODUCT_COMBINATION
(0.02%).
Średni poziom: Zmienne finansowe (AMT_ANNUITY,
CNT_PAYMENT, AMT_GOODS_PRICE) oscylują wokół
22-23% braków.
Wysoki poziom: Zmienne związane z harmonogramem spłat i ubezpieczeniem wykazują blisko 40% braków.
Krytyczny poziom: Wkład własny przekracza 53%, a stopy procentowe są niemal całkowicie puste (99.69% braków).
Aby zrozumieć naturę braków, wykorzystano funkcje z pakietów
naniar oraz VIM. Ze względu na dużą ilość
zmiennych zdecydowano się ograniczyć dane do wykresu jedynie do kolumn
zawierających minimum jedną wartość NA.
Wykresy ujawniły istnienie silnych powiązań między zmiennymi (tzw. bloki braków):
Blok raty: AMT_ANNUITY i CNT_PAYMENT -
brak raty (AMT_ANNUITY) idzie w parze z brakiem liczby
płatności (CNT_PAYMENT).
Blok harmonogramu: DAYS_FIRST_DRAWING,
DAYS_FIRST_DUE, DAYS_LAST_DUE_1ST_VERSION,
DAYS_LAST_DUE, DAYS_TERMINATION,
NFLAG_INSURED_ON_APPROVAL - wszystkie mają 9940 braków. To
wygląda jak wspólny blok zmiennych związanych z harmonogramem kredytu i
ubezpieczeniem — jeśli brakuje jednej, brakuje wszystkich.
Blok wkładu własnego: AMT_DOWN_PAYMENT i
RATE_DOWN_PAYMENT - 13261 braków. Naturalne, bo wskaźnik
wkładu własnego nie istnieje, jeśli brak samej kwoty wkładu.
Blok stóp procentowych: RATE_INTEREST_PRIMARY i
RATE_INTEREST_PRIVILEGED - 24922 braków. Obie zmienne
dotyczą stóp procentowych, więc brak jednej oznacza brak
drugiej.
Pojedyncze, unikalne wartości braków:
PRODUCT_COMBINATION - tylko 4 braki, marginalny
problem.
AMT_GOODS_PRICE - 5754 braków, niezależny od innych
zmiennych.
NAME_TYPE_SUITE - 12246 braków, czyli brak
informacji o osobie towarzyszącej klientowi.
| Status kontraktu | Liczba obserwacji |
|---|---|
| Anulowany | 4599 |
| Niewykorzystana oferta | 394 |
| Odmowa | 596 |
Zmienna AMT_ANNUITY reprezentuje kwotę miesięcznej raty
kredytowej, natomiast CNT_PAYMENT określa liczbę rat
przewidzianych w harmonogramie spłat dla danego wniosku. Analiza
wykazała, że braki występują wyłącznie w kontraktach o statusie
anulowanym, niewykorzystanym lub po odmowie. Wynika to z logiki
biznesowej: dla wniosku, który nie został uruchomiony, nie wylicza się
harmonogramu spłat. Brak danych jest więc informacją samą w sobie –
“kontrakt nie powstał”.
| Status kontraktu | Liczba obserwacji |
|---|---|
| Anulowany | 4741 |
| Niewykorzystana oferta | 402 |
| Odmowa | 4194 |
| Zatwierdzony | 603 |
Zmienne z tej grupy opisują kluczowe momenty w harmonogramie kredytu oraz jedną cechę dotyczącą decyzji klienta przy składaniu wniosku. Określają one, ile dni upływa od daty aplikacji do poszczególnych etapów cyklu życia kontraktu.
DAYS_FIRST_DRAWING – liczba dni do pierwszej wypłaty
środków.
DAYS_FIRST_DUE – liczba dni do pierwszej raty
kredytu.
DAYS_LAST_DUE_1ST_VERSION – liczba dni do pierwotnie
planowanej daty ostatniej raty.
DAYS_LAST_DUE – liczba dni do ostatecznej daty
ostatniej raty.
DAYS_TERMINATION – liczba dni do zakończenia
kontraktu.
NFLAG_INSURED_ON_APPROVAL – informacja, czy klient
wybrał ubezpieczenie podczas składania wniosku.
Podobnie jak w przypadku rat, braki w datach dotyczą głównie wniosków
odrzuconych lub anulowanych. Zidentyfikowano jednak 603 rekordy o
statusie zatwierdzonym, które mimo tego nie posiadają dat. Zdecydowano
się sprawdzić inne pola (AMT_CREDIT - przyznana kwota
kredytu i CNT_PAYMENT - liczba rat) dla tych 603 rekordów.
Jeśli mają pełne dane finansowe, ale brakuje tylko terminów - to raczej
jest to błąd. Jeśli brakuje też innych pól, to najpewniej kontrakt nigdy
nie został uruchomiony mimo zaakceptowanego statusu.
| Zmienna | Min | Q1 | Mediana | Średnia | Q3 | Max |
|---|---|---|---|---|---|---|
| AMT_CREDIT | 0 | 89100 | 225000 | 402941.54 | 545040 | 2517300 |
| CNT_PAYMENT | 0 | 10 | 12 | 21.89 | 36 | 72 |
Analiza zaakceptowanych wniosków, w których brakuje dat harmonogramu,
wykazała dwa różne podłoża problemu. Część rekordów posiada
CNT_PAYMENT = 0, co potwierdza rezygnację z kontraktu na
etapie decyzji. Jednak część posiada przypisaną liczbę rat (mediana 12,
max 72), co świadczy o tym, że warunki finansowe zostały ustalone, lecz
proces technicznego uruchomienia wypłaty nie został sfinalizowany w
bazie danych. W związku z tym, dla rekordów z przypisaną liczbą rat
zdecydowano się na imputację brakujących dat wartościami medianowymi dla
podobnych produktów, natomiast pozostałe potraktowano jako kontrakty
nieaktywne.
W zmiennych typu DAYS zidentyfikowano również wartości
skrajnie duże, sięgające 365243 dni (ponad 1000 lat). Tak duże liczby
nie mogą reprezentować rzeczywistych dat i są typowym placeholderem
technicznym stosowanym w systemach źródłowych.
Aby wykryć takie przypadki, przyjęto próg 50 lat (18250 dni). Jest to granica, która z jednej strony eliminuje wartości nierealistyczne, a z drugiej nie usuwa żadnych potencjalnie poprawnych obserwacji. Podsumowanie ilości rekordów z wartościami odstającymi przedtsawiono w tabeli.
| Zmienna | Liczba wartości > 50 lat |
|---|---|
| DAYS_DECISION | 0 |
| DAYS_FIRST_DRAWING | 14115 |
| DAYS_FIRST_DUE | 610 |
| DAYS_LAST_DUE_1ST_VERSION | 1410 |
| DAYS_LAST_DUE | 3207 |
| DAYS_TERMINATION | 3432 |
Największa skala problemu dotyczy DAYS_FIRST_DRAWING, a
pozostałe pola również zawierają od kilkuset do kilku tysięcy
nienaturalnie dużych wartości. W kolejnym kroku zweryfikowano statusy
kontraktów zawierających te wartości, aby określić, czy są one logicznym
skutkiem przebiegu procesu kredytowego, czy też stanowią błąd
systemowy.
| Status kontraktu | Liczba obserwacji | Zmienna |
|---|---|---|
| Zatwierdzony | 14115 | DAYS_FIRST_DRAWING |
| Zatwierdzony | 610 | DAYS_FIRST_DUE |
| Zatwierdzony | 1410 | DAYS_LAST_DUE_1ST_VERSION |
| Zatwierdzony | 3207 | DAYS_LAST_DUE |
| Zatwierdzony | 3432 | DAYS_TERMINATION |
Wszystkie rekordy dotyczą kontraktów o statusie zatwierdzonym,
niezależnie od tego, której zmiennej DAYS dotyczą. Oznacza
to, że nie są to braki wynikające z odmowy, anulowania czy
niewygenerowania oferty, lecz systemowy placeholder stosowany w miejsce
rzeczywistych dat harmonogramu.
Aby ustalić, czy te kontrakty były faktycznie przygotowane do uruchomienia, konieczne jest sprawdzenie ich parametrów finansowych.
| Zmienna | Min | Q1 | Mediana | Średnia | Q3 | Max |
|---|---|---|---|---|---|---|
| CNT_PAYMENT | 0 | 6 | 12.0 | 13.77 | 18 | 60 |
| AMT_CREDIT | 0 | 47970 | 101999.2 | 194856.19 | 219042 | 3150000 |
Podobnie jak w przypadku rzeczywistych braków, również tutaj
obserwujemy dwa odmienne scenariusze. Część rekordów posiada
CNT_PAYMENT = 0 oraz oraz AMT_CREDIT = 0, co
wskazuje, że mimo formalnego statusu „Zatwierdzony”, kontrakt nie został
faktycznie uruchomiony i nie nadano mu parametrów spłaty. W takich
przypadkach odstające wartości DAYS potraktowano jako braki
danych, a same kontrakty jako nieaktywne.
Jednak część obserwacji posiada zarówno dodatnią liczbę rat (mediana 12, maksimum 60) jak i realne kwoty kredytu (mediana ok. 102 tys., maksimum 3,15 mln), co świadczy o tym, że warunki finansowe zostały ustalone, a produkt był przygotowany do uruchomienia. Brak dat harmonogramu wynika więc z błędu systemowego, a nie z decyzji klienta. Dla tej grupy zdecydowano się na imputację brakujących dat wartościami medianowymi wyznaczonymi dla porównywalnych produktów, aby odtworzyć realistyczny przebieg harmonogramu.
AMT_DOWN_PAYMENT (kwota wkładu własnego) i
RATE_DOWN_PAYMENT (procent wkładu własnego) mają identyczny
poziom braków – 13 261 rekordów, czyli ok. 53,04% całego zbioru. Braki
wynikają z faktu, że wkład własny nie jest obowiązkowy. Zostanie on
uzupełniony wartością 0.
RATE_INTEREST_PRIMARY to oprocentowanie podstawowe,
czyli standardowa stopa procentowa przypisana do kredytu.
RATE_INTEREST_PRIVILEGED to oprocentowanie uprzywilejowane,
czyli specjalna, obniżona stopa dla wybranych klientów lub
produktów.
Ponad 99% braków oznacza, że w praktyce te pola nie są wypełniane w bazie. Możliwe, że system nie rejestrował oprocentowania w tych zmiennych, albo były one używane tylko w wyjątkowych przypadkach. To zmienne praktycznie bezużyteczne – nie ma danych, najlepiej je usunąć ze zbioru, bo nie wniosą informacji.
Zmienne PRODUCT_COMBINATION mają tylko 4 braki (0,02%),
czyli praktycznie nie występują w zbiorze. Zmienna ta opisuje kombinację
produktów kredytowych (np. kredyt gotówkowy + karta kredytowa, kredyt
ratalny + ubezpieczenie). NA stanowią śladową liczbę obserwacji – można
je traktować jako incydentalne braki, nie wpływają one na całość
danych.
AMT_GOODS_PRICE to zmienna, która oznacza wartość towaru
lub usługi, na którą klient zaciąga kredyt.Sprawdzamy, jakie statusy
kontraktu występują w rekordach z brakami ceny towaru.
| Status kontraktu | Liczba obserwacji |
|---|---|
| Anulowany | 4596 |
| Odmowa | 526 |
| Zatwierdzony | 632 |
Zdecydowana większość NA występuje w kontraktach anulowanych lub odrzuconych.To jest logiczne: skoro wniosek nie został zrealizowany, cena towaru nie musiała być rejestrowana.
Jednak mniej typowa sytuacja dotyczy 632 zatwierdzonych kontraktów.
One powininny mieć określoną cenę towaru. Sprawdzamy, czy mają inne
kluczowe informacje (jak poprzednio: AMT_CREDIT i
CNT_PAYMENT).
| Zmienna | Min | Q1 | Mediana | Średnia | Q3 | Max |
|---|---|---|---|---|---|---|
| CNT_PAYMENT | 0 | 0 | 0 | 0.0 | 0 | 0e+00 |
| AMT_CREDIT | 0 | 135000 | 180000 | 276764.2 | 450000 | 9e+05 |
Dane dla AMT_CREDIT są zróżnicowane (od 0 do 900 000,
mediana ok. 180 000), jednak dla CNT_PAYMENT wszystkie
wartości są równe 0. To oznacza, że mimo zatwierdzenia kontraktu, nie
zapisano liczby rat.To sugeruje, że kredyt został zatwierdzony, ale nie
uruchomiony (brak harmonogramu i brak powiązania z towarem). Warto
traktować je jako osobną kategorię, bo nie są to typowe zatwierdzone
kredyty.
W zmiennej NAME_TYPE_SUITE występuje 12 246 braków, co
stanowi prawie połowę wszystkich obserwacji (48,98%).
Zmienna ta opisuje, kto towarzyszył klientowi podczas składania wniosku (np. członek rodziny, znajomy, partner). Braki mogą być naturalne:
klient mógł przyjść samodzielnie, więc informacja o osobie towarzyszącej nie istnieje,
bank mógł nie zbierać tej informacji w każdym przypadku, traktując ją jako dodatkową, nieobowiązkową.
Braki zostaną zaklasyfikowane jako nowa kategoria “Unknown”, gdyż mogą nieść informację o samodzielnym składaniu wniosku przez klienta.
Podczas eksploracji danych zauważono, że w zmiennej
AMT_APPLICATION (kwota wniosku) występują wartości równe 0.
Wartość ta nie jest oznaczona jako NA, ale logicznie wskazuje na brak
faktycznej kwoty wniosku. Sprawdzamy, ile takich rekordów istnieje i
jaki mają status kontraktu.
| Status kontraktu | Liczba obserwacji |
|---|---|
| Anulowany | 4596 |
| Niewykorzystana oferta | 6 |
| Odmowa | 578 |
| Zatwierdzony | 665 |
Wartości AMT_APPLICATION = 0 występują przede wszystkim
w kontraktach Anulowanych (4596) oraz Odmówionych (578), co jest zgodne
z logiką procesu — brak kwoty aplikowanej oznacza, że wniosek nie
przeszedł do etapu pełnej parametryzacji. Niewielka liczba przypadków
dotyczy statusu Niewykorzystana oferta (6), co również jest spójne z
sytuacją, w której klient nie finalizuje procesu.
Jednak szczególnej uwagi wymagaja 665 kontraktów o statusie zatwierdzonym.W tej grupie brak kwoty aplikowanej nie jest logicznym elementem procesu i może wskazywać na błąd systemowy lub niekompletne zapisanie danych w momencie decyzji kredytowej. Aby ustalić, czy zatwierdzone kontrakty były faktycznie przygotowane do uruchomienia, konieczne jest sprawdzenie ich parametrów finansowych
| Zmienna | Min | Q1 | Mediana | Średnia | Q3 | Max |
|---|---|---|---|---|---|---|
| CNT_PAYMENT | 0 | 0 | 0 | 0.0 | 0 | 0e+00 |
| AMT_CREDIT | 0 | 112500 | 180000 | 265939.8 | 450000 | 9e+05 |
W danych dostrzegamy anomalię: zatwierdzone kontrakty z
AMT_APPLICATION = 0, ale z dodatnią kwotą kredytu
(AMT_CREDIT > 0). Takie rekordy są niespójne – klient
nie wnioskował o żadną kwotę, a mimo to kredyt został przyznany.
Jeśli AMT_APPLICATION = 0 i AMT_CREDIT = 0,
traktujemy to jako brak danych, zamieniamy na NA. To są martwe wnioski,
nie ma sensu trzymać zera jako „wnioskowanej kwoty”.
Jeśli AMT_APPLICATION = 0 i AMT_CREDIT >
0, to imputujemy AMT_APPLICATION wartością z
AMT_CREDIT. W praktyce oznacza to, że skoro kredyt został
przyznany, to kwota wnioskowana musiała być zbliżona do przyznanej.
W pozostałych przypadkach zostawiamy wartość bez zmian.
Na podstawie przeprowadzonej analizy brakujących wartości (EDA), stwierdzono, że występowanie NA w zbiorze nie jest przypadkowe, lecz ściśle powiązane z logiką procesów kredytowych. Większość braków w kluczowych zmiennych finansowych i harmonogramowych występuje przy wnioskach o statusie anulowanym, odmówionym oraz przy niewykorzystanych ofertach. Oznacza to, że parametry takie jak rata kredytu, liczba płatności czy dokładne daty spłat fizycznie nie istnieją dla kontraktów, które nigdy nie weszły w fazę realizacji.
Zastosowana strategia czyszczenia danych opiera się na imputacji biznesowej, a nie statystycznej. Zamiast usuwać rekordy lub stosować średnie, nadajemy brakom znaczenie analityczne:
W polach kwotowych i liczbowych (np. wkład własny, rata) wartości NA zastępujemy zerami, co pozwala zachować pełną bazę do analizy ryzyka.
W zmiennych kategorycznych tworzymy nową klasę „Unknown”, traktując brak informacji jako istotną cechę klienta.
Usuwamy zmienne dotyczące stóp procentowych ze względu na niemal całkowity brak danych (99%), co uniemożliwia ich rzetelne wykorzystanie.
library(dplyr)
library(tidyr)
dane_clean <- dane %>%
# 1. Usuwamy puste kolumny
select(-RATE_INTEREST_PRIMARY, -RATE_INTEREST_PRIVILEGED) %>%
# 2. Zamieniamy fałszywe wartości DAYS* (>50 lat) na NA
mutate(across(all_of(days_vars),
~if_else(. > fake_threshold, NA_real_, .))) %>%
# 3. Imputacja dat tylko dla Approved z pełnymi danymi finansowymi
group_by(NAME_CONTRACT_STATUS) %>%
mutate(across(all_of(days_vars),
~if_else( NAME_CONTRACT_STATUS == "Approved" &
is.na(.) &
CNT_PAYMENT > 0 &
AMT_CREDIT > 0,
median(., na.rm = TRUE),
.
))) %>%
ungroup() %>%
# 4. Tworzymy flagę martwych kontraktów (Approved bez parametrów finansowych)
mutate(
FLAG_DEAD_CONTRACT = if_else(
NAME_CONTRACT_STATUS == "Approved" &
CNT_PAYMENT == 0 &
AMT_CREDIT == 0,
1, 0
)
) %>%
# 5. Pozostałe NA w DAYS* (martwe kontrakty) → NA
mutate(across(all_of(days_vars),
~if_else(FLAG_DEAD_CONTRACT == 1, NA_real_, .))) %>%
# 6. Imputacja AMT_GOODS_PRICE zgodnie z logiką
mutate( AMT_GOODS_PRICE = case_when(
NAME_CONTRACT_STATUS == "Approved" & is.na(AMT_GOODS_PRICE) & CNT_PAYMENT == 0 ~ 0,
NAME_CONTRACT_STATUS == "Approved" & is.na(AMT_GOODS_PRICE) & CNT_PAYMENT > 0 ~ median(AMT_GOODS_PRICE, na.rm = TRUE), TRUE ~ AMT_GOODS_PRICE
)
) %>%
# 7. Standardowa imputacja pozostałych pól
mutate(
AMT_ANNUITY = replace_na(AMT_ANNUITY, 0),
CNT_PAYMENT = replace_na(CNT_PAYMENT, 0),
AMT_DOWN_PAYMENT = replace_na(AMT_DOWN_PAYMENT, 0),
RATE_DOWN_PAYMENT = replace_na(RATE_DOWN_PAYMENT, 0),
AMT_GOODS_PRICE = replace_na(AMT_GOODS_PRICE, 0),
NFLAG_INSURED_ON_APPROVAL = replace_na(NFLAG_INSURED_ON_APPROVAL, 0),
NAME_TYPE_SUITE = replace_na(NAME_TYPE_SUITE, "Unknown"),
PRODUCT_COMBINATION = replace_na(PRODUCT_COMBINATION, "Unknown")
) %>%
# 8. Czyszczenie AMT_APPLICATION - imputacja z AMT_CREDIT jeśli dostępne
mutate(
AMT_APPLICATION = case_when(
AMT_APPLICATION == 0 & AMT_CREDIT == 0 ~ NA_real_, # martwy wniosek → brak danych
AMT_APPLICATION == 0 & AMT_CREDIT > 0 ~ AMT_CREDIT, # imputacja z przyznanej kwoty
TRUE ~ AMT_APPLICATION # pozostaw bez zmian
)
)Po przeprowadzeniu procesu czyszczenia danych kolejnym krokiem jest ich wizualna eksploracja. Wykresy umożliwiają szybkie uchwycenie zależności pomiędzy zmiennymi, identyfikację nietypowych obserwacji oraz porównanie rozkładów w różnych grupach klientów. Graficzne przedstawienie danych pozwala nie tylko na lepsze zrozumienie struktury zbioru, ale także na wskazanie czynników ryzyka, które mogą wpływać na decyzje kredytowe.
Wykres rozkładu statusów kontraktu pokazuje, że zdecydowana większość wniosków kończy się zatwierdzeniem, co sugeruje, że proces oceny zdolności kredytowej działa skutecznie i większość klientów spełnia wymagania instytucji finansowej. Jednocześnie widoczna jest znaczna liczba aplikacji anulowanych oraz odrzuconych, co wskazuje na obecność ryzyka w procesie decyzyjnym i sygnalizuje konieczność dalszej analizy czynników, które odróżniają te grupy od zatwierdzonych kontraktów. Niewielki udział niewykorzystanych ofert świadczy o tym, że sytuacje, w których klient nie skorzystał z przyznanego kredytu, są raczej incydentalne i nie mają dużego wpływu na ogólny obraz. Warto jednak pamiętać, że status „zatwierdzony” nie zawsze oznacza uruchomienie kredytu, ponieważ część takich wniosków nie posiada harmonogramu ani rat, co może wymagać dodatkowej segmentacji i odrębnego traktowania w dalszej analizie.
Odpowiada na pytanie - czy większe kwoty częściej kończą się odmową?
Wykres pokazujący zależność między kwotą kredytu a statusem kontraktu ujawnia, że najwyższe kwoty pojawiają się wśród wniosków anulowanych. Oznacza to, że klienci często rezygnują z dużych zobowiązań jeszcze w trakcie procesu zatwierdzania – albo zmieniają zdanie co do pożyczki, albo nie akceptują gorszych warunków cenowych wynikających z wyższego ryzyka. Wnioski zatwierdzone obejmują szeroki zakres kwot, ale ich mediana jest niższa niż w anulowanych, co wskazuje, że w praktyce zatwierdzane są raczej kredyty średniej wielkości, a bardzo wysokie kwoty częściej kończą się rezygnacją. Odmowy dotyczą wniosków o kwoty wyższe niż przeciętne zatwierdzone, co sugeruje, że firma jest bardziej restrykcyjna wobec klientów starających się o większe kredyty i częściej odrzuca takie aplikacje, gdy nie spełniają wymagań instytucji. Niewykorzystana oferta to kategoria marginalna, ale jej rozkład kwot jest zbliżony do zatwierdzonych, co potwierdza, że klient miał zdolność kredytową, lecz zrezygnował z uruchomienia pożyczki na późniejszym etapie procesu. Całość wskazuje, że im wyższa kwota kredytu, tym większe prawdopodobieństwo, że wniosek zakończy się anulowaniem lub odmową, natomiast zatwierdzane są głównie kredyty o umiarkowanej wartości.
Odpowiada na pytanie - czy nowi klienci częściej mają problemy ze spłatą?
Wykres przedstawia proporcje statusów kontraktu w zależności od typu klienta i ujawnia, że największy udział zatwierdzonych wniosków występuje wśród nowych klientów. Może to świadczyć o tym, że instytucja finansowa jest otwarta na pozyskiwanie nowych odbiorców i chętnie udziela im kredytów, być może w ramach strategii rozwoju portfela lub przy stosunkowo niskich kwotach i uproszczonych produktach.
Stały klient, mimo że posiada historię kredytową, ma niższy udział zatwierdzeń niż nowy, a jednocześnie wyraźnie wyższy udział anulowań. To może sugerować, że osoby z dłuższą relacją częściej rezygnują z pożyczki na etapie zatwierdzania — być może ze względu na nieakceptowalne warunki cenowe lub zmianę decyzji.
Reaktywowany klient, czyli osoba powracająca po przerwie, ma rozkład statusów zbliżony do nowego klienta, ale z nieco większym udziałem odmów, co może wskazywać na ostrożność instytucji wobec klientów z przerwami w historii kredytowej.
Klienci oznaczeni jako „Nieznany” mają najwyższy udział odmów i najniższy zatwierdzeń, co może wynikać z braku danych lub niekompletnego profilu, który utrudnia ocenę ryzyka.
Całość wskazuje, że typ klienta istotnie wpływa na decyzję kredytową: nowi klienci są najczęściej zatwierdzani, ale niekoniecznie oznacza to niższe ryzyko — może to być efekt strategii produktowej lub ograniczonej kwoty kredytu. Stały klient częściej rezygnuje, a nieznany jest najczęściej odrzucany.
Odpowiada na pytanie - Czy dzień złożenia wniosku ma wpływ na zatwierdzenie?
Rozkład kwot wnioskowanych w ciągu tygodnia jest zasadniczo podobny – dominują niższe wartości, a wyższe kwoty pojawiają się rzadziej i nie zmieniają kształtu gęstości. Różnice dotyczą głównie statusów kontraktu: w weekendy oraz w czwartek częściej pojawiają się anulowane wnioski, co może wynikać z większej liczby prób składanych online, które nie są finalizowane. W pozostałe dni, zwłaszcza w poniedziałek i piątek, widoczny jest szerszy zakres kwot i większy udział zatwierdzonych kontraktów. Czwartek wyróżnia się tym, że jego profil przypomina weekend – mniej wysokich kwot i relatywnie więcej anulowanych wniosków.
Odpowiada na pytanie - czy długość spłaty wpływa na ryzyko?
Większość wniosków dotyczy krótkich okresów spłaty — szczególnie w przedziale 6–24 rat. W tym zakresie dominują zatwierdzone kontrakty (zielony), co może świadczyć o większej akceptowalności krótszych zobowiązań przez instytucję finansową. W miarę wzrostu liczby rat udział zatwierdzeń maleje, a rośnie liczba odmów (czerwony) oraz anulowań (szary), co może wskazywać na wyższe ryzyko kredytowe lub większą skłonność klientów do rezygnacji przy dłuższych zobowiązaniach.
Niewykorzystane oferty (żółty) pojawiają się w różnych przedziałach liczby rat, ale nie dominują w żadnym z nich — mogą być efektem niezdecydowania klientów lub zmiany warunków po złożeniu wniosku.
Ogólnie rzecz biorąc, krótsze okresy spłaty są częściej zatwierdzane, a dłuższe wiążą się z większym udziałem odmów i anulowań, co warto uwzględnić w analizie ryzyka oraz w projektowaniu oferty kredytowej.
Z wykresu wynika, że zatwierdzone kontrakty (zielony) najczęściej dotyczą umiarkowanych kwot i liczby rat — szczególnie od 10 do 40. Odmowy (czerwony) częściej pojawiają się przy wyższych kwotach i dłuższych okresach spłaty, co może wskazywać na większe ryzyko. Anulowane (szary) i niewykorzystane oferty (żółty) występują w różnych przedziałach, ale częściej przy niższych kwotach. Widoczne skupienie wokół typowych planów spłaty (12, 24, 36, 48, 60) sugeruje preferencje klientów i standardy ofertowe.
Pokazuje, które zmienne są silnie powiązane z innymi (np. kwoty, liczba rat, dni decyzji).
Macierz korelacji pokazuje silne związki między kwotą kredytu
(AMT_CREDIT), wnioskowaną kwotą
(AMT_APPLICATION) i ceną towaru
(AMT_GOODS_PRICE), co potwierdza spójność danych. Rata
(AMT_ANNUITY) silnie koreluje z liczbą rat
(CNT_PAYMENT) i kwotą kredytu (AMT_CREDIT).
Zmienne harmonogramowe (DAYS_FIRST_DRAWING,
DAYS_FIRST_DUE, DAYS_LAST_DUE,
DAYS_TERMINATION) tworzą spójny blok czasowy. Wskaźniki
procentowe (RATE_DOWN_PAYMENT,
RATE_INTEREST_PRIMARY,
RATE_INTEREST_PRIVILEGED) oraz flagi
(NFLAG_LAST_APPL_IN_DAY,
NFLAG_INSURED_ON_APPROVAL) mają słabe korelacje, co
sugeruje ich niezależność i dodatkową wartość w modelach.
Pokazuje przepływ między typem produktu a statusem kontraktu.
Największa liczba kontraktów pochodzi z kategorii „Nieznany typ produktu”, a tylko w tej grupie występują niewykorzystane oferty (żółty), co może wskazywać na problem z klasyfikacją lub mniejszą atrakcyjność oferty. Odmowy (czerwony) i anulowania (szary) pojawiają się we wszystkich typach produktów, ale ich udział jest szczególnie widoczny w grupie nieznanej. W pozostałych kategoriach („sprzedaż krzyżowa”, „klient z ulicy / zakup bezpośredni”) dominują zatwierdzone kontrakty, co sugeruje, że bardziej jednoznacznie zdefiniowane produkty częściej kończą się pozytywną decyzją.
Czy branża wpływa na decyzję kredytową?
Branża turystyki wyróżnia się tym, że wszystkie kontrakty zostały w niej zatwierdzone — nie odnotowano żadnych odmów, anulowań ani niewykorzystanych ofert. W pozostałych branżach struktura odmów jest stosunkowo podobna, co sugeruje, że decyzje negatywne nie są silnie zależne od sektora sprzedawcy. Najwięcej anulowań występuje wśród partnerów MLM oraz w kategorii „Pozostałe”, co może wskazywać na większą niestabilność lub niejednoznaczność ofert w tych grupach.
Czy kanał sprzedaży wpływa na decyzję kredytową?
Najlepsze wyniki osiągają kanały Sklep oraz
Regionalny/Lokalny, gdzie dominują zatwierdzone kontrakty,
a udział odmów jest niewielki. Z kolei
Kanał sprzedaży korporacyjnej oraz
Dealer samochodowy charakteryzują się wyraźnie wyższym
udziałem odmów, co może wskazywać na większe ryzyko lub bardziej
wymagające profile klientów. Najwięcej anulowań występuje w kanałach
Biura kredytowe i gotówkowe oraz
Centrum kontaktu, co może świadczyć o niestabilności
procesu lub częstszej rezygnacji klientów na późniejszym etapie.
Najczęstszym powodem odrzucenia jest historia kredytowa, co może wskazywać na dużą liczbę klientów z negatywną historią lub brak zdolności kredytowej. Kolejne dominujące przyczyny to przekroczony limit oraz ocena punktowa, co sugeruje, że wiele aplikacji odpada na etapie scoringu lub limitów wewnętrznych. Powody takie jak brama punktowa, brak weryfikacji czy błąd systemowy występują znacznie rzadziej, ale mogą wskazywać na problemy techniczne lub niedopełnienie formalności
Czy rodzaj umowy wpływa na decyzję kredytową?
Umowy konsumenckie mają najwyższy udział zatwierdzonych kontraktów, co wskazuje na ich dużą skuteczność i akceptowalność w procesie kredytowym. Umowy gotówkowe i ratalne charakteryzują się większym udziałem anulowań i odmów, co może wskazywać na wyższe ryzyko lub mniej stabilny profil klienta.
Czy godzina złożenia wniosku ma wpływ na decyzję kredytową?
Zatwierdzone wnioski najczęściej pojawiają się między godziną 11 a 19, z wyraźnym szczytem około 12:00–13:00. To może wskazywać na optymalny czas składania aplikacji. Odmowy również koncentrują się wokół godziny 13:00, co może sugerować, że system scoringowy działa intensywnie w tym przedziale. Anulowania są bardziej rozproszone, ale również mają lokalny szczyt około 13:00, co może wskazywać na decyzje systemowe lub rezygnacje klientów. Niewykorzystane oferty są najrzadsze, ale też pojawiają się głównie w godzinach 11–14, co może oznaczać, że klienci rezygnują tuż po otrzymaniu decyzji.
Czy ubezpieczenie wpływa na cenę towaru?
Wśród zatwierdzonych wniosków, aplikacje z ubezpieczeniem mają wyższą medianę ceny towaru niż te bez. Zatwierdzone bez ubezpieczenia wykazują dużo skrajnych, bardzo wysokich wartości — większy rozrzut, mniej stabilny profil.
Czy typ klienta i kanał wpływają na kwotę wnioskowaną?
Stały klient wnioskuje o najwyższe kwoty u dealerów objazdowych i w kanałach sprzedaży korporacyjnej. W tych kanałach mediany są wyraźnie wyższe niż w pozostałych, choć rozrzut wartości jest również większy, co wskazuje na zróżnicowany profil klientów. Nowi klienci utrzymują niższe mediany, ale w kanałach typu „Dealer objazdowy” pojawiają się skrajnie wysokie wartości. Reaktywowany klient ma rozkład zbliżony do nowego, lecz bardziej przewidywalny. Nieznany typ klienta nie wykazuje ani wysokich median, ani skrajnych wartości — jego profil jest raczej neutralny.
W tej sekcji przeprowadzamy ilościową analizę kluczowych zmiennych w zbiorze danych, aby lepiej zrozumieć rozkłady i powiązania między zmiennymi a statusem kontraktu.
Poniższa tabela przedstawia podstawowe statystyki opisowe dla kluczowych zmiennych numerycznych wykorzystanych w analizie. Obejmują one zarówno zmienne finansowe i czasowe opisujące przebieg procesu kredytowego.
W zmiennych, w których wartość 0 oznaczała brak danych wynikający z
imputacji (m.in. AMT_ANNUITY, CNT_PAYMENT,
AMT_DOWN_PAYMENT, RATE_DOWN_PAYMENT,
AMT_GOODS_PRICE), zera zostały wyłączone z obliczeń, aby
nie zaniżały średnich i kwartylów. W pozostałych przypadkach zera
zostały zachowane jako wartości rzeczywiste.
Zmienne czasowe (DAYS*) przyjmują wartości ujemne,
ponieważ w oryginalnym zbiorze liczono je jako liczbę dni przed decyzją
kredytową — im bardziej ujemna wartość, tym dalej wstecz w czasie miało
miejsce dane zdarzenie.
| Podstawowe statystyki opisowe zmiennych numerycznych | |||||||||
| Zmienna | Średnia | Mediana | Błąd_standardowy | Min | Max | Skośność | Kurtoza | Q1 | Q3 |
|---|---|---|---|---|---|---|---|---|---|
| AMT_ANNUITY | 15,985.44 | 11,250.00 | 14,764.12 | 877.95 | 183,216.15 | 2.57 | 14.12 | 6,350.41 | 20,541.18 |
| AMT_APPLICATION | 229,925.11 | 113,850.00 | 310,604.25 | 7,155.00 | 3,150,000.00 | 3.04 | 15.49 | 54,292.50 | 238,500.00 |
| AMT_CREDIT | 195,499.34 | 81,450.00 | 316,629.54 | 0.00 | 3,524,220.00 | 3.24 | 17.05 | 23,973.75 | 212,656.50 |
| AMT_DOWN_PAYMENT | 13,214.68 | 7,614.00 | 35,638.20 | 0.27 | 1,980,000.00 | 35.35 | 1,751.87 | 4,050.00 | 13,500.90 |
| AMT_GOODS_PRICE | 228,138.69 | 112,500.00 | 313,969.65 | 7,155.00 | 3,150,000.00 | 3.06 | 15.49 | 52,642.31 | 229,500.00 |
| RATE_DOWN_PAYMENT | 0.15 | 0.11 | 0.11 | 0.00 | 0.91 | 2.31 | 9.82 | 0.10 | 0.20 |
| CNT_PAYMENT | 18.01 | 12.00 | 14.15 | 3.00 | 84.00 | 1.62 | 4.90 | 10.00 | 24.00 |
| DAYS_DECISION | −884.02 | −588.50 | 779.93 | −2,922.00 | −2.00 | −1.04 | 2.93 | −1,308.00 | −280.00 |
| DAYS_FIRST_DRAWING | −659.17 | −632.00 | 257.38 | −2,912.00 | −2.00 | −6.69 | 51.28 | −632.00 | −632.00 |
| DAYS_FIRST_DUE | −1,096.61 | −877.00 | 774.01 | −2,892.00 | −3.00 | −0.71 | 2.36 | −1,624.00 | −475.00 |
| DAYS_LAST_DUE | −960.85 | −807.00 | 680.97 | −2,842.00 | −3.00 | −0.80 | 2.76 | −1,346.75 | −443.00 |
| DAYS_TERMINATION | −941.05 | −784.00 | 675.55 | −2,839.00 | −2.00 | −0.83 | 2.81 | −1,311.00 | −430.00 |
Zmienne numeryczne można podzielić na trzy główne grupy:
AMT_ANNUITY – rata kredytuAMT_APPLICATION – kwota wnioskowanaAMT_CREDIT – kwota przyznanaAMT_DOWN_PAYMENT – wkład własnyAMT_GOODS_PRICE – wartość towaruRATE_DOWN_PAYMENT – procent wkładu własnegoMają one bardzo szeroki zakres wartości (od kilku tysięcy do ponad 3 mln). Do tego charakteryzyją się wysoką skośnością i kurtozą, co oznacza obecność ekstremalnie dużych kwot. Mediany natomiast są znacznie niższe od średnich, co potwierdza, że większość klientów bierze mniejsze kredyty, a tylko nieliczni bardzo duże.
CNT_PAYMENT – liczba ratDominują krótkie i średnie okresy spłaty. Mediana liczby rat to 12, średnia 18, ale maksymalnie występuje 84 raty, co tworzy skośność 1.62. Oznacza to, że większość klientów wybiera krótkie lub średnie okresy spłaty, a długie harmonogramy są rzadkie.
DAYS_DECISION - dni między złożeniem wniosku a decyzją
kredytowąDAYS_FIRST_DRAWING - dni do pierwszego uruchomienia
środkówDAYS_FIRST_DUE - dni do pierwszej ratyDAYS_LAST_DUE - dni do ostatniej ratyDAYS_TERMINATION - dni do zakończenia kontraktuZmienne czasowe opisują harmonogram i przebieg procesu kredytowego w
odniesieniu do daty decyzji. DAYS_DECISION ze średnią:
−884, i medianą −588 - większość decyzji zapada ok. 1,5 roku po
pierwszym kontakcie klienta. Mediana i oba kwartyle
DAYS_FIRST_DRAWING równe −632 wskazują, że pierwsze
uruchomienie środków jest planowane w bardzo podobnym momencie względem
decyzji dla niemal wszystkich klientów. DAYS_FIRST_DUE ,
DAYS_LAST_DUE i DAYS_TERMINATION mają dużą
rozpiętość, co odzwierciedla różne długości kredytów i różne
harmonogramy spłat. DAYS_FIRST_DUE jest najbardziej odległy
od decyzji, bo opisuje początek harmonogramu. DAYS_LAST_DUE
i DAYS_TERMINATION są do siebie bardzo zbliżone, bo oba
opisują koniec cyklu kredytowego.
Przeprowadzono analizę standaryzowanych wartości (Z-score) wybranych
zmiennych ilościowych związanych z konstrukcją kredytu: wysokość raty
(AMT_ANNUITY), kwotę wnioskowaną
(AMT_APPLICATION), wkład własny
(AMT_DOWN_PAYMENT) oraz liczbę rat
(CNT_PAYMENT). Standaryzacja pozwala porównywać te zmienne
na wspólnej skali, niezależnie od ich jednostek i poziomu wartości.
Z-score mierzy, o ile typowych odchyleń dana obserwacja odbiega od
średniej. Wartości:
| Status_kontraktu | Z_AMT_ANNUITY | Z_AMT_APPLICATION | Z_AMT_DOWN_PAYMENT | Z_CNT_PAYMENT |
|---|---|---|---|---|
| Anulowany | -0.786 | 1.407 | -0.168 | -0.783 |
| Niewykorzystana oferta | -0.834 | -0.514 | -0.173 | -0.849 |
| Odmowa | 0.345 | 0.497 | -0.043 | 0.542 |
| Zatwierdzony | 0.167 | -0.120 | 0.067 | 0.114 |
Klienci anulujący mają raty wyraźnie poniżej niż przeciętne
(AMT_ANNUITY = –0.786), ale wnioskują o wyższe kwoty niż
średnia (AMT_APPLICATION = 1.407). Wkład własny jest nieco
poniżej średniej, a harmonogram spłaty również jest dłuższy. Są to
klienci, którzy wnioskują o wysokie kwoty kredytu, ale przy niższych
ratach i krótszym harmonogramie spłaty. Widać tu próbę uzyskania dużego
finansowania przy relatywnie niskim obciążeniu miesięcznym, co może
prowadzić do rezygnacji w trakcie procesu.
Wartości dla niewykorzystanej oferty są najbardziej „poniżej średniej” ze wszystkich statusów. Wszystkie Z‑score są ujemne i zbliżone do siebie. Raty, kwoty wnioskowane, wkład własny i liczba rat są niższe niż przeciętnie. To klienci o najmniejszych parametrach kredytowych — niskie kwoty, niskie raty, krótkie harmonogramy. Oferta była lekka finansowo, ale mimo to nie została wykorzystana.
Profil dla odmowy jest umiarkowanie powyżej średniej. Klienci
wnioskują o wyższe kwoty niż przeciętnie (AMT_APPLICATION =
0.497) przy dłuższych okresie spłaty (CNT_PAYMENT = 0.542).
Są to klienci, którzy wnioskują o większe kredyty i dłuższe
harmonogramy, co zwiększa ryzyko i może prowadzić do negatywnej
decyzji.
Najbardziej „średni” profil dotyczy wniosków zatwierdzonych. Wszystkie Z‑score są bardzo blisko zera, co oznacza, że zatwierdzone wnioski mają parametry najbardziej zbliżone do średnich w populacji. Minimalnie niższa kwota wnioskowana i nieco wyższa liczba rat i ich wysokość. Zatwierdzane są wnioski najbardziej typowe, bez skrajności — ani bardzo wysokie, ani bardzo niskie wartości.
Podsumowując to jednym zdaniem - im wniosek kredytowy był bliższy przeciętnemu tym większa była szansa na jego akceptację.
W tej części analizie poddano zależności pomiędzy wybranymi zmiennymi kategorycznymi a statusem kontraktu kredytowego. Do oceny istotności statystycznej wykorzystano test chi‑kwadrat niezależności, który pozwala sprawdzić, czy rozkład kategorii danej zmiennej różni się pomiędzy grupami statusów.
Test chi‑kwadrat porównuje liczebności obserwowane (rzeczywiste) z liczebnościami oczekiwanymi, które wystąpiłyby, gdyby zmienne były od siebie niezależne. Jeżeli różnice są duże, statystyka Chi² rośnie, a wartość p spada — co wskazuje na istotną zależność.
W analizie uwzględniono trzy zmienne kategoryczne:
CHANNEL_TYPE_GROUPED – uproszczona wersja kanału
sprzedaży, w której rzadkie kategorie (<5%) połączono w grupę
„Inne”,
NAME_CONTRACT_TYPE_PL – typ kontraktu (gotówkowy,
konsumencki, ratalny),
NAME_CLIENT_TYPE_PL – typ klienta (nowy, stały,
reaktywowany).
Status kontraktu analizowano w czterech kategoriach: Zatwierdzony, Odmowa, Anulowany, Niewykorzystana oferta.
Wszystkie testy spełniły warunki poprawności (brak zbyt małych liczebności oczekiwanych), co oznacza, że wyniki są statystycznie wiarygodne.
| Zmienna | Chi2 | p | df | Warunek_poprawny | Istotność |
|---|---|---|---|---|---|
| CHANNEL_TYPE_GROUPED | 7889.376 | 0 | 12 | TRUE | *** |
| NAME_CONTRACT_TYPE_PL | 6648.973 | 0 | 6 | TRUE | *** |
| NAME_CLIENT_TYPE_PL | 2754.264 | 0 | 6 | TRUE | *** |
| Zatwierdzony | Anulowany | Odmowa | Niewykorzystana oferta | |
|---|---|---|---|---|
| Biura kredytowe i gotówkowe | 40.47 | 39.70 | 19.78 | 0.06 |
| Inne | 45.41 | 24.02 | 30.57 | 0.00 |
| Ogólnokrajowy | 81.91 | 0.11 | 13.06 | 4.93 |
| Regionalny / Lokalny | 88.78 | 0.06 | 10.44 | 0.72 |
| Sklep | 89.39 | 0.03 | 10.01 | 0.56 |
Wszystkie trzy zmienne kategoryczne wykazały bardzo silną i istotną statystycznie zależność ze statusem kontraktu (p < 0.001). Oznacza to, że sposób pozyskania klienta, typ kontraktu oraz typ klienta są wyraźnie powiązane z prawdopodobieństwem zatwierdzenia, odmowy lub anulowania wniosku.
Kanał sprzedaży to zmienna o najsilniejszej zależności ze statusem
kontraktu (Chi² ≈ 7889). Rozkłady procentowe pokazują wyraźne różnice
między kanałami: Sklep, Regionalny/Lokalny i
Ogólnokrajowy mają najwyższe odsetki zatwierdzeń (89–82%).
Biura kredytowe i gotówkowe oraz kategoria
Inne mają znacznie wyższy udział anulowań i odmów.
„Niewykorzystana oferta” pojawia się niemal wyłącznie w kanałach
masowych (Ogólnokrajowy, Sklep), co sugeruje
odmienny charakter tych wniosków. Wskazuje to, że kanał sprzedaży jest
jednym z kluczowych czynników różnicujących jakość i finalny status
wniosków.
Z kolei różne typy produktów mają odmienne profile ryzyka i akceptacji. Wynik Chi² ≈ 6649 potwierdza, że status kontraktu silnie zależy od rodzaju produktu (np. kredyt gotówkowy vs ratalny).
Zależność dla typu klienta również jest istotna (Chi² ≈ 2754). Nowi klienci, stali klienci i klienci reaktywowani różnią się prawdopodobieństwem zatwierdzenia i odmowy, co jest zgodne z praktyką kredytową — historia relacji z instytucją wpływa na decyzję.
Za pomocą funkcji ggbetweenstats przedstawiono rozkład
kwoty kredytu (AMT_CREDIT) w podziale na status kontraktu.
Każda grupa zawiera indywidualne punkty obserwacji oraz średnią, co
pozwala ocenić różnice między kategoriami zarówno wizualnie, jak i
statystycznie.
Istnieją istotne statystycznie różnice w wysokości przyznanych kwot kredytu między grupami kontraktowymi (Welch ANOVA: p < 2.23e−308, ω² = 0.61) — efekt jest bardzo silny.
Najniższe średnie kwoty występują w grupie Anulowany (≈ 21 754) oraz Niewykorzystana oferta (≈ 69 195) — sugeruje to, że niższe kwoty częściej kończą się rezygnacją lub brakiem realizacji.
Najwyższe średnie kwoty przypadają na Odmowę (≈ 376 000) oraz Zatwierdzenie (≈ 203 000) — wskazuje to, że większe wnioski są częściej oceniane rygorystycznie, ale też częściej zatwierdzane.
Test Games-Howell potwierdza, że każda para statusów różni się istotnie pod względem kwoty kredytu (wszystkie p < 1e−7).
Wysoka kwota kredytu nie gwarantuje zatwierdzenia, ale jest silnie związana z decyzją końcową — może być traktowana jako wskaźnik ryzyka.
Niskie kwoty częściej kończą się anulowaniem lub niewykorzystaniem, co może sugerować brak zaangażowania klienta lub niską wartość transakcyjną.
Segmentacja klientów według kwoty wnioskowanej może wspierać scoring ryzyka i optymalizację procesu decyzyjnego.
Każdy słupek reprezentuje jedną kategorię statusu, a kolory wskazują typ klienta. Dodatkowo wykres zawiera wyniki testu chi‑kwadrat oraz miarę siły zależności (Cramér’s V), co pozwala ocenić istotność statystyczną obserwowanych różnic.
Zależność między typem klienta a statusem kontraktu jest istotna statystycznie (χ² = 2770.34, p < 2.23e−308, Cramer’s V = 0.19) — czyli umiarkowana siła powiązania.
Stały klient dominuje w każdej grupie, szczególnie w anulowanych (93%) i niewykorzystanych ofertach (76%) — może wskazywać na niższe zaangażowanie lub powtarzalne wnioski bez finalizacji.
Nowi klienci częściej otrzymują zatwierdzenie (28%) niż odmowę (18%) — może to sugerować preferencyjne traktowanie nowych wniosków lub lepszy scoring startowy.
Reaktywowany klient (powrót po przerwie) ma niewielki udział we wszystkich statusach, ale nieco wyższy w zatwierdzonych (9%) — może wskazywać na umiarkowane zaufanie instytucji.
Typ klienta może być użytecznym predyktorem decyzji kredytowej — szczególnie w połączeniu z historią aplikacji.
Stały klient nie zawsze oznacza wysoką skuteczność — warto rozważyć dodatkowe kryteria segmentacji.
Nowi klienci mogą być bardziej skłonni do finalizacji umowy, co może wspierać strategie pozyskiwania.
Wykres zawiera średnie wartości dla każdej grupy oraz wyniki testu Welch’a i porównań post hoc.
Różnice w liczbie rat między grupami kontraktowymi są bardzo silnie istotne statystycznie (Welch ANOVA: p < 2.23e−308, ω² = 0.79) — efekt jest ekstremalnie silny.
Zatwierdzone kontrakty mają średnio 14 rat, a odrzucone aż 20 — może to wskazywać, że dłuższy okres spłaty zwiększa ryzyko odmowy.
Anulowane i niewykorzystane oferty mają bardzo niską liczbę rat (średnio 1.16 i 0.21) — sugeruje to, że były to wnioski niepełne, testowe lub szybko wycofane.
Test Games-Howell potwierdza istotne różnice między wszystkimi grupami (wszystkie p < 1e−8).
Liczba rat może być silnym predyktorem decyzji kredytowej — szczególnie w połączeniu z kwotą kredytu i typem klienta.
Dłuższy harmonogram spłaty może zwiększać ryzyko odmowy, co warto uwzględnić w scoringu.
Wnioski z minimalną liczbą rat często kończą się anulowaniem lub brakiem realizacji, co może wskazywać na niską jakość aplikacji.
Wykres zawiera linię regresji oraz histogramy brzegowe, co pozwala jednocześnie ocenić siłę korelacji i rozkład obu zmiennych. Statystyki testowe wskazują na związek między tymi wartościami.
Zależność między kwotą wnioskowaną a przyznaną jest ekstremalnie
silna
(r = 0.99, p < 2.23e−308) — niemal idealna korelacja
liniowa.
Banki najczęściej przyznają dokładnie taką kwotę, o jaką klient wnioskował — co może świadczyć o dobrze skalibrowanym procesie oceny zdolności kredytowej.
Odchylenia od linii regresji są rzadkie i niewielkie — wskazują na sporadyczne korekty (np. ograniczenia scoringowe, limity produktowe).
Rozkłady kwot po obu osiach są podobne — potwierdzają, że w większości przypadków decyzja kredytowa nie modyfikuje kwoty wnioskowanej.
Proces decyzyjny jest silnie zautomatyzowany i zgodny z oczekiwaniami klienta — co może zwiększać satysfakcję i skracać czas obsługi.
Wysoka zgodność kwot może świadczyć o efektywnym dopasowaniu produktów do profilu klienta — warto analizować wyjątki jako potencjalne przypadki ryzyka lub niedopasowania.
Histogram pokazuje zarówno częstość występowania poszczególnych wartości, jak i statystyki opisowe oraz wynik testu t‑Studenta, co pozwala ocenić, jak typowa jest liczba rat w tej grupie klientów.
Średnia liczba rat wynosi 14.08, co wskazuje na preferencję dla kredytów średnioterminowych — ani bardzo krótkich, ani długoterminowych.
Rozkład jest skośny, z wyraźnym szczytem w przedziale 6–20 rat — najczęściej wybierane są kredyty rozłożone na 12–18 miesięcy.
Statystyki testowe potwierdzają istotność rozkładu (t = 148.92, p < 2.23e−308, Hedges g = 1.19) — czyli liczba rat w zatwierdzonych kontraktach nie jest przypadkowa, lecz ma wyraźny wzorzec.
Długi ogon rozkładu sugeruje obecność kredytów długoterminowych, ale są one znacznie rzadsze — mogą dotyczyć wyższych kwot lub specyficznych produktów.
Zatwierdzone kontrakty najczęściej mają liczbę rat zbliżoną do 12–18, co może być optymalnym punktem równowagi między dostępnością a ryzykiem.
Kredyty krótkoterminowe (do 6 rat) są mniej popularne, co może wynikać z niskiej opłacalności lub ograniczonego popytu.
Warto uwzględnić liczbę rat jako zmienną w scoringu ryzyka
Dwa wykresy kołowe pokazują udział poszczególnych statusów w każdej grupie, a dodatkowe statystyki (test chi‑kwadrat, Cramér’s V) pozwalają ocenić siłę i istotność zależności między typem klienta a statusem kontraktu.
Nowi klienci mają zdecydowanie wyższy odsetek zatwierdzonych wniosków — aż 94% z nich kończy się pozytywną decyzją, podczas gdy u stałych klientów to tylko 54%.
Stały klient częściej doświadcza odmowy (21%) i anulowania (24%), co może wskazywać na większą liczbę powtarzających się, nieefektywnych aplikacji lub niższą jakość wniosków.
Różnice są istotne statystycznie (χ² = 2593.64, p < 2.23e−308, Cramer’s V = 0.34) — czyli typ klienta ma wyraźny wpływ na decyzję kredytową.
Nowi klienci rzadko są odrzucani (1%) lub anulują wniosek, co może świadczyć o większym zaangażowaniu lub lepszym dopasowaniu oferty.
Nowy klient to potencjalnie bardziej efektywny segment — warto go wspierać w procesie onboardingowym i utrzymaniu.
Stały klient nie gwarantuje zatwierdzenia — warto analizować historię aplikacyjną, jakość wniosków i kanał pozyskania.
Typ klienta powinien być uwzględniany w scoringu ryzyka i strategii sprzedażowej — szczególnie przy automatyzacji decyzji.
Wykres przedstawia estymowane współczynniki regresji dla modelu
liniowego, w którym zmienną zależną jest kwota przyznanego kredytu
(AMT_CREDIT). Model uwzględnia dwa predyktory: typ klienta
(NAME_CLIENT_TYPE_PL) oraz wkład własny
(AMT_DOWN_PAYMENT). Wykres pokazuje wartość współczynnika
β, przedział ufności, wartość statystyki t oraz poziom istotności dla
każdego predyktora, co pozwala ocenić ich wpływ na kwotę kredytu.
Wkład własny (AMT_DOWN_PAYMENT) ma istotny wpływ na
kwotę kredytu
(β̂ = 0.23, p = 0.03) — im wyższy wkład własny, tym wyższa przyznana
kwota. To zgodne z logiką ryzyka: klient angażujący własne środki
otrzymuje większe finansowanie.
Typ klienta nie ma istotnego wpływu na kwotę kredytu (Stały, Reaktywowany, Nowy — wszystkie p > 0.35) — różnice między typami są statystycznie nieistotne, co może oznaczać, że bank nie różnicuje kwoty kredytu ze względu na typ klienta, tylko inne czynniki (np. scoring, historia).
Stały klient otrzymuje średnio wyższą kwotę niż nowy, ale różnica nie jest istotna — warto to zbadać w modelu z dodatkowymi zmiennymi (np. kanał, cel pożyczki).
W tej części przedstawiono trzy wykresy porównujące wybrane zmienne finansowe w zależności od statusu kontraktu:
kwotę wnioskowaną (AMT_APPLICATION),
liczbę rat (CNT_PAYMENT),
kwotę raty (AMT_ANNUITY).
Do analizy zastosowano test Welch ANOVA, który pozwala ocenić, czy średnie wartości danej zmiennej różnią się istotnie pomiędzy grupami statusów kontraktu. W odróżnieniu od klasycznej ANOVY, test Welch’a nie wymaga równości wariancji i dobrze sprawdza się przy danych skośnych oraz nierównych liczebnościach — co jest typowe dla danych kredytowych.
Każdy wykres zawiera:
punkty obserwacji (rozrzut danych),
średnią wartość oznaczoną jako μ_mean,
boxplot — który obrazuje rozkład danych w każdej grupie,
wartość statystyki F_Welch,
poziom istotności p,
miarę siły zależności — efekt wielkości ω² (omega squared),
przedział ufności dla ω²,
oraz wyniki porównań parowych (test Games-Howell z korektą Holm).
Efekt wielkości ω² przyjmuje wartości od 0 do 1 i informuje, jak duża część zmienności zmiennej zależnej jest wyjaśniana przez zmienną grupującą (tu: status kontraktu).
ω² ≈ 0.01 – efekt słaby,
ω² ≈ 0.06 – efekt umiarkowany,
ω² ≥ 0.14 – efekt silny,
ω² ≥ 0.30 – efekt bardzo silny.
Różnice między grupami są ekstremalnie istotne statystycznie, a efekt wielkości 𝜔2=0.82 — czyli bardzo silny.
Najwyższa średnia kwota wnioskowana występuje w grupie Anulowany (≈ 667 000), co może wskazywać na próbę uzyskania dużego finansowania, które nie zostało zrealizowane.
Odmowy mają średnią ≈ 384 000 — również wysoką, ale niższą niż anulowania.
Zatwierdzenia mają średnią ≈ 193 000 — czyli najbardziej „typowe” wnioski.
Niewykorzystane oferty mają najniższą średnią (≈ 70 000) — to aplikacje o niskiej wartości, które nie zostały sfinalizowane.
Wszystkie porównania parowe są istotne (p_Holm-adj < 1e−7), co potwierdza, że każda grupa różni się od pozostałych.
Tu również różnice między grupami są ekstremalnie istotne
statystycznie
Test Welch’a wykazał bardzo silny efekt, a efekt wielkości 𝜔2= 0.79.
Oznacza to, że status kontraktu wyjaśnia aż 79% zmienności liczby rat —
to wartość ekstremalnie wysoka.
Zatwierdzone kontrakty mają średnio 14.08 rat, co wskazuje na preferencję dla kredytów średnioterminowych — ani bardzo krótkich, ani długoterminowych.
Odmowy charakteryzują się najwyższą średnią liczbą rat (20.25) — co może sugerować, że dłuższy okres spłaty zwiększa ryzyko negatywnej decyzji.
Anulowane kontrakty mają średnio tylko 1.16 raty, a niewykorzystane oferty zaledwie 0.21 raty — to wskazuje na wnioski niepełne, testowe lub szybko wycofane.
Wszystkie porównania parowe (Games-Howell z korektą Holm) są istotne statystycznie (p < 4.34e−08), co potwierdza, że każda grupa różni się istotnie od pozostałych.
Trzeci wykres także pokazuje istotne różnice między grupami. Test Welch’a wykazał bardzo silny efekt, a efekt również wielkości 𝜔2= 0.79.
Zatwierdzone kontrakty mają średnią ratę 14 832, co wskazuje na umiarkowane miesięczne obciążenie — typowe dla kredytów średnioterminowych.
Odmowy charakteryzują się najwyższą średnią ratą (17 444) — co może sugerować, że wyższe miesięczne zobowiązania zwiększają ryzyko negatywnej decyzji.
Anulowane kontrakty mają średnio tylko 913, a niewykorzystane oferty zaledwie 212 — to wskazuje na aplikacje o bardzo niskim obciążeniu, które nie zostały sfinalizowane.
Wszystkie porównania parowe (Games-Howell z korektą Holm) są istotne statystycznie (p < 4.34e−08), co potwierdza, że każda grupa różni się istotnie od pozostałych.
Przeprowadzona analiza statystyczna pozwala bardzo precyzyjnie opisać profil klientów, charakterystykę wniosków kredytowych oraz czynniki związane z ostatecznym statusem kontraktu. Wyniki są spójne i wskazują na kilka kluczowych zależności, które mogą wspierać zarówno scoring ryzyka, jak i decyzje operacyjne.
1. Zatwierdzone wnioski są najbardziej „typowe” w całej populacji
Zarówno wartości Z‑score, jak i statystyki opisowe pokazują, że zatwierdzone kontrakty mają parametry najbliższe średnim wartościom w zbiorze:
kwoty wnioskowane i przyznane są umiarkowane,
liczba rat jest średnia,
wkład własny nie odbiega od przeciętnego.
To oznacza, że system preferuje wnioski bez skrajności — ani bardzo wysokich kwot, ani bardzo długich harmonogramów, ani nietypowych parametrów.
2. Kwota kredytu i liczba rat są silnie powiązane ze statusem kontraktu
Wyniki testów ANOVA (Welch) i porównań post hoc pokazują ekstremalnie silne różnice między statusami:
Odmowy dotyczą wniosków o wysokie kwoty i długie okresy spłaty.
Anulowania i niewykorzystane oferty mają bardzo niskie kwoty i minimalną liczbę rat, co sugeruje niską jakość lub brak zaangażowania klienta.
Zatwierdzenia koncentrują się wokół wartości średnich.
To wskazuje, że parametry finansowe są jednym z najważniejszych predyktorów decyzji.
3. Typ klienta jest istotnie związany ze statusem kontraktu
Testy chi‑kwadrat wykazały silną zależność między typem klienta a wynikiem procesu:
Nowi klienci mają najwyższy odsetek zatwierdzeń (94%) i najniższy odsetek odmów.
Stali klienci częściej anulują lub są odrzucani — co może wynikać z powtarzalnych, niskiej jakości aplikacji.
Reaktywowany klient ma umiarkowane wyniki, ale niewielki udział w populacji.
Wskazuje to, że historia relacji z instytucją nie jest jednoznacznym atutem — nowy klient może być bardziej wartościowy niż stały.
4. Kanał sprzedaży jest silnie powiązany ze statusem kontraktu
To jedna z najważniejszych obserwacji:
kanały masowe (Sklep, Ogólnokrajowy) mają najwyższe zatwierdzenia,
kanały tradycyjne (Biura kredytowe, Inne) mają wysokie anulowania i odmowy,
niewykorzystane oferty pojawiają się niemal wyłącznie w kanałach masowych.
Oznacza to, że kanał pozyskania klienta jest kluczowym czynnikiem jakościowym i powinien być uwzględniany w scoringu oraz strategii sprzedażowej.
5. Wkład własny ma istotny wpływ na kwotę kredytu, typ klienta — nie
Model regresji pokazał:
kwota kredytu: istotny predyktor — większy wkład własny → większa kwota kredytu,
typ klienta: brak istotności — bank nie różnicuje kwoty kredytu ze względu na typ klienta.
To oznacza, że czynniki finansowe dominują nad demograficznymi w procesie ustalania kwoty.
Największe szanse na zatwierdzenie mają wnioski o parametrach bliskich średnim.
Kanał sprzedaży jest najważniejszym czynnikiem jakościowym — silniejszym niż typ klienta.
Nowi klienci są bardziej efektywnym segmentem niż stali.
Długie harmonogramy i wysokie kwoty zwiększają ryzyko odmowy.
Niskie kwoty i minimalne liczby rat zwiększają ryzyko anulowania lub niewykorzystania oferty.
W tej sekcji budujemy modele predykcyjne do odpowiadania na kluczowe pytania badawcze:
Wykorzystujemy regresję logistyczną z selekcją zmiennych (Stepwise i Best Subset) do zidentyfikowania kluczowych sterowników każdej decyzji. Wyniki analizy podajemy filtrowaniu (p.value< 0.05).
| Przygotowane dane do modelowania | |
| Metryka | Wartość |
|---|---|
| Liczba obserwacji | 14542 |
| Zmienne finansowe | 6 |
| Zmienne socjoekonomiczne | 5 |
| Rozkład zmiennych docelowych | ||
| Decision | Wartość_0 | Wartość_1 |
|---|---|---|
| Decision_Approved | 0 | 14542 |
| Decision_Refused | 14542 | 0 |
| Decision_Canceled | 14542 | 0 |
| Model 1: Approved vs Reszta | |
| Metryki modelu (Stepwise) | |
| Metrika | Wartość |
|---|---|
| Liczba zmiennych | 0.0000 |
| AIC | 2.0000 |
| R2 (McFadden) | 0.0000 |
| Współczynniki modelu logistycznego | |||
| Model 1: Approved vs Reszta (p < 0.05) | |||
| term | estimate | OddsRatio | p.value |
|---|---|---|---|
| Model 2: Refused vs Reszta | |
| Metryki modelu (Stepwise) | |
| Metrika | Wartość |
|---|---|
| Liczba zmiennych | 0.0000 |
| AIC | 2.0000 |
| R2 (McFadden) | 0.0000 |
| Współczynniki modelu logistycznego | |||
| Model 2: Refused vs Reszta (p < 0.05) | |||
| term | estimate | OddsRatio | p.value |
|---|---|---|---|
| Model 3: Canceled vs Reszta | |
| Metryki modelu (Stepwise) | |
| Metrika | Wartość |
|---|---|
| Liczba zmiennych | 0.0000 |
| AIC | 2.0000 |
| R2 (McFadden) | 0.0000 |
| Współczynniki modelu logistycznego | |||
| Model 3: Canceled vs Reszta (p < 0.05) | |||
| term | estimate | OddsRatio | p.value |
|---|---|---|---|
## Error in `[.default`(conf_m4, 2, 2): indeks jest poza granicami
## Error in `[.default`(conf_m4, 2, 1): indeks jest poza granicami
## Error in roc.default(dane_m1$Decision, predictions_m4): 'response' must have two levels
## Error: nie znaleziono obiektu 'roc_m4'
## Error: nie znaleziono obiektu 'sensitivity_m4'
## Error: nie znaleziono obiektu 'metryki_m4'
| Zmienna |
|---|
## Error in `[.default`(conf_m5, 2, 2): indeks jest poza granicami
## Error in `[.default`(conf_m5, 2, 1): indeks jest poza granicami
## Error in roc.default(dane_m5$Decision, predictions_m5): 'response' must have two levels
## Error: nie znaleziono obiektu 'roc_m5'
## Error: nie znaleziono obiektu 'sensitivity_m5'
## Error: nie znaleziono obiektu 'metryki_m5'
| Zmienna |
|---|
| term | estimate | OddsRatio | p.value |
|---|
## Error: nie znaleziono obiektu 'sensitivity_m4'
## Error: nie znaleziono obiektu 'porownanie'
## Error: nie znaleziono obiektu 'auc_m4'
## Error: nie znaleziono obiektu 'diff_auc'
## Error: nie znaleziono obiektu 'diff_auc'
## Error: nie znaleziono obiektu 'diff_auc'
## Error: nie znaleziono obiektu 'interpretacja'
| Zmienne w modelach stepwise | |
| Modele 1, 2, 3: Porównanie wybranych zmiennych | |
| Model | Zmienne |
|---|---|
| Model 1 (Approved) | |
| Model 2 (Refused) | |
| Model 3 (Canceled) | |
| Wspólne zmienne |
| Wynik analizy |
| Informacja |
|---|
| Brak wspólnych zmiennych we wszystkich 3 modelach |
| Porównanie modeli stepwise | |||
| Modele 1, 2, 3: Approved, Refused, Canceled | |||
| Model | Zmienne | AIC | R2.McFadden |
|---|---|---|---|
| Model 1: Approved | 0 | 2.00 | 0.0000 |
| Model 2: Refused | 0 | 2.00 | 0.0000 |
| Model 3: Canceled | 0 | 2.00 | 0.0000 |
| Model 6: Rozkład obserwacji | |
| Problemy ze spłatą | |
| Kategoria | Liczba |
|---|---|
| Z problemami spłaty | 0 |
| Bez problemów | 14542 |
## Error in `[.default`(conf_m6, 2, 2): indeks jest poza granicami
## Error in `[.default`(conf_m6, 2, 1): indeks jest poza granicami
## Error in roc.default(dane_m6$Payment_Problem, predictions_m6): 'response' must have two levels
## Error: nie znaleziono obiektu 'roc_m6'
## Error: nie znaleziono obiektu 'sensitivity_m6'
## Error: nie znaleziono obiektu 'metryki_m6'
| Zmienna |
|---|
| term | estimate | OddsRatio | p.value |
|---|
TODO