1.Περιγραφή Dataset

1.1 Αιτιολόγηση επιλογής dataset

Το dataset που επιλέχθηκε ονομάζεται Loan Approval Dataset και προέρχεται από την πλατφόρμα Kaggle. Η πλατφόρμα Kaggle αποτελεί έναν από τους πιο γνωστούς διαδικτυακούς χώρους διάθεσης datasets για ανάλυση δεδομένων, μηχανική μάθηση και επιστημονική έρευνα.

Η επιλογή του συγκεκριμένου dataset έγινε επειδή σχετίζεται άμεσα με τον τομέα της επιχειρηματικής αναλυτικής (Business Analytics), και συγκεκριμένα με τον χρηματοοικονομικό τομέα και τη διαδικασία αξιολόγησης δανείων.

Οι τράπεζες και τα χρηματοπιστωτικά ιδρύματα χρησιμοποιούν αναλύσεις δεδομένων για να αξιολογήσουν τον κίνδυνο που σχετίζεται με την έγκριση ενός δανείου. Μέσα από την ανάλυση μεταβλητών όπως το εισόδημα, το πιστωτικό σκορ, η εργασιακή εμπειρία και το ποσό του δανείου, μπορούν να εκτιμήσουν την πιθανότητα αποπληρωμής του δανείου από τον πελάτη.

Η ανάλυση αυτού του dataset μπορεί να βοηθήσει στην κατανόηση των παραγόντων που επηρεάζουν την έγκριση ή την απόρριψη ενός δανείου και να συμβάλει στη βελτίωση της διαδικασίας λήψης επιχειρηματικών αποφάσεων στον τραπεζικό τομέα.

1.2 Πιθανά επιχειρηματικά ερωτήματα

Μέσα από την ανάλυση του dataset μπορούν να εξεταστούν διάφορα επιχειρηματικά ερωτήματα, όπως:

  • Υπάρχει σχέση μεταξύ του πιστωτικού σκορ και της πιθανότητας έγκρισης ενός δανείου;
  • Πώς επηρεάζει το εισόδημα του αιτούντος το ποσό του δανείου που ζητείται;
  • Υπάρχει σχέση μεταξύ της επαγγελματικής εμπειρίας και της έγκρισης του δανείου;
  • Επηρεάζει το ποσοστό δανείου προς εισόδημα την πιθανότητα έγκρισης;
  • Υπάρχουν συγκεκριμένες κατηγορίες δανείων που εμφανίζουν μεγαλύτερη πιθανότητα έγκρισης;

Η απάντηση σε αυτά τα ερωτήματα μπορεί να βοηθήσει τα χρηματοπιστωτικά ιδρύματα να βελτιώσουν τις διαδικασίες αξιολόγησης αιτήσεων δανείων και να μειώσουν τον πιστωτικό κίνδυνο.

1.3 Περιγραφή μεταβλητών

Υπολογισμός τύπου και εύρους τιμών των μεταβλητών

Για την κατανόηση της δομής του dataset πραγματοποιήθηκε αρχικά διερεύνηση των τύπων των μεταβλητών καθώς και του εύρους τιμών των βασικών αριθμητικών μεταβλητών.

Για τον εντοπισμό του τύπου κάθε μεταβλητής χρησιμοποιήθηκε η συνάρτηση str() στο R, η οποία παρουσιάζει τη δομή του dataset, τον αριθμό των παρατηρήσεων και τον τύπο δεδομένων κάθε μεταβλητής (numeric, integer, character).

Στη συνέχεια, για τον υπολογισμό του εύρους τιμών των αριθμητικών μεταβλητών χρησιμοποιήθηκε η συνάρτηση range(), η οποία εμφανίζει τη μικρότερη και τη μεγαλύτερη τιμή κάθε μεταβλητής.

Ο κώδικας που χρησιμοποιήθηκε για τους παραπάνω υπολογισμούς είναι ο εξής:

