1 Wprowadzenie

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ą?

1.1 Dane

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.

1.2 Użyte biblioteki

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.

2 Eksploracyjna Analiza Danych (EDA)

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:

  1. SK_ID_PREV: Unikalny identyfikator poprzedniego wniosku
  2. SK_ID_CURR: Unikalny identyfikator bieżącego wniosku
  3. NAME_CONTRACT_TYPE: Typ umowy (np. gotówkowy, ratalny)
  4. AMT_ANNUITY: Kwota raty kredytowej
  5. AMT_APPLICATION: Kwota, o którą klient wnioskował
  6. AMT_CREDIT: Ostateczna przyznana kwota kredytu
  7. AMT_DOWN_PAYMENT: Wkład własny w poprzedniej aplikacji
  8. AMT_GOODS_PRICE: Cena towaru, o który wnioskowano
  9. WEEKDAY_APPR_PROCESS_START: Dzień tygodnia złożenia aplikacji
  10. HOUR_APPR_PROCESS_START: Godzina złożenia aplikacji
  11. FLAG_LAST_APPL_PER_CONTRACT: Flaga: czy była to ostatnia aplikacja dla danego kontraktu
  12. NFLAG_LAST_APPL_IN_DAY: Flaga: czy była to ostatnia aplikacja klienta danego dnia
  13. RATE_DOWN_PAYMENT: Wskaźnik wkładu własnego (znormalizowany)
  14. RATE_INTEREST_PRIMARY: Podstawowa stopa procentowa (znormalizowana)
  15. RATE_INTEREST_PRIVILEGED: Uprzywilejowana stopa procentowa (znormalizowana)
  16. NAME_CASH_LOAN_PURPOSE: Cel pożyczki gotówkowej
  17. NAME_CONTRACT_STATUS: Status kontraktu (np. zatwierdzony, odrzucony)
  18. DAYS_DECISION: Dni do decyzji względem bieżącej aplikacji
  19. NAME_PAYMENT_TYPE: Wybrany sposób płatności
  20. CODE_REJECT_REASON: Powód odrzucenia aplikacji
  21. NAME_TYPE_SUITE: Kto towarzyszył klientowi przy aplikacji
  22. NAME_CLIENT_TYPE: Typ klienta (nowy, stały)
  23. NAME_GOODS_CATEGORY: Kategoria towaru
  24. NAME_PORTFOLIO: Portfel produktu (np. CASH, POS, CAR)
  25. NAME_PRODUCT_TYPE: Typ produktu (np. cross-sell, walk-in)
  26. CHANNEL_TYPE: Kanał pozyskania klienta
  27. SELLERPLACE_AREA: Obszar sprzedaży poprzedniej aplikacji (miejsce)
  28. NAME_SELLER_INDUSTRY: Branża sprzedawcy
  29. CNT_PAYMENT: Liczba rat kredytu w aplikacji
  30. NAME_YIELD_GROUP: Grupa oprocentowania (niska, średnia, wysoka)
  31. DAYS_FIRST_DRAWING: Dni do pierwszej wypłaty względem bieżącej aplikacji
  32. DAYS_FIRST_DUE: Dni do pierwszej raty względem bieżącej aplikacji
  33. DAYS_LAST_DUE_1ST_VERSION: Dni do pierwszej wersji ostatniej raty
  34. DAYS_LAST_DUE: Dni do ostatniej raty względem bieżącej aplikacji
  35. DAYS_TERMINATION: Dni do zakończenia kontraktu względem bieżącej aplikacji
  36. NFLAG_INSURED_ON_APPROVAL: Flaga: czy klient wybrał ubezpieczenie przy aplikacji

3 Data Cleansing, Wrangling

3.1 Analiza brakujących wartości (NA)

Kluczowym etapem przygotowania danych było zidentyfikowanie kolumn najbardziej obciążonych brakami danych.

Podsumowanie braków 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).

