1 Περιγραφή dataset

Το dataset προέρχεται από το Kaggle και αφορά πελάτες τραπεζών. Περιλαμβάνει 10000 εγγραφές/πελάτες τράπεζας το οποίο αποτελείται από 12 ανεξάρτητες μεταβλητές (χαρακτηριστικά πελατών) και 1 εξαρτημένη μεταβλητή, που δείχνει αν ένας πελάτης αποχωρεί (churn) ή παραμένει.

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

2 Επιχειρηματική Αναλυτική

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

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

Τα ευρήματα μπορούν να αξιοποιηθούν για τη λήψη στρατηγικών αποφάσεων σε διάφορους τομείς, όπως: - Στοχευμένες προωθητικές ενέργειες - Εξατομικευμένες υπηρεσίες εξυπηρέτησης - Ανάπτυξη νέων προϊόντων προσαρμοσμένων στις ανάγκες των πελατών

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

3 Eπιχειρηματικά ερωτήματα

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

4 Περιγραφή Μεταβλητών

Παρακάτω περιγράφονται οι μεταβλητές του dataset, μαζί με τους τύπους τους:


5 Εξερεύνηση Δομής Dataset

#Εισαγωγή dataset
Churn_Modeling <- read.csv("C:/Users/dadak/Documents/sxoli/Business_Analytics/Assignment2/Churn_Modelling.csv")
# Προβολή δομής dataset
str(Churn_Modeling)
## 'data.frame':    10002 obs. of  14 variables:
##  $ RowNumber      : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ CustomerId     : int  15634602 15647311 15619304 15701354 15737888 15574012 15592531 15656148 15792365 15592389 ...
##  $ Surname        : chr  "Hargrave" "Hill" "Onio" "Boni" ...
##  $ CreditScore    : int  619 608 502 699 850 645 822 376 501 684 ...
##  $ Geography      : chr  "France" "Spain" "France" "France" ...
##  $ Gender         : chr  "Female" "Female" "Female" "Female" ...
##  $ Age            : num  42 41 42 39 43 44 50 29 44 NA ...
##  $ Tenure         : int  2 1 8 1 2 8 7 4 4 2 ...
##  $ Balance        : num  0 83808 159661 0 125511 ...
##  $ NumOfProducts  : int  1 1 3 2 1 2 2 4 2 1 ...
##  $ HasCrCard      : int  1 0 1 0 NA 1 1 1 0 1 ...
##  $ IsActiveMember : int  1 1 0 0 1 0 1 0 NA 1 ...
##  $ EstimatedSalary: num  101349 112543 113932 93827 79084 ...
##  $ Exited         : int  1 0 1 0 0 1 0 1 0 0 ...
# Προβολή μεγέθους dataset
dim(Churn_Modeling)
## [1] 10002    14

6 Προεπεξεργασία Δεδομένων

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

#Οπτικοποίηση ελλιπών τιμών
library(naniar)
gg_miss_var(Churn_Modeling)
**Figure1: Εμφάνιση ελλιπών τιμών ανά μεταβλητή**

Figure1: Εμφάνιση ελλιπών τιμών ανά μεταβλητή

# Εύρεση και αφαίρεση διπλότυπων
# Πλήθος συνολικών γραμμών πριν
nrow_before <- nrow(Churn_Modeling)

# Πόσες διπλότυπες γραμμές υπάρχουν;
duplicates_found <- sum(duplicated(Churn_Modeling))

# Αφαίρεση διπλότυπων
Churn_Modeling <- Churn_Modeling[!duplicated(Churn_Modeling), ]

# Πλήθος συνολικών γραμμών μετά
nrow_after <- nrow(Churn_Modeling)

# Εκτύπωση αποτελεσμάτων
cat("Διπλότυπες εγγραφές που εντοπίστηκαν και αφαιρέθηκαν:", duplicates_found, "\n")
## Διπλότυπες εγγραφές που εντοπίστηκαν και αφαιρέθηκαν: 2
cat("Γραμμές πριν:", nrow_before, "- Γραμμές μετά:", nrow_after, "\n")
## Γραμμές πριν: 10002 - Γραμμές μετά: 10000

7 Υπολογισμοί στατιστικών + Box Plots

Παρακάτω παρουσιάζονται βασικά περιγραφικά στατιστικά για τις μεταβλητές CreditScore, Balance και EstimatedSalary, καθώς και διαγράμματα box plot για την ανίχνευση των outliers.

# Περιγραφικά στατιστικά
summary(Churn_Modeling[, c("CreditScore", "Balance", "EstimatedSalary")])
##   CreditScore       Balance       EstimatedSalary    
##  Min.   :350.0   Min.   :     0   Min.   :    11.58  
##  1st Qu.:584.0   1st Qu.:     0   1st Qu.: 51002.11  
##  Median :652.0   Median : 97199   Median :100193.91  
##  Mean   :650.5   Mean   : 76486   Mean   :100090.24  
##  3rd Qu.:718.0   3rd Qu.:127644   3rd Qu.:149388.25  
##  Max.   :850.0   Max.   :250898   Max.   :199992.48
#Δημιουργία boxplot για την μεταβλητή Credit Score
boxplot(Churn_Modeling$CreditScore,
        main = "Outliers in Credit Score",
        col = "lightblue")