loan_data <- read.csv("loan_data.csv")
# Εμφάνιση της δομής του dataset και του τύπου των μεταβλητών
str(loan_data)
## 'data.frame':    45000 obs. of  14 variables:
##  $ person_age                    : num  22 21 25 23 24 21 26 24 24 21 ...
##  $ person_gender                 : chr  "female" "female" "female" "female" ...
##  $ person_education              : chr  "Master" "High School" "High School" "Bachelor" ...
##  $ person_income                 : num  71948 12282 12438 79753 66135 ...
##  $ person_emp_exp                : int  0 0 3 0 1 0 1 5 3 0 ...
##  $ person_home_ownership         : chr  "RENT" "OWN" "MORTGAGE" "RENT" ...
##  $ loan_amnt                     : num  35000 1000 5500 35000 35000 2500 35000 35000 35000 1600 ...
##  $ loan_intent                   : chr  "PERSONAL" "EDUCATION" "MEDICAL" "MEDICAL" ...
##  $ loan_int_rate                 : num  16 11.1 12.9 15.2 14.3 ...
##  $ loan_percent_income           : num  0.49 0.08 0.44 0.44 0.53 0.19 0.37 0.37 0.35 0.13 ...
##  $ cb_person_cred_hist_length    : num  3 2 3 2 4 2 3 4 2 3 ...
##  $ credit_score                  : int  561 504 635 675 586 532 701 585 544 640 ...
##  $ previous_loan_defaults_on_file: chr  "No" "Yes" "No" "No" ...
##  $ loan_status                   : int  1 0 1 1 1 1 1 1 1 1 ...
# Εύρος ηλικίας
range(loan_data$person_age)
## [1]  20 144
# Εύρος εισοδήματος
range(loan_data$person_income)
## [1]    8000 7200766
# Εύρος επαγγελματικής εμπειρίας
range(loan_data$person_emp_exp)
## [1]   0 125
# Εύρος ποσού δανείου
range(loan_data$loan_amnt)
## [1]   500 35000
# Εύρος επιτοκίου
range(loan_data$loan_int_rate)
## [1]  5.42 20.00
# Ποσοστό δανείου προς εισόδημα
range(loan_data$loan_percent_income)
## [1] 0.00 0.66
# Εύρος credit score
range(loan_data$credit_score)
## [1] 390 850

Το dataset περιλαμβάνει τις παρακάτω βασικές μεταβλητές:

  • person_age: Αριθμητική μεταβλητή (numeric) που δείχνει την ηλικία του αιτούντος σε έτη. Το εύρος των τιμών κυμαίνεται από 20 έως 144 έτη.

  • person_gender: Κατηγορική μεταβλητή (categorical) που δείχνει το φύλο του αιτούντος (female / male).

  • person_education: Κατηγορική μεταβλητή που δείχνει το επίπεδο εκπαίδευσης του αιτούντος (High School, Bachelor, Master).

  • person_income: Αριθμητική μεταβλητή που δείχνει το ετήσιο εισόδημα του αιτούντος. Το εύρος των τιμών κυμαίνεται από 8.000 έως 7.200.766 χρηματικές μονάδες.

  • person_emp_exp: Αριθμητική μεταβλητή που δείχνει τα χρόνια επαγγελματικής εμπειρίας του αιτούντος. Το εύρος των τιμών είναι από 0 έως 125 έτη εμπειρίας.

  • person_home_ownership: Κατηγορική μεταβλητή που περιγράφει την κατάσταση κατοικίας του αιτούντος (RENT, OWN, MORTGAGE).

  • loan_amnt: Αριθμητική μεταβλητή που δείχνει το ποσό του δανείου που ζητείται. Το εύρος των τιμών κυμαίνεται από 500 έως 35.000.

  • loan_intent: Κατηγορική μεταβλητή που περιγράφει τον σκοπό του δανείου (PERSONAL, EDUCATION, MEDICAL).

  • loan_int_rate: Αριθμητική μεταβλητή που δείχνει το επιτόκιο του δανείου σε ποσοστό (%). Το εύρος των τιμών κυμαίνεται από 5.42% έως 20.00*.

  • loan_percent_income: Αριθμητική μεταβλητή που δείχνει το ποσοστό του εισοδήματος που αντιστοιχεί στο ποσό του δανείου. Το εύρος των τιμών κυμαίνεται από 0.00 έως 0.66.

  • cb_person_cred_hist_length: Αριθμητική μεταβλητή που δείχνει τη διάρκεια του πιστωτικού ιστορικού του ατόμου σε έτη.

  • credit_score: Αριθμητική μεταβλητή που δείχνει το πιστωτικό σκορ του αιτούντος. Το εύρος των τιμών κυμαίνεται από 390 έως 850.

  • previous_loan_defaults_on_file: Κατηγορική μεταβλητή που δείχνει αν ο αιτών είχε στο παρελθόν καθυστερήσεις ή αθετήσεις δανείων (Yes / No).

  • loan_status: Δυαδική μεταβλητή που δείχνει το αποτέλεσμα της αίτησης δανείου, όπου 1 = έγκριση δανείου και 0 = μη έγκριση δανείου.

