Το dataset που επιλέχθηκε ονομάζεται Loan Approval Dataset και προέρχεται από την πλατφόρμα Kaggle. Η πλατφόρμα Kaggle αποτελεί έναν από τους πιο γνωστούς διαδικτυακούς χώρους διάθεσης datasets για ανάλυση δεδομένων, μηχανική μάθηση και επιστημονική έρευνα.
Η επιλογή του συγκεκριμένου dataset έγινε επειδή σχετίζεται άμεσα με τον τομέα της επιχειρηματικής αναλυτικής (Business Analytics), και συγκεκριμένα με τον χρηματοοικονομικό τομέα και τη διαδικασία αξιολόγησης δανείων.
Οι τράπεζες και τα χρηματοπιστωτικά ιδρύματα χρησιμοποιούν αναλύσεις δεδομένων για να αξιολογήσουν τον κίνδυνο που σχετίζεται με την έγκριση ενός δανείου. Μέσα από την ανάλυση μεταβλητών όπως το εισόδημα, το πιστωτικό σκορ, η εργασιακή εμπειρία και το ποσό του δανείου, μπορούν να εκτιμήσουν την πιθανότητα αποπληρωμής του δανείου από τον πελάτη.
Η ανάλυση αυτού του dataset μπορεί να βοηθήσει στην κατανόηση των παραγόντων που επηρεάζουν την έγκριση ή την απόρριψη ενός δανείου και να συμβάλει στη βελτίωση της διαδικασίας λήψης επιχειρηματικών αποφάσεων στον τραπεζικό τομέα.
Για την κατανόηση της δομής του 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 = μη
έγκριση δανείου.
Για τη δημιουργία του διαγράμματος χρησιμοποιήθηκε τυχαίο δείγμα 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 είναι ο εξής:
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, γεγονός που μπορεί να υποδηλώνει ότι ένα υψηλότερο πιστωτικό σκορ σχετίζεται σε κάποιο βαθμό με μεγαλύτερη πιθανότητα έγκρισης δανείου.
Ο κώδικας που χρησιμοποιήθηκε για τη δημιουργία του Ιστογράμματος είναι ο εξής:
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, ενώ πολύ χαμηλές ή πολύ υψηλές τιμές εμφανίζονται σπανιότερα. Το διάγραμμα βοηθά στην κατανόηση της συνολικής κατανομής και της συγκέντρωσης των τιμών της συγκεκριμένης μεταβλητής.
Ο κώδικας που χρησιμοποιήθηκε για τη δημιουργία του Ραβδογράμματος είναι ο εξής:
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 (έγκριση δανείου). Αυτό σημαίνει ότι στο
σύνολο των παρατηρήσεων υπάρχουν σημαντικά περισσότερες περιπτώσεις όπου
το δάνειο δεν εγκρίθηκε σε σύγκριση με τις περιπτώσεις όπου εγκρίθηκε.
Το διάγραμμα επιτρέπει έτσι την εύκολη σύγκριση της συχνότητας των δύο
κατηγοριών.
# load libraries
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(broom)
model1 <- lm(loan_amnt ~ credit_score, data = loan_data)
summary(model1)
##
## Call:
## lm(formula = loan_amnt ~ credit_score, data = loan_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9178 -4614 -1572 2627 25602
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8864.4147 374.5611 23.666 <2e-16 ***
## credit_score 1.1362 0.5902 1.925 0.0542 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6315 on 44998 degrees of freedom
## Multiple R-squared: 8.234e-05, Adjusted R-squared: 6.012e-05
## F-statistic: 3.706 on 1 and 44998 DF, p-value: 0.05424
Για την εξέταση της σχέσης μεταξύ του ποσού του δανείου και του πιστωτικού σκορ δημιουργήθηκε ένα μοντέλο απλής γραμμικής παλινδρόμησης χρησιμοποιώντας τη συνάρτηση lm() στην R.
Το μοντέλο έχει τη μορφή:
loan_amnt = β0 + β1 * credit_score
Από τα αποτελέσματα του μοντέλου παρατηρείται ότι ο συντελεστής της μεταβλητής credit_score είναι περίπου 1.13, γεγονός που σημαίνει ότι μια αύξηση κατά μία μονάδα στο credit score συνδέεται με αύξηση περίπου 1.13 μονάδων στο ποσό του δανείου.
Ωστόσο, το p-value της μεταβλητής είναι περίπου 0.054, το οποίο είναι μεγαλύτερο από το επίπεδο σημαντικότητας 0.05. Αυτό υποδηλώνει ότι η μεταβλητή δεν είναι στατιστικά σημαντική για την πρόβλεψη του ποσού του δανείου.
Επιπλέον, το R-squared του μοντέλου είναι πολύ μικρό, γεγονός που δείχνει ότι το credit score εξηγεί ένα πολύ μικρό ποσοστό της μεταβλητότητας του ποσού του δανείου.
ggplot(loan_data, aes(x = credit_score, y = loan_amnt)) +
geom_point(alpha = 0.2) +
geom_smooth(method = "lm", color = "red") +
labs(
title = "Σχέση Credit Score και Ποσού Δανείου",
x = "Credit Score",
y = "Loan Amount"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Το παραπάνω διάγραμμα διασποράς παρουσιάζει τη σχέση μεταξύ του credit score και του ποσού δανείου (loan amount). Στον οριζόντιο άξονα εμφανίζονται οι τιμές του πιστωτικού σκορ των αιτούντων, ενώ στον κάθετο άξονα απεικονίζεται το ποσό του δανείου που ζητείται.
Κάθε σημείο στο γράφημα αντιπροσωπεύει μία παρατήρηση του dataset, δηλαδή έναν αιτούντα δανείου. Η κόκκινη γραμμή στο διάγραμμα αποτελεί τη γραμμή γραμμικής παλινδρόμησης (linear regression line), η οποία προκύπτει από το μοντέλο γραμμικής παλινδρόμησης και δείχνει τη γενική τάση της σχέσης μεταξύ των δύο μεταβλητών.
Παρατηρείται ότι τα δεδομένα εμφανίζουν μεγάλη διασπορά, καθώς για σχεδόν κάθε τιμή του credit score υπάρχουν πολλά διαφορετικά ποσά δανείου. Η γραμμή παλινδρόμησης εμφανίζεται σχεδόν οριζόντια, γεγονός που υποδηλώνει ότι η μεταβολή του credit score δεν επηρεάζει σημαντικά το ποσό του δανείου.
Το αποτέλεσμα αυτό συμφωνεί και με τα στατιστικά αποτελέσματα του μοντέλου γραμμικής παλινδρόμησης, όπου ο συντελεστής της μεταβλητής credit_score είναι μικρός και το R-squared του μοντέλου είναι πολύ χαμηλό. Συνεπώς, το credit score από μόνο του δεν φαίνεται να εξηγεί σε σημαντικό βαθμό τη μεταβολή του ποσού του δανείου στο συγκεκριμένο dataset.
model2 <- lm(loan_amnt ~ person_income + loan_percent_income + credit_score,
data = loan_data)
summary(model2)
##
## Call:
## lm(formula = loan_amnt ~ person_income + loan_percent_income +
## credit_score, data = loan_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -223121 -2013 -795 1630 20233
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.117e+02 2.668e+02 -0.419 0.675
## person_income 3.166e-02 2.679e-04 118.156 <2e-16 ***
## loan_percent_income 4.978e+04 2.469e+02 201.580 <2e-16 ***
## credit_score 3.113e-01 4.154e-01 0.749 0.454
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4441 on 44996 degrees of freedom
## Multiple R-squared: 0.5054, Adjusted R-squared: 0.5053
## F-statistic: 1.532e+04 on 3 and 44996 DF, p-value: < 2.2e-16
Για την καλύτερη κατανόηση των παραγόντων που επηρεάζουν το ποσό του δανείου δημιουργήθηκε ένα μοντέλο πολλαπλής γραμμικής παλινδρόμησης. Στο μοντέλο χρησιμοποιήθηκαν ως ανεξάρτητες μεταβλητές το person_income, το loan_percent_income και το credit_score, ενώ ως εξαρτημένη μεταβλητή χρησιμοποιήθηκε το loan_amnt.
Από τα αποτελέσματα του μοντέλου παρατηρείται ότι οι μεταβλητές person_income και loan_percent_income εμφανίζονται στατιστικά σημαντικές, καθώς τα p-values τους είναι μικρότερα από το επίπεδο σημαντικότητας 0.05. Αυτό υποδηλώνει ότι το εισόδημα του αιτούντος καθώς και το ποσοστό του εισοδήματος που αντιστοιχεί στο δάνειο επηρεάζουν σημαντικά το ποσό του δανείου. Συγκεκριμένα, όσο αυξάνεται το εισόδημα του αιτούντος, τόσο αυξάνεται και το ποσό του δανείου που μπορεί να ζητήσει. Παράλληλα, η μεταβλητή loan_percent_income φαίνεται να έχει ισχυρή επίδραση στο ποσό του δανείου.
Αντίθετα, η μεταβλητή credit_score δεν εμφανίζεται στατιστικά σημαντική στο συγκεκριμένο μοντέλο, καθώς το p-value της είναι μεγαλύτερο από 0.05. Αυτό σημαίνει ότι το πιστωτικό σκορ δεν φαίνεται να επηρεάζει σημαντικά το ποσό του δανείου όταν λαμβάνονται υπόψη και οι υπόλοιπες μεταβλητές του μοντέλου.
Επιπλέον, το Multiple R-squared του μοντέλου είναι περίπου 0.505, γεγονός που σημαίνει ότι το μοντέλο εξηγεί περίπου το 50% της μεταβλητότητας του ποσού του δανείου. Το αποτέλεσμα αυτό δείχνει ότι το μοντέλο παρουσιάζει αρκετά καλή ερμηνευτική ικανότητα. Σε σύγκριση με τα προηγούμενα μοντέλα, το συγκεκριμένο μοντέλο εμφανίζει σημαντικά μεγαλύτερο R-squared, γεγονός που υποδηλώνει ότι η χρήση περισσότερων και πιο κατάλληλων μεταβλητών βελτιώνει την ικανότητα του μοντέλου να εξηγεί τα δεδομένα.
Συνολικά, το μοντέλο πολλαπλής γραμμικής παλινδρόμησης δείχνει ότι το
εισόδημα και το ποσοστό του εισοδήματος που σχετίζεται με το δάνειο
αποτελούν σημαντικούς παράγοντες για τον προσδιορισμό του ποσού του
δανείου.
ggplot(loan_data, aes(x = loan_percent_income, y = loan_amnt)) +
geom_point(alpha = 0.3) +
geom_smooth(method = "lm", color = "red", se = FALSE) +
labs(
title = "Σχέση Loan Percent Income και Loan Amount",
x = "Loan Percent Income",
y = "Loan Amount"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Το παραπάνω διάγραμμα διασποράς παρουσιάζει τη σχέση μεταξύ της μεταβλητής loan_percent_income (ποσοστό του εισοδήματος που αντιστοιχεί στο δάνειο) και της μεταβλητής loan_amnt (ποσό δανείου). Κάθε σημείο στο διάγραμμα αντιπροσωπεύει μία παρατήρηση από το σύνολο δεδομένων.
Παρατηρούμε μέσω της γραμμής γραμμικής παλινδρόμησης ότι υπάρχει θετική γραμμική σχέση, καθώς όσο αυξάνεται το ποσοστό του εισοδήματος που κατευθύνεται στο δάνειο, τόσο αυξάνεται και το ποσό του δανείου.
Ωστόσο, τα σημεία εμφανίζουν αρκετή διασπορά γύρω από τη γραμμή παλινδρόμησης, γεγονός που υποδηλώνει ότι και άλλοι παράγοντες πιθανόν επηρεάζουν το ποσό του δανείου.
library(scales)
ggplot(loan_data, aes(x = person_income, y = loan_amnt)) +
geom_point(alpha = 0.2) +
geom_smooth(method = "lm", color = "red") +
scale_x_log10() +
labs(
title = "Σχέση Loan Income και Loan Amount",
x = "Loan Income",
y = "Loan Amount"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Το παραπάνω διάγραμμα διασποράς (scatterplot) παρουσιάζει τη σχέση μεταξύ του ετήσιου εισοδήματος του ατόμου (person_income) και του ποσού δανείου (loan_amnt). Κάθε σημείο στο γράφημα αντιπροσωπεύει έναν δανειολήπτη από το σύνολο δεδομένων.
Παρατηρείται ότι όσο αυξάνεται το εισόδημα, γενικά αυξάνεται και το ποσό δανείου που λαμβάνει το άτομο. Αυτό φαίνεται και από την κόκκινη γραμμή παλινδρόμησης, η οποία έχει θετική κλίση και δείχνει μια θετική γραμμική σχέση μεταξύ των δύο μεταβλητών.
Ωστόσο, τα σημεία είναι αρκετά διασκορπισμένα γύρω από τη γραμμή παλινδρόμησης, γεγονός που υποδηλώνει ότι το εισόδημα από μόνο του δεν εξηγεί πλήρως το ποσό του δανείου. Υπάρχουν επίσης ορισμένες ακραίες τιμές (outliers) με πολύ υψηλό εισόδημα, οι οποίες επηρεάζουν την κλίμακα του άξονα και τη συνολική εικόνα του διαγράμματος.
Συνολικά, το διάγραμμα δείχνει ότι υπάρχει μια θετική αλλά όχι απόλυτα ισχυρή σχέση μεταξύ εισοδήματος και ποσού δανείου, γεγονός που σημαίνει ότι και άλλοι παράγοντες πιθανόν επηρεάζουν το ύψος του δανείου.
model1 <- lm(loan_amnt ~ person_income, data = loan_data)
summary(model1)
##
## Call:
## lm(formula = loan_amnt ~ person_income, data = loan_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -140049 -4397 -1326 2968 25687
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.055e+03 4.082e+01 197.34 <2e-16 ***
## person_income 1.903e-02 3.591e-04 52.98 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6127 on 44998 degrees of freedom
## Multiple R-squared: 0.0587, Adjusted R-squared: 0.05868
## F-statistic: 2806 on 1 and 44998 DF, p-value: < 2.2e-16
Υπολογισμός συσχέτισης:
cor(loan_data$person_income, loan_data$loan_amnt)
## [1] 0.2422901
Ο συντελεστής συσχέτισης μεταξύ του εισοδήματος του ατόμου (person_income) και του ποσού δανείου (loan_amnt) είναι r = 0.242. Η τιμή αυτή υποδηλώνει θετική αλλά σχετικά ασθενή γραμμική σχέση μεταξύ των δύο μεταβλητών. Αυτό σημαίνει ότι καθώς αυξάνεται το εισόδημα υπάρχει τάση να αυξάνεται και το ποσό δανείου, όμως η σχέση δεν είναι ιδιαίτερα ισχυρή και πιθανόν άλλοι παράγοντες να επηρεάζουν το ποσό του δανείου.
Υπολογισμός SSE:
SSE1 <- sum(model1$residuals^2)
SSE1
## [1] 1.689118e+12
Υπολογισμός R-squared:
R2_model1 <- summary(model1)$r.squared
R2_model1
## [1] 0.05870451
Το πρώτο μοντέλο χρησιμοποιεί μόνο τη μεταβλητή person_income για την πρόβλεψη του loan_amnt. Η τιμή του R² (0.0587) δείχνει ότι το μοντέλο εξηγεί μόνο περίπου 5.9% της μεταβλητότητας της εξαρτημένης μεταβλητής, επομένως η προσαρμογή του μοντέλου στα δεδομένα είναι σχετικά χαμηλή.
model2 <- lm(loan_amnt ~ person_income + loan_percent_income,
data = loan_data)
summary(model2)
##
## Call:
## lm(formula = loan_amnt ~ person_income + loan_percent_income,
## data = loan_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -223102 -2013 -794 1636 20204
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.472e+01 4.939e+01 1.716 0.0863 .
## person_income 3.167e-02 2.678e-04 118.252 <2e-16 ***
## loan_percent_income 4.978e+04 2.469e+02 201.580 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4441 on 44997 degrees of freedom
## Multiple R-squared: 0.5054, Adjusted R-squared: 0.5054
## F-statistic: 2.299e+04 on 2 and 44997 DF, p-value: < 2.2e-16
Υπολογισμός συσχέτισης:
cor(loan_data[, c("loan_amnt",
"person_income",
"loan_percent_income")])
## loan_amnt person_income loan_percent_income
## loan_amnt 1.0000000 0.2422901 0.5930114
## person_income 0.2422901 1.0000000 -0.2341765
## loan_percent_income 0.5930114 -0.2341765 1.0000000
Ο πίνακας συσχετίσεων δείχνει ότι η μεταβλητή loan_percent_income έχει την ισχυρότερη θετική συσχέτιση με το ποσό δανείου (r = 0.593), γεγονός που υποδηλώνει ότι όσο αυξάνεται το ποσοστό του εισοδήματος που σχετίζεται με το δάνειο αυξάνεται και το ποσό δανείου. Η συσχέτιση μεταξύ person_income και loan_amnt είναι θετική αλλά σχετικά ασθενής (r = 0.242). Τέλος, παρατηρείται ασθενής αρνητική συσχέτιση μεταξύ person_income και loan_percent_income (r = -0.234).
Υπολογισμός SSE:
SSE2 <- sum(model2$residuals^2)
SSE2
## [1] 887586089902
Υπολογισμός R-squared:
R2_model2 <- summary(model2)$r.squared
R2_model2
## [1] 0.5053745
Στο δεύτερο μοντέλο προστίθεται η μεταβλητή loan_percent_income. Παρατηρούμε ότι το SSE μειώνεται σημαντικά και το R² αυξάνεται από 0.0587 σε 0.5054
Αυτό δείχνει ότι η μεταβλητή loan_percent_income συμβάλλει σημαντικά στη βελτίωση της πρόβλεψης του μοντέλου.
model3 <- lm(loan_amnt ~ person_income + loan_percent_income + credit_score,
data = loan_data)
summary(model3)
##
## Call:
## lm(formula = loan_amnt ~ person_income + loan_percent_income +
## credit_score, data = loan_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -223121 -2013 -795 1630 20233
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.117e+02 2.668e+02 -0.419 0.675
## person_income 3.166e-02 2.679e-04 118.156 <2e-16 ***
## loan_percent_income 4.978e+04 2.469e+02 201.580 <2e-16 ***
## credit_score 3.113e-01 4.154e-01 0.749 0.454
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4441 on 44996 degrees of freedom
## Multiple R-squared: 0.5054, Adjusted R-squared: 0.5053
## F-statistic: 1.532e+04 on 3 and 44996 DF, p-value: < 2.2e-16
Υπολογισμός συσχέτισης:
cor(loan_data[, c("loan_amnt",
"person_income",
"loan_percent_income",
"credit_score")])
## loan_amnt person_income loan_percent_income credit_score
## loan_amnt 1.000000000 0.24229013 0.5930114 0.009074282
## person_income 0.242290131 1.00000000 -0.2341765 0.035919225
## loan_percent_income 0.593011449 -0.23417655 1.0000000 -0.011483096
## credit_score 0.009074282 0.03591922 -0.0114831 1.000000000
Η συσχέτιση μεταξύ loan_amnt και person_income είναι 0.242, γεγονός που δείχνει μια ασθενή θετική σχέση. Αυτό σημαίνει ότι όσο αυξάνεται το εισόδημα του ατόμου, υπάρχει τάση να αυξάνεται και το ποσό του δανείου, όμως η σχέση δεν είναι ιδιαίτερα ισχυρή.
Η ισχυρότερη σχέση παρατηρείται μεταξύ loan_amnt και loan_percent_income, όπου ο συντελεστής συσχέτισης είναι 0.593. Η τιμή αυτή δείχνει μέτρια έως σχετικά ισχυρή θετική συσχέτιση, γεγονός που υποδηλώνει ότι όσο αυξάνεται το ποσοστό του εισοδήματος που σχετίζεται με το δάνειο, τόσο αυξάνεται και το ποσό του δανείου.
Αντίθετα, η συσχέτιση μεταξύ loan_amnt και credit_score είναι 0.009, η οποία είναι σχεδόν μηδενική. Αυτό δείχνει ότι το πιστωτικό σκορ δεν παρουσιάζει ουσιαστική γραμμική σχέση με το ποσό δανείου στο συγκεκριμένο σύνολο δεδομένων.
Τέλος, παρατηρείται μια ασθενής αρνητική συσχέτιση μεταξύ person_income και loan_percent_income (-0.234), γεγονός που σημαίνει ότι άτομα με υψηλότερο εισόδημα τείνουν να αφιερώνουν μικρότερο ποσοστό του εισοδήματός τους στο δάνειο.
Υπολογισμός SSE:
SSE3 <- sum(model3$residuals^2)
SSE3
## [1] 8.87575e+11
Υπολογισμός R-squared:
R2_model3 <- summary(model3)$r.squared
R2_model3
## [1] 0.5053807
Στο τρίτο μοντέλο προστίθεται η μεταβλητή credit_score. Ωστόσο παρατηρούμε ότι το SSE παραμένει σχεδόν ίδιο και το R² δεν αυξάνεται ουσιαστικά
Αυτό δείχνει ότι η μεταβλητή credit_score δεν προσφέρει σημαντική βελτίωση στο μοντέλο.
Η προσθήκη της μεταβλητής loan_percent_income βελτιώνει σημαντικά την απόδοση του μοντέλου, καθώς μειώνει το SSE και αυξάνει σημαντικά το R².
Αντίθετα, η προσθήκη της μεταβλητής credit_score δεν βελτιώνει ουσιαστικά την προσαρμογή του μοντέλου, καθώς οι τιμές των SSE και R² παραμένουν σχεδόν ίδιες.
Επομένως, το Μοντέλο 2 φαίνεται να αποτελεί την καλύτερη επιλογή, καθώς επιτυγχάνει καλή προσαρμογή με λιγότερες ανεξάρτητες μεταβλητές.