Cel analizy

Przedmiotem analizy jest określenie wpływu poszczególnych zmiennych związanych z kredytobiorcą na “jakość” zaciąganych kredytów. Wśród zmiennych znajdują się zmienne jakościowe (w skali nominalnej i porządkowej) oraz zmienne ilościowe. Jakość kredytu określana jest poprzez zmienną nominalną - kodowaną jako jakość “dobry”, “zły”. Podstawą oceny zależności między zmiennymi kategorycznymi są tabele kontyngencji (tabele krzyżowe). Przedstawiają one wielowymiarowy rozkład częstości zmiennych. Do oceny zależności wykorzystano współczynnik V . Cramera (φ c). Opiera się na statystyce chi-kwadrat Pearsona. φ c jest miarą symetryczną: nie ma znaczenia, która zmienna zostanie umieszczona w kolumnach, a która w wierszach. Również kolejność wierszy/kolumn nie ma znaczenia, więc φ c może być używane z nominalnymi typami danych lub wyższymi.Współczynnik V Craméra waha się od 0 (odpowiada sytuacji braku powiązania między zmiennymi) do 1 (pełne powiązanie). Ze względu na to, że wartości chi-kwadrat mają tendencję do wzrostu wraz z liczbą komórek, im większa różnica między r (wierszami) i c (kolumnami), tym bardziej prawdopodobne jest, że φ c będzie dążyć do 1 bez silnych dowodów znaczącej zależności. Wczytanie danych do analizy:

load("C:/Users/Dell/Documents/dysk_wymienny/zajęcia/data_mining/credit.RData")

Wpływ salda konta czekowego na jakość kredytów

Stworzenie prostej tabli krzyżowej z wykorzystaniem funkcji table()

table(credit$konto_czekowe, credit$jakosc)
##        
##         dobry zly
##   < 0     139 135
##   >200     49  14
##   0-200   164 105
##   brak    348  46

Do zaprezentowania częstości zmiennych w postaci tabelarycznej i w postaci graficznej zostanie wykorzystany pakiet sjPlot. Poniżej przedstawiono rozkłady częstości “dobrych” i “złych” kredytów w zależności od salda konta czekowego

library(sjPlot)
library(ggplot2)