2.Υπολογισμός και παρουσίαση περιγραφικών στατιστικών

Για την καλύτερη κατανόηση των δεδομένων του dataset πραγματοποιήθηκε υπολογισμός βασικών περιγραφικών στατιστικών μέτρων. Τα περιγραφικά στατιστικά βοηθούν στην συνοπτική παρουσίαση των δεδομένων και στην κατανόηση της κατανομής των μεταβλητών.

Αρχικά υπολογίστηκαν τα μέτρα κεντρικής τάσης, τα οποία δείχνουν την κεντρική ή τυπική τιμή μιας μεταβλητής. Συγκεκριμένα υπολογίστηκαν ο μέσος όρος (mean), η διάμεσος (median) και η επικρατούσα τιμή (mode).

Στη συνέχεια υπολογίστηκαν τα μέτρα διασποράς, τα οποία δείχνουν πόσο διαφέρουν οι τιμές μιας μεταβλητής μεταξύ τους. Τα μέτρα αυτά περιλαμβάνουν την τυπική απόκλιση (standard deviation), τη διακύμανση (variance) και το εύρος τιμών (range).

Για τον υπολογισμό των παραπάνω χρησιμοποιήθηκαν οι ακόλουθες εντολές στη γλώσσα R.

2.1 Υπολογισμός Μέτρων Κεντρικής Τάσης

# Μέσος όρος και διάμεσος

mean(loan_data$person_age)
## [1] 27.76418
median(loan_data$person_age)
## [1] 26
mean(loan_data$person_income)
## [1] 80319.05
median(loan_data$person_income)
## [1] 67048
mean(loan_data$loan_amnt)
## [1] 9583.158
median(loan_data$loan_amnt)
## [1] 8000
mean(loan_data$credit_score)
## [1] 632.6088
median(loan_data$credit_score)
## [1] 640
# Συνάρτηση για υπολογισμό επικρατούσας τιμής (mode)
getmode <- function(v) {
  uniqv <- unique(v)
  uniqv[which.max(tabulate(match(v, uniqv)))]
}

# Υπολογισμός mode
getmode(loan_data$person_age)
## [1] 23
getmode(loan_data$person_income)
## [1] 8000
getmode(loan_data$loan_amnt)
## [1] 10000
getmode(loan_data$credit_score)
## [1] 658

2.2 Υπολογισμός Μέτρων Διασποράς

# Τυπική απόκλιση, διακύμανση και εύρος

sd(loan_data$person_age)
## [1] 6.045108
var(loan_data$person_age)
## [1] 36.54333
range(loan_data$person_age)
## [1]  20 144
sd(loan_data$person_income)
## [1] 80422.5
var(loan_data$person_income)
## [1] 6467778286
range(loan_data$person_income)
## [1]    8000 7200766
sd(loan_data$loan_amnt)
## [1] 6314.887
var(loan_data$loan_amnt)
## [1] 39877794
range(loan_data$loan_amnt)
## [1]   500 35000
sd(loan_data$credit_score)
## [1] 50.43587
var(loan_data$credit_score)
## [1] 2543.776
range(loan_data$credit_score)
## [1] 390 850

2.3 Παρουσίαση και ερμηνεία αποτελεσμάτων

Από τον υπολογισμό των μέτρων κεντρικής τάσης παρατηρούμε ότι η μέση ηλικία των αιτούντων είναι περίπου 27,76 έτη, ενώ η διάμεσος ηλικία είναι 26 έτη. Η επικρατούσα ηλικία είναι τα 23 έτη, γεγονός που δείχνει ότι ένα σημαντικό μέρος των αιτούντων είναι σχετικά νέοι.