#Δημιουργία boxplot για την μεταβλητή Balance
boxplot(Churn_Modeling$Balance,
        main = "Outliers in Balance",
        col = "lightgreen")

#Δημιουργία boxplot για την μεταβλητή Estimated Salary
boxplot(Churn_Modeling$EstimatedSalary,
        main = "Outliers in Estimated Salary",
        col = "orange")

8 Scatter Plots

8.1 Ηλικία και Πιστωτικό Σκορ

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

  • Οι ηλικίες ανάμεσα σε 40–65 έχουν το μεγαλύτερο ποσοστό σε αποχωρήσεις.
  • Άτομα με πιστωτικό score μικρότερο του 400 τείνουν να διακόπτουν τη συνεργασία τους με την τράπεζα.
  • Οι ηλικίες από 70 και άνω έχουν το χαμηλότερο ποσοστό αποχώρησης.
#Scatter plot πελατών βάσει ηλίκιας και πιστωτικού score 
library(ggplot2)
ggplot(Churn_Modeling, aes(x = Age, y = CreditScore, color = factor(Exited))) +
  geom_point() +
  scale_color_manual(values = c("blue", "red"),
                     labels = c("Non-Churner", "Churner"),
                     name = "Churn Status") +
  labs(title = "Age vs. Credit Score (Churners vs Non-Churners)",
       x = "Age",
       y = "Credit Score") +
  theme_minimal()
**Figure 2: Ανάλυση Αποχωρήσεων βάσει Ηλικίας και Πιστωτικού Σκορ**

Figure 2: Ανάλυση Αποχωρήσεων βάσει Ηλικίας και Πιστωτικού Σκορ

8.2 Υπόλοιπο λογαριασμού και αριθμός προϊόντων

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

-Όσα περισσότερα προϊόντα κατέχει ο πελάτης τόσο πιο πιθανό είναι να αποχωρήσει.

-Το υπόλοιπο του λογαριασμού δεν φαίνεται να σχετίζεται σημαντικά με την αποχώρηση

#Scatter plot πελατών βάσει το υπόλοιπο λογαριασμού και 
#τον αριθμό προϊόντων
ggplot(Churn_Modeling, aes(x = NumOfProducts, y = Balance,
                           color = factor(Exited))) +
  geom_jitter(width = 0.2, height = 0, size = 1.5) +
  scale_color_manual(
    values = c("blue", "red"),
    labels = c("Non-Churner", "Churner"),
    name = "Churn Status"
  ) +
  labs(
    title = "Number of Products vs. Balance (Churners vs Non-Churners)",
    x = "Number of Products",
    y = "Balance"
  ) +
  theme_minimal()
**Figure 3: Συσχέτιση αποχωρήσεων με βάσει το υπόλοιπο λογαριασμού και τον αριθμό προϊόντων **

Figure 3: Συσχέτιση αποχωρήσεων με βάσει το υπόλοιπο λογαριασμού και τον αριθμό προϊόντων

9 Στατιστική Απεικόνιση Ανά Χώρα: Stacked Bar Chart

Η παρακάτω γραφική απεικόνιση δείχνει τον αριθμό των πελατών που αποχωρούν (churners) και εκείνων που παραμένουν (non-churners) ανά χώρα:

#Bar chart πελατών ανα χώρα
ggplot(Churn_Modeling, aes(x = Geography, fill = factor(Exited))) +
  geom_bar(position = "dodge") + 
  scale_fill_manual(
    values = c("blue", "red"),
    labels = c("Non-Churner", "Churner"),
    name = "Churn Status"
  ) +
  labs(
    title = "Churn Rate by Geography",
    x = "Country",
    y = "Count"
  ) +
  theme_minimal()
**Figure 4: Ποσοστά Αποχωρήσεων Πελατών ανά Χώρα**

Figure 4: Ποσοστά Αποχωρήσεων Πελατών ανά Χώρα

10 Κατανομή Ηλικίας Πελατών: Histogram

Η ανάλυση της ηλικιακής κατανομής των πελατών παρέχει κρίσιμες πληροφορίες για τη στόχευση στρατηγικών marketing:

#Ιστόγραμμα ηλικίας πελατών
ggplot(Churn_Modeling, aes(x = Age)) +
  geom_histogram(binwidth = 5, fill = "skyblue", color = "black") +
  labs(
    title = "Customer Age Distribution",
    x = "Age",
    y = "Count"
  ) +
  theme_minimal()
**Figure 5: Κατανομή Ηλικίας Πελατών**

Figure 5: Κατανομή Ηλικίας Πελατών

11 Στρατηγικές Μείωσης Αποχωρήσεων

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


11.1 🎯 Personalized Retention

Εξατομικευμένες προσφορές, διαφημίσεις και προϊόντα ειδικά προσαρμοσμένα για άτομα ηλικίας 40–65 ετών, όπου παρατηρείται αυξημένη πιθανότητα αποχώρησης.


11.2 💰 Financial Support

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


11.3 🔽 Reduce Upselling

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


11.4 📊 Competitive Analysis

Διεξαγωγή στοχευμένων ερευνών και εφαρμογή ανταγωνιστικής τιμολόγησης στη Γερμανία, όπου παρατηρείται το υψηλότερο ποσοστό churn.


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