tab_xtab(var.row = credit$konto_czekowe, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
konto_czekowe jakosc Total
dobry zly
< 0 139
50.7 %
135
49.3 %
274
100 %
200
49
77.8 %
14
22.2 %
63
100 %
0-200 164
61 %
105
39 %
269
100 %
brak 348
88.3 %
46
11.7 %
394
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=123.721 · df=3 · Cramer’s V=0.352 · p=0.000
plot_xtab(credit$konto_czekowe, credit$jakosc, margin = "row", bar.pos = "stack", 
          coord.flip = TRUE, show.legend    =TRUE, show.n = TRUE, 
          show.summary = TRUE)

Jak wspomniano we wstępie wyniki obliczeń przeprowadzanych w oparciu o statystykę chi-kwadrat zależą od różnicy w liczbie wierszy i kolumn w tablicy kontyngencji. W związku z tym należy dążyć do tego, aby tablica miała formę zbliżoną do kwadratowej (równa liczba wierszy i kolumn). Ze względu na to, że zmienna jakość kredytu ma dwa poziomy należy zmniejszyć liczbę poziomów zmiennej saldo konta czekowego. Dalego zmodyfikowano dotychczasową skalę dla tej zmiennej wprowadzając 3 poziomy: brak konta, saldo ujemne (<0), saldo dodatnie (>0) - obejmujący stan konta od 0 do 200 i pow. 200. Wyniki dla zmodyfikowanej skali zmiennej saldo konta czekowego przedstawiono poniżej.

credit$konto_czekowe_mod <- ifelse(credit$konto_czekowe == "brak", "brak", 
                                   ifelse(credit$konto_czekowe == "< 0", "ujemne", "dodatnie"))

tab_xtab(var.row = credit$konto_czekowe_mod, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
konto_czekowe_mod jakosc Total
dobry zly
brak 348
88.3 %
46
11.7 %
394
100 %
dodatnie 213
64.2 %
119
35.8 %
332
100 %
ujemne 139
50.7 %
135
49.3 %
274
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=116.851 · df=2 · Cramer’s V=0.342 · p=0.000
plot_xtab(credit$konto_czekowe_mod, credit$jakosc, margin = "row",bar.pos = "stack",
          coord.flip = TRUE, show.legend    =TRUE, show.n = FALSE, 
          show.summary = TRUE) +
  theme_minimal() +
  theme(legend.position="top")

Wpływ historii kredytowej na jakość kredytów

Wpływ historii kredytowej na jakość kredytów przedstawia poniższa tabela i rysunek

table(credit$historia, credit$jakosc)
##                 
##                  dobry zly
##   brak              15  25
##   istniejace_spł   361 169
##   krytyczne        243  50
##   opoznienia        60  28
##   wszystkie_spł     21  28
tab_xtab(var.row = credit$historia, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
historia jakosc Total
dobry zly
brak 15
37.5 %
25
62.5 %
40
100 %
istniejace_spł 361
68.1 %
169
31.9 %
530
100 %
krytyczne 243
82.9 %
50
17.1 %
293
100 %
opoznienia 60
68.2 %
28
31.8 %
88
100 %
wszystkie_spł 21
42.9 %
28
57.1 %
49
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=61.691 · df=4 · Cramer’s V=0.248 · p=0.000
plot_xtab(credit$historia, credit$jakosc, margin = "row", bar.pos = "stack", 
          coord.flip = TRUE, show.legend    =TRUE, show.n = TRUE, 
          show.summary = TRUE)

Ze względu na to, że zmienna historia kredytowa posiada 5 poziomów należy dokonać jej modyfikacji, po to, aby tabela kontyngencji była bardziej zbliżona do kwadratowej. Przyjęto 2 poziomy dla nowej zmiennej historia kredytowa:

  • korzystna - w sytuacji,kiedy wszystkie wcześniejsze kredyty zostały spłacone, bądź aktualne kredyty spłacane są regularnie;
  • niekorzystna - w pozostałych sytuacjach, a więc kiedy klient nie posiada historii kredytowej, występują opóźnienia w spłacie kredytu, lub też historia została oceniona jako krytyczna.

Zależność jakości kredytów od zmodyfikowanej zmiennej historia kredytowa przedstawia tabela i wykres.

credit$historia_mod <- ifelse(credit$historia == "istniejace_spł" |
                                credit$historia == "wszystkie_spł", "korzystna", "niekorzystna")


tab_xtab(var.row = credit$historia_mod, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
historia_mod jakosc Total
dobry zly
korzystna 382
66 %
197
34 %
579
100 %
niekorzystna 318
75.5 %
103
24.5 %
421
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=10.155 · df=1 · φ=0.103 · p=0.001
plot_xtab(credit$historia_mod, credit$jakosc, margin = "row",bar.pos = "stack",
          coord.flip = TRUE, show.legend    =TRUE, show.n = FALSE, 
          show.summary = TRUE) +
  theme_minimal() +
  theme(legend.position="top")

Wpływ długości kredytu na jakość kredytów

Zmienna czas oznaczająca długość zaciągniętego kredytu jest zmienną wyrażoną w skali ilorazowej. Jednym ze sposobów określenia zależności między zmienną ilościową a jakościową jest “osłabienie” skali polegające na przekształceniu zmiennej wyrażonej w skali ilorazowej na zmienną jakościową wyrażoną w skali porządkowej. Z tego względu przekształcono zmienną czas na trzystopniową zmienną jakościową: długość kredytu do 1 roku (kredyty krótkookresowe), kredyt 1-2 letni (kredyty średniookresowe), kredyty pow 2 lat (długookresowe).

Wpływ historii kredytowej na jakość kredytów przedstawia poniższa tabela i rysunek

a<-c(1:12)
b<-c(13:24)

credit$czas_mod<- ifelse(credit$czas %in% a, "<1 rok",
                         ifelse(credit$czas %in% b, "1-2 lata", "pow. 2 lat"))
table(credit$czas_mod)
## 
##     <1 rok   1-2 lata pow. 2 lat 
##        359        411        230
tab_xtab(var.row = credit$czas_mod, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
czas_mod jakosc Total
dobry zly
<1 rok 283
78.8 %
76
21.2 %
359
100 %
1-2 lata 289
70.3 %
122
29.7 %
411
100 %
pow. 2 lat 128
55.7 %
102
44.3 %
230
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=35.895 · df=2 · Cramer’s V=0.189 · p=0.000
plot_xtab(credit$czas_mod, credit$jakosc, margin = "row",bar.pos = "stack",
          coord.flip = TRUE, show.legend    =TRUE, show.n = FALSE, 
          show.summary = TRUE) +
  theme_minimal() +
  theme(legend.position="top")

Wpływ płci na jakość kredytu

Ze względu na to, że zmienna płeć ma 2 poziomy nie ma konieczności dokonywania modyfikacji.

table(credit$plec, credit$jakosc)
##    
##     dobry zly
##   K   201 109
##   M   499 191
tab_xtab(var.row = credit$plec, var.col = credit$jakosc, show.row.prc = T, show.summary = T)
plec jakosc Total
dobry zly
K 201
64.8 %
109
35.2 %
310
100 %
M 499
72.3 %
191
27.7 %
690
100 %
Total 700
70 %
300
30 %
1000
100 %
χ2=5.349 · df=1 · φ=0.075 · p=0.021
plot_xtab(credit$plec, credit$jakosc, margin = "row", bar.pos = "stack", 
          coord.flip = TRUE, show.legend    =TRUE, show.n = TRUE, 
          show.summary = TRUE) +
  theme_minimal() +
  theme(legend.position="top")

Wpływ pozostałych zmiennych

Do samodzielnego obliczenia - określić zależność miedzy wybranymi zmiennymi a jakością kredytu. </div