Όσον αφορά το εισόδημα, ο μέσος όρος είναι περίπου 80.319, ενώ η διάμεσος είναι 67.048. Η διαφορά μεταξύ μέσου όρου και διαμέσου δείχνει ότι υπάρχουν ορισμένες πολύ υψηλές τιμές εισοδήματος που επηρεάζουν τον μέσο όρο. Η επικρατούσα τιμή εισοδήματος είναι 8.000.

Για το ποσό του δανείου, ο μέσος όρος είναι περίπου 9.583, ενώ η διάμεσος είναι 8.000. Η επικρατούσα τιμή είναι 10.000, γεγονός που δείχνει ότι αυτό είναι ένα από τα πιο συχνά ποσά δανείου στο dataset.

Το μέσο πιστωτικό σκορ είναι περίπου 632,6 με διάμεσο 640 και επικρατούσα τιμή 658, γεγονός που δείχνει ότι οι περισσότεροι αιτούντες έχουν σχετικά μέτριο έως καλό πιστωτικό ιστορικό.

Όσον αφορά τα μέτρα διασποράς, η τυπική απόκλιση της ηλικίας είναι περίπου 6 έτη, γεγονός που δείχνει ότι οι ηλικίες των αιτούντων δεν παρουσιάζουν πολύ μεγάλη διακύμανση. Αντίθετα, το εισόδημα παρουσιάζει μεγάλη διασπορά, όπως φαίνεται από την υψηλή τυπική απόκλιση και το μεγάλο εύρος τιμών (από 8.000 έως 7.200.766).

Το ποσό του δανείου κυμαίνεται από 500 έως 35.000, ενώ το πιστωτικό σκορ κυμαίνεται από 390 έως 850, που είναι το τυπικό εύρος της κλίμακας πιστοληπτικής αξιολόγησης.

3.Διερεύνηση συσχετίσεων μεταξύ αριθμητικών μεταβλητών

Για τη διερεύνηση των πιθανών σχέσεων μεταξύ των αριθμητικών μεταβλητών του dataset υπολογίστηκαν οι συντελεστές συσχέτισης.

Ο συντελεστής συσχέτισης δείχνει τον βαθμό και την κατεύθυνση της γραμμικής σχέσης μεταξύ δύο μεταβλητών. Οι τιμές του κυμαίνονται από -1 έως 1. Τιμές κοντά στο 1 υποδηλώνουν ισχυρή θετική συσχέτιση, τιμές κοντά στο -1 ισχυρή αρνητική συσχέτιση, ενώ τιμές κοντά στο 0 δείχνουν ότι δεν υπάρχει σημαντική γραμμική σχέση μεταξύ των μεταβλητών.

Για τον υπολογισμό των συσχετίσεων χρησιμοποιήθηκε η συνάρτηση cor() της γλώσσας R.

Επιλογή αριθμητικών μεταβλητών

numeric_variables <- loan_data[, c("person_age",
                                   "person_income",
                                   "loan_amnt",
                                   "loan_int_rate",
                                   "loan_percent_income",
                                   "credit_score")]

Υπολογισμός πίνακα συσχέτισης

cor(numeric_variables)
##                      person_age person_income   loan_amnt loan_int_rate
## person_age           1.00000000   0.193697781 0.050749541   0.013401640
## person_income        0.19369778   1.000000000 0.242290131   0.001509828
## loan_amnt            0.05074954   0.242290131 1.000000000   0.146093082
## loan_int_rate        0.01340164   0.001509828 0.146093082   1.000000000
## loan_percent_income -0.04329864  -0.234176548 0.593011449   0.125209488
## credit_score         0.17843247   0.035919225 0.009074282   0.011497752
##                     loan_percent_income credit_score
## person_age                  -0.04329864  0.178432470
## person_income               -0.23417655  0.035919225
## loan_amnt                    0.59301145  0.009074282
## loan_int_rate                0.12520949  0.011497752
## loan_percent_income          1.00000000 -0.011483096
## credit_score                -0.01148310  1.000000000

Ερμηνεία αποτελεσμάτων

Από τον πίνακα συσχέτισης μπορούμε να παρατηρήσουμε τις σχέσεις μεταξύ των βασικών αριθμητικών μεταβλητών του dataset. Οι περισσότερες τιμές συσχέτισης βρίσκονται κοντά στο μηδέν, γεγονός που δείχνει ότι δεν υπάρχει ισχυρή γραμμική σχέση μεταξύ των περισσότερων μεταβλητών.