3.1.1 Wizualizacja wzorców 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.

3.1.2 Zależności między brakami danych w zmiennych

3.1.2.1 Braki w AMT_ANNUITY i CNT_PAYMENT

Statusy kontraktów dla obserwacji z brakami AMT_ANNUITY i CNT PAYMENT
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ł”.

3.1.2.2 Braki w DAYS_FIRST_DRAWING, DAYS_FIRST_DUE, DAYS_LAST_DUE_1ST_VERSION, DAYS_LAST_DUE, DAYS_TERMINATION, NFLAG_INSURED_ON_APPROVAL

Statusy kontraktów dla obserwacji z brakami DAYS*
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.

Podsumowanie zmiennych AMT_CREDIT i CNT_PAYMENT dla wniosków zatwierdzonych z brakami DAYS*
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.

Liczba podejrzanie dużych wartości w zmiennych DAYS*
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.

Statusy kontraktów dla odstających wartości w poszczególnych zmiennych DAYS*
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.

Podsumowanie CNT_PAYMENT i AMT_CREDIT dla kontraktów z odstającymi wartościami DAYS*
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.

3.1.2.3 Braki w AMT_DOWN_PAYMENT i RATE_DOWN_PAYMENT

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.

3.1.2.4 Braki w RATE_INTEREST_PRIMARY i RATE_INTEREST_PRIVILEGED

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.

3.1.2.5 Braki w PRODUCT_COMBINATION

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.

3.1.2.6 Braki w AMT_GOODS_PRICE

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.

Statusy kontraktów dla obserwacji z brakującym AMT_GOODS_PRICE
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).

Podsumowanie CNT_PAYMENT i AMT_CREDIT dla zatwierdzonych kontraktów z brakującym AMT_GOODS_PRICE
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.

3.1.2.7 Braki w NAME_TYPE_SUITE

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.

3.1.2.8 Braki nieoznaczone jako “NA”

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.

Statusy kontraktów dla obserwacji z AMT_APPLICATION = 0
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

Podsumowanie CNT_PAYMENT i AMT_CREDIT dla zatwierdzonych kontraktów z AMT_APPLICATION = 0
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.

3.1.3 Czyszczenie i przygotowanie danych (Data Cleansing)

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.

3.1.3.1 Realizacja strategii imputacji na podstawie analizy logicznej braków

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
  )
)

4 Wizualizacja danych

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.

4.1 Rozkład statusów kontraktu

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.

4.2 Kwota kredytu vs. status kontraktu

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.

4.3 Typ klienta vs. ryzyko

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.

4.4 Facetowanie wg dnia tygodnia

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.

4.5 Liczba rat vs. status kontraktu

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.

4.6 Kwota kredytu vs. liczba rat

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.

4.7 Heatmapa korelacji zmiennych liczbowych

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.

4.8 Sankey diagram

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ą.

4.9 Status kontraktu vs. branża sprzedawcy

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.

4.10 Status kontraktu vs. kanał pozyskania klienta

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.

4.11 Najczęstsze powody odmowy aplikacji

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

4.12 Status kontraktu vs. typ umowy

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.

4.13 Godzina aplikacji vs. status kontraktu

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.

4.14 Cena towaru vs. status kontraktu i ubezpieczenie

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.

4.15 Kwota wnioskowana vs. typ klienta i kanał pozyskania

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.

5 Analiza Statystyczna

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.

5.1 Statystyki Opisowe - Zmienne Numeryczne

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:

  • Kwoty finansowe
    • AMT_ANNUITY – rata kredytu
    • AMT_APPLICATION – kwota wnioskowana
    • AMT_CREDIT – kwota przyznana
    • AMT_DOWN_PAYMENT – wkład własny
    • AMT_GOODS_PRICE – wartość towaru
    • RATE_DOWN_PAYMENT – procent wkładu własnego

Mają 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.

  • Parametry harmonogramu
    • CNT_PAYMENT – liczba rat