Η μεγαλύτερη θετική συσχέτιση παρατηρείται μεταξύ του ποσού του δανείου (loan_amnt) και του ποσοστού δανείου σε σχέση με το εισόδημα (loan_percent_income), με τιμή περίπου 0.59. Αυτό δείχνει ότι όσο αυξάνεται το ποσό του δανείου, αυξάνεται και το ποσοστό του δανείου σε σχέση με το εισόδημα του αιτούντος.

Παρατηρείται επίσης μια σχετικά μικρή θετική συσχέτιση μεταξύ του εισοδήματος (person_income) και του ποσού του δανείου (loan_amnt), με τιμή περίπου 0.24. Αυτό υποδηλώνει ότι άτομα με υψηλότερο εισόδημα τείνουν να ζητούν ελαφρώς μεγαλύτερα ποσά δανείων.

Επιπλέον, υπάρχει μια μικρή αρνητική συσχέτιση μεταξύ του εισοδήματος (person_income) και του ποσοστού δανείου προς εισόδημα (loan_percent_income), με τιμή περίπου -0.23. Αυτό σημαίνει ότι όσο αυξάνεται το εισόδημα, το ποσοστό του δανείου σε σχέση με το εισόδημα τείνει να μειώνεται.

Τέλος, το πιστωτικό σκορ (credit_score) φαίνεται να έχει πολύ μικρή συσχέτιση με τις περισσότερες από τις μεταβλητές, γεγονός που δείχνει ότι στο συγκεκριμένο dataset δεν παρουσιάζει ισχυρή γραμμική σχέση με το ποσό του δανείου ή το εισόδημα.

4.Οπτικοποίηση Δεδομένων

Scatterplot

Για τη δημιουργία του διαγράμματος χρησιμοποιήθηκε τυχαίο δείγμα 2000 παρατηρήσεων από το αρχικό σύνολο δεδομένων, με χρήση της συνάρτησης sample() και του set.seed(1) ώστε να μειωθεί η υπερφόρτωση του γραφήματος από μεγάλο αριθμό σημείων και να γίνει πιο ευανάγνωστη η οπτικοποίηση της σχέσης μεταξύ του credit score και του ποσού δανείου.

set.seed(1)
library(ggplot2)
sample_data <- loan_data[sample(nrow(loan_data), 1000), ]

ggplot(data = sample_data, aes(x = credit_score, y = loan_amnt)) +
  geom_point(alpha = 0.4, color = "darkgreen") +
  labs(
    title = "Σχέση Credit Score και Ποσό Δανείου",
    x = "Credit Score",
    y = "Ποσό Δανείου"
  ) +
  theme_minimal()

Το διάγραμμα διασποράς παρουσιάζει τη σχέση μεταξύ του credit score και του ποσού του δανείου. Παρατηρείται ότι τα περισσότερα δεδομένα συγκεντρώνονται σε credit score περίπου από 550 έως 700, ενώ τα ποσά δανείων εμφανίζουν μεγάλη διακύμανση, από χαμηλά ποσά έως και πάνω από 30.000. Η κατανομή των σημείων στο γράφημα δεν δείχνει κάποια σαφή γραμμική τάση μεταξύ των δύο μεταβλητών. Αυτό υποδηλώνει ότι το credit score από μόνο του δεν φαίνεται να καθορίζει άμεσα το ποσό του δανείου που λαμβάνει ένας δανειολήπτης.

Boxplot

Ο κώδικας που χρησιμοποιήθηκε για τη δημιουργία του διαγράμματος Boxplot είναι ο εξής:

ggplot(data = loan_data, aes(x = factor(loan_status), y = credit_score, fill = factor(loan_status))) +
  geom_boxplot(alpha = 0.7) +
  labs(
    title = "Κατανομή Credit Score ανά Loan Status",
    x = "Loan Status",
    y = "Credit Score",
    fill = "Loan Status"
  ) +
  theme_bw()

Το boxplot παρουσιάζει την κατανομή του Credit Score σε σχέση με το Loan Status. Στον οριζόντιο άξονα εμφανίζονται οι δύο κατηγορίες της μεταβλητής loan status (0 = μη έγκριση δανείου, 1 = έγκριση δανείου), ενώ στον κάθετο άξονα απεικονίζονται οι τιμές του credit score. Παρατηρείται ότι η διάμεσος του credit score είναι παρόμοια και στις δύο κατηγορίες, περίπου γύρω στις 640 μονάδες, γεγονός που δείχνει ότι η κεντρική τιμή των δύο ομάδων είναι σχεδόν ίδια. Επιπλέον, το μεσαίο 50% των τιμών (το κουτί του boxplot) συγκεντρώνεται περίπου μεταξύ 600 και 670 μονάδων, υποδηλώνοντας ότι οι περισσότερες παρατηρήσεις βρίσκονται σε αυτό το εύρος τιμών.

Τα whiskers του διαγράμματος δείχνουν ότι οι περισσότερες τιμές του credit score εκτείνονται περίπου από 500 έως 730, ενώ έξω από αυτό το εύρος εμφανίζονται αρκετές ακραίες τιμές (outliers), κυρίως σε χαμηλότερα credit scores αλλά και σε ορισμένες υψηλότερες τιμές. Οι outliers αντιπροσωπεύουν περιπτώσεις δανειοληπτών με ιδιαίτερα χαμηλό ή ιδιαίτερα υψηλό πιστωτικό σκορ σε σχέση με το μεγαλύτερο μέρος των δεδομένων.

Συνολικά, το διάγραμμα υποδηλώνει ότι η κατανομή του credit score είναι αρκετά παρόμοια μεταξύ των δύο ομάδων, αν και τα άτομα με έγκριση δανείου φαίνεται να έχουν ελαφρώς υψηλότερες τιμές credit score, γεγονός που μπορεί να υποδηλώνει ότι ένα υψηλότερο πιστωτικό σκορ σχετίζεται σε κάποιο βαθμό με μεγαλύτερη πιθανότητα έγκρισης δανείου.

Histogram

Ο κώδικας που χρησιμοποιήθηκε για τη δημιουργία του Ιστογράμματος είναι ο εξής:

ggplot(data = loan_data, aes(x = credit_score)) +
  geom_histogram(binwidth = 20, fill = "#3498DB", color = "white") +
  labs(
    title = "Κατανομή Credit Score",
    x = "Credit Score",
    y = "Συχνότητα"
  ) +
  theme_minimal()

Το ιστόγραμμα παρουσιάζει την κατανομή της μεταβλητής Credit Score στο dataset. Παρατηρείται ότι οι περισσότερες τιμές συγκεντρώνονται περίπου μεταξύ 600 και 700, με το μεγαλύτερο πλήθος παρατηρήσεων γύρω από τη μέση περιοχή αυτών των τιμών, όπου οι μπάρες φτάνουν περίπου στις 6000–7000 παρατηρήσεις. Αυτό δείχνει ότι οι περισσότεροι δανειολήπτες έχουν μέτριο προς σχετικά υψηλό credit score, ενώ πολύ χαμηλές ή πολύ υψηλές τιμές εμφανίζονται σπανιότερα. Το διάγραμμα βοηθά στην κατανόηση της συνολικής κατανομής και της συγκέντρωσης των τιμών της συγκεκριμένης μεταβλητής.

Bar Chart

Ο κώδικας που χρησιμοποιήθηκε για τη δημιουργία του Ραβδογράμματος είναι ο εξής:

ggplot(data = loan_data, aes(x = factor(loan_status))) +
  geom_bar(fill = "steelblue", color = "white") +
  labs(
    title = "Κατανομή Loan Status",
    x = "Loan Status (0 = Μη έγκριση, 1 = Έγκριση)",
    y = "Συχνότητα"
  )

Το ραβδόγραμμα παρουσιάζει την κατανομή της μεταβλητής Loan Status στο dataset. Η κατηγορία 0 (μη έγκριση δανείου) εμφανίζεται πολύ συχνότερα από την κατηγορία 1 (έγκριση δανείου). Αυτό σημαίνει ότι στο σύνολο των παρατηρήσεων υπάρχουν σημαντικά περισσότερες περιπτώσεις όπου το δάνειο δεν εγκρίθηκε σε σύγκριση με τις περιπτώσεις όπου εγκρίθηκε. Το διάγραμμα επιτρέπει έτσι την εύκολη σύγκριση της συχνότητας των δύο κατηγοριών.