Dominują 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.

  • Zmienne czasowe (dni względem decyzji)
    • DAYS_DECISION - dni między złożeniem wniosku a decyzją kredytową
    • DAYS_FIRST_DRAWING - dni do pierwszego uruchomienia środków
    • DAYS_FIRST_DUE - dni do pierwszej raty
    • DAYS_LAST_DUE - dni do ostatniej raty
    • DAYS_TERMINATION - dni do zakończenia kontraktu

Zmienne 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.

5.2 Standaryzacja Zmiennych - Wartości Z

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:

  • Z > 0 - obserwacje powyżej średniej,
  • Z < 0 – obserwacje poniżej średniej,
  • |Z| > 2 - obserwacje dość nietypowe względem reszty danych.
Średnie wartości Z-score dla zmiennych w podziale na status kontraktu
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ę.

5.3 Analiza Zmiennych Kategorycznych (Testy Chi-kwadrat)

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.

Wyniki testów Chi-kwadrat: Zmienne kategoryczne vs Status Kontraktu
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 ***
Rozkład procentowy statusów dla CHANNEL_TYPE_GROUPED (% w wierszach)
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ę.

5.4 Porównanie kwot kredytu między statusami kontraktu

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.

5.5 Zależność między typem klienta a statusem kontraktu

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.

5.6 Liczba rat a status kontraktu

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.

5.7 Związek między kwotą aplikowaną a przyznaną

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.

5.8 Rozkład liczby rat w zatwierdzonych kontraktach

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

5.9 Udział typów umów w całym zbiorze

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.

5.10 Współczynniki modelu regresji: kwota kredytu ~ typ klienta + wkład własny

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).

5.11 Porównanie parametrów kredytowych względem statusu kontraktu (ANOVA)

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.

5.11.1 ANOVA Kwota wnioskowana vs status kontraktu

  • 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.

5.12 ANOVA Liczba rat vs status kontraktu

  • 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.

5.13 ANOVA Kwota raty vs status kontraktu

  • 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.

5.14 Wnioski końcowe z analizy statystycznej

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.

5.15 Podsumowanie strategiczne

  • 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.

6 Modelowanie Decyzji Kredytowej

W tej sekcji budujemy modele predykcyjne do odpowiadania na kluczowe pytania badawcze:

  1. Kiedy aplikacja jest zatwierdzona? (Approved vs wszystko inne)
  2. Co sprawia że aplikacja jest odmawiana? (Refused vs wszystko inne)
  3. Co powoduje że klient anuluje wniosek? (Canceled vs wszystko inne)
  4. Wpływ zmiennych finansowych vs socjoekonomicznych na zatwierdzenie

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).

6.1 Przygotowanie danych do modelowania

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

6.2 Model 1: Approved vs Refused+Canceled+Unused (Stepwise)

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

6.3 Model 2: Refused vs Approved+Canceled+Unused (Stepwise)

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

6.4 Model 3: Canceled vs Approved+Refused+Unused (Stepwise)

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

6.5 Model 4: Approved vs Reszta - WSZYSTKIE ZMIENNE

## 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'
Model 4: Zmienne w modelu
Zmienna

6.6 Model 5: Approved vs Reszta - TYLKO FINANSOWE

## 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'
Model 5: Zmienne w modelu
Zmienna
Model 5: Współczynniki (Approved - Tylko Finansowe)
term estimate OddsRatio p.value

6.7 Porównanie Mocy Predykcyjnej Modeli 4 i 5

## 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'

6.8 Porównanie Modeli Stepwise (1, 2, 3)

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

6.9 Model 6: Predykcja Problemów ze Spłatą (Opóźnienia)

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'
Model 6: Zmienne w modelu
Zmienna
Model 6: Współczynniki (Predykcja Problemów ze Spłatą)
term estimate OddsRatio p.value

7 Wnioski i Podsumowanie

TODO