1 Περιγραφή του dataset

Το Bank Marketing Dataset περιλαμβάνει πληροφορίες από μια πορτογαλική τράπεζα σχετικά με τις προσπάθειες τηλεμάρκετινγκ για την προώθηση καταθέσεων προθεσμίας. Περιλαμβάνει δημογραφικά στοιχεία, πληροφορίες καμπάνιας, οικονομικά στοιχεία και τον στόχο(αν ο πελάτης αποδέχτηκε τη προσφορά).

Πηγή: Το dataset διατίθεται από το Kaggle και αρχικά συλλέχθηκαν από ερευνητές στο Πανεπιστήμιο της Λισαβόνας.

2 Σχέση dataset με επιχειρηματική αναλυτική

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

  • Ανάλυση πελατών: Προσδιορισμός των χαρακτηριστικών των πελατών που είναι πιο πιθανό να αποδεχτούν μια τραπεζική προσφορά.
  • Βελτιστοποίηση καμπανιών: Εντοπισμός των επικοινωνιακών στρατηγικών που φέρνουν τα καλύτερα αποτελέσματα (π.χ. τύπος επαφής, αριθμός προσπαθειών επικοινωνίας).
  • Μοντέλα πρόβλεψης: Δημιουργία μοντέλων μηχανικής μάθησης για την πρόβλεψη της πιθανότητας επιτυχίας μιας τηλεφωνικής καμπάνιας.

3 Πιθανά ερωτήματα

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

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

library(readr)
Bank_Dataset <- read.csv("Bank-Dataset.csv")

Περιέχει 11.162 παρατηρήσεις (γραμμές) και 17 μεταβλητές (στήλες), εκ των οποίων:

  • Αριθμητικές μεταβλητές: ‘age’ (ηλικία), ‘balance’ (υπόλοιπο), ‘duration’ (διάρκεια κλήσης), ‘campaign’ (αριθμός επαφών κατά την τρέχουσα καμπάνια), ‘pdays’(προηγούμενες ημέρες), ‘previous’(αριθμός προηγούμενων επαφών), day(ημέρα του μήνα)

  • Κατηγορικές μεταβλητές: ‘job’ (επάγγελμα), ‘marital’ (οικογενειακή κατάσταση), ‘education’ (εκπαίδευση), ‘default’ (έχει χρέη;), ‘housing’ (στεγαστικό δάνειο), ‘loan’ (προσωπικό δάνειο), month(μήνας της επικοινωνίας), poutcome(αποτέλεσμα προηγούμενης καμπάνιας), deposit(αν ο πελάτης αποδέχθηκε την προσφορά), contact(τρόπος επικοινωνίας)

str(Bank_Dataset)
## 'data.frame':    11162 obs. of  17 variables:
##  $ age      : int  59 56 41 55 54 42 56 60 37 28 ...
##  $ job      : chr  "admin." "admin." "technician" "services" ...
##  $ marital  : chr  "married" "married" "married" "married" ...
##  $ education: chr  "secondary" "secondary" "secondary" "secondary" ...
##  $ default  : chr  "no" "no" "no" "no" ...
##  $ balance  : int  2343 45 1270 2476 184 0 830 545 1 5090 ...
##  $ housing  : chr  "yes" "no" "yes" "yes" ...
##  $ loan     : chr  "no" "no" "no" "no" ...
##  $ contact  : chr  "unknown" "unknown" "unknown" "unknown" ...
##  $ day      : int  5 5 5 5 5 5 6 6 6 6 ...
##  $ month    : chr  "may" "may" "may" "may" ...
##  $ duration : int  1042 1467 1389 579 673 562 1201 1030 608 1297 ...
##  $ campaign : int  1 1 1 1 2 2 1 1 1 3 ...
##  $ pdays    : int  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
##  $ previous : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ poutcome : chr  "unknown" "unknown" "unknown" "unknown" ...
##  $ deposit  : chr  "yes" "yes" "yes" "yes" ...

5 Περιγραφικά Στατιστικά

5.1 Μέτρα κεντρικής τάσης

summary(Bank_Dataset)
##       age            job              marital           education        
##  Min.   :18.00   Length:11162       Length:11162       Length:11162      
##  1st Qu.:32.00   Class :character   Class :character   Class :character  
##  Median :39.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :41.23                                                           
##  3rd Qu.:49.00                                                           
##  Max.   :95.00                                                           
##    default             balance        housing              loan          
##  Length:11162       Min.   :-6847   Length:11162       Length:11162      
##  Class :character   1st Qu.:  122   Class :character   Class :character  
##  Mode  :character   Median :  550   Mode  :character   Mode  :character  
##                     Mean   : 1529                                        
##                     3rd Qu.: 1708                                        
##                     Max.   :81204                                        
##    contact               day           month              duration   
##  Length:11162       Min.   : 1.00   Length:11162       Min.   :   2  
##  Class :character   1st Qu.: 8.00   Class :character   1st Qu.: 138  
##  Mode  :character   Median :15.00   Mode  :character   Median : 255  
##                     Mean   :15.66                      Mean   : 372  
##                     3rd Qu.:22.00                      3rd Qu.: 496  
##                     Max.   :31.00                      Max.   :3881  
##     campaign          pdays           previous         poutcome        
##  Min.   : 1.000   Min.   : -1.00   Min.   : 0.0000   Length:11162      
##  1st Qu.: 1.000   1st Qu.: -1.00   1st Qu.: 0.0000   Class :character  
##  Median : 2.000   Median : -1.00   Median : 0.0000   Mode  :character  
##  Mean   : 2.508   Mean   : 51.33   Mean   : 0.8326                     
##  3rd Qu.: 3.000   3rd Qu.: 20.75   3rd Qu.: 1.0000                     
##  Max.   :63.000   Max.   :854.00   Max.   :58.0000                     
##    deposit         
##  Length:11162      
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

5.2 Μέτρα διασποράς

5.2.0.1 Τυπική Απόκλιση

sd(Bank_Dataset$balance)
## [1] 3225.413

5.2.0.2 Διακύμανση

var(Bank_Dataset$balance)
## [1] 10403291

5.2.0.3 Εύρος με την συνάρτηση range

range(Bank_Dataset$balance)
## [1] -6847 81204

6 Διερεύνηση Συσχετίσεων

6.1 Συσχέτιση age- duration

cor(Bank_Dataset$age, Bank_Dataset$duration)
## [1] 0.0001892281

Συσχέτιση age - duration: 0.00019 (σχεδόν μηδενική) που σημαίνει ότι δεν υπάρχει ουσιαστική σχέση μεταξύ της ηλικίας και της διάρκειας της κλήσης. Η διάρκεια μιας κλήσης δεν εξαρτάται άμεσα από την ηλικία του πελάτη αλλά μπορούμε να πούμε ότι οι μεσαίες ηλικίες έχουν τις πιο ποικίλες διάρκειες συνομιλιών, ενώ οι νεότεροι και οι μεγαλύτεροι πελάτες τείνουν να έχουν μικρότερες διάρκειες.

6.2 Συσχέτιση pdays - previous

cor(Bank_Dataset$pdays, Bank_Dataset$previous)
## [1] 0.5072716

Συσχέτιση pdays - previous: 0.507 που δείχνει μια μέτρια θετική συσχέτιση. Δηλαδή, όσο περισσότερες ημέρες έχουν περάσει από την προηγούμενη επικοινωνία (pdays), τόσο μεγαλύτερος τείνει να είναι ο αριθμός προηγούμενων επαφών (previous). Αυτό μπορεί να σημαίνει ότι οι πελάτες που είχαν επικοινωνία στο παρελθόν είναι πιο πιθανό να έχουν ξαναεπικοινωνήσει αργότερα.

7 Διαγράμματα

7.1 Scatterplot

ggplot(Bank_Dataset, aes(x=age, y=duration)) + 
  geom_point(color="red", alpha=0.6, size=2) + 
  labs(x="Ηλικία", y="Διάρκεια (δευτερόλεπτα)") + 
  theme_minimal(base_size = 14) +
  theme(axis.title = element_text(face="bold"),
        axis.text = element_text(color="black"),
        panel.grid.major = element_line(color="gray80", linetype="dashed"))
ScatterPlot: Ηλικία - Διάρκεια Κλήσης

Figure 7.1: ScatterPlot: Ηλικία - Διάρκεια Κλήσης

Όπως φαίνεται στο Scatterplot 7.1, η διάρκεια της κλήσης φαίνεται να έχει μεγάλη διασπορά σε όλες τις ηλικίες, με κάποιες πολύ υψηλές τιμές. Μπορούμε να πούμε ότι οι μεσαίες ηλικίες έχουν τις πιο ποικίλες διάρκειες συνομιλιών, ενώ οι νεότεροι και οι μεγαλύτεροι πελάτες τείνουν να έχουν μικρότερες διάρκειες.

7.2 Boxplot

ggplot(Bank_Dataset, aes(x=education, y=duration, fill=education)) + 
  geom_boxplot(color="black") + 
  labs(x="Εκπαίδευση", y="Διάρκεια", fill="Εκπαίδευση") + 
  scale_fill_manual(values = c("red", "blue", "green", "purple"), 
                    labels = c("primary" = "Δημοτικό", 
                               "secondary" = "Γυμνάσιο/Λύκειο", 
                               "tertiary" = "ΑΕΙ/ΤΕΙ", 
                               "unknown" = "Άγνωστο")) + 
  scale_x_discrete(labels = c("primary" = "Δημοτικό", 
                              "secondary" = "Γυμνάσιο/Λύκειο", 
                              "tertiary" = "ΑΕΙ/ΤΕΙ", 
                              "unknown" = "Άγνωστο")) +
 theme_minimal() + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        axis.title = element_text(face="bold"))
Boxplot: Επίπεδο Εκπαίδευσης - Διάρκεια Κλήσης

Figure 7.2: Boxplot: Επίπεδο Εκπαίδευσης - Διάρκεια Κλήσης

Όπως φαίνεται στο Boxplot 7.2, παρουσιάζει τη σχέση μεταξύ του επιπέδου εκπαίδευσης και της διάρκειας των κλήσεων στην τραπεζική καμπάνια. Φαίνεται ότι οι διάμεσοι(median) της διάρκειας κλήσης είναι παρόμοιοι για όλες τις κατηγορίες.Υπάρχουν πολλές ακραίες τιμές σε κάθε εκπαιδευτική κατηγορία, που δείχνουν κλήσεις με μεγάλη διάρκεια (πάνω από 2.000 ή 3.000 δευτερόλεπτα).Η πλειοψηφία των τιμών βρίσκεται κάτω από τα 1.000 δευτερόλεπτα, ενώ οι μεγαλύτερες διάρκειες εμφανίζονται σποραδικά σε όλες τις κατηγορίες εκπαίδευσης.

7.3 Histogram

ggplot(Bank_Dataset, aes(x=balance)) + 
  geom_histogram(bins=30, color="black", fill="#69b3a2", alpha=0.7) + 
  labs(title="Κατανομή Υπολοίπου Πελατών", 
       x="Υπόλοιπο (€)", 
       y="Συχνότητα") + 
  theme_minimal(base_size = 14) +
  theme(plot.title = element_text(hjust=0.5, face="bold"),
        axis.title = element_text(face="bold"),
        axis.text = element_text(color="black"),
        panel.grid.major = element_line(color="gray80", linetype="dashed"))
Histogram: Κατανομή Υπολοίπου

Figure 7.3: Histogram: Κατανομή Υπολοίπου

Όπως φαίνεται στο Histogram 7.3, δείχνει την κατανομή του υπολοίπου στους λογαριασμούς των πελατών. Παρατηρούμε ότι η πλειονότητα των υπολοίπων είναι κοντά στο μηδέν, με πολύ λίγες περιπτώσεις να έχουν υψηλές τιμές(outliers). Αυτό σημαίνει ότι οι περισσότεροι πελάτες έχουν χαμηλό υπόλοιπο, ενώ λίγοι διαθέτουν μεγάλα ποσά. Η κατανομή είναι έντονα ασύμμετρη με μεγάλη δεξιά ουρά (right-skewed).

7.4 Barchart

job_labels <- c(
  "admin." = "Διοικητικός", 
  "blue-collar" = "Εργάτης", 
  "entrepreneur" = "Επιχειρηματίας",
  "housemaid" = "Οικιακή βοηθός",
  "management" = "Διευθυντής",
  "retired" = "Συνταξιούχος",
  "self-employed" = "Αυτοαπασχολούμενος",
  "services" = "Υπηρεσίες",
  "student" = "Φοιτητής",
  "technician" = "Τεχνικός",
  "unemployed" = "Άνεργος",
  "unknown" = "Άγνωστο"
)
ggplot(Bank_Dataset, aes(x=job, fill=job)) + 
  geom_bar(colour="black") + 
  labs(x="Επάγγελμα", y="Συχνότητα Πελατών") + 
  scale_x_discrete(labels = job_labels) + # Μετατροπή σε ελληνικά
  theme_minimal(base_size = 14) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        axis.title = element_text(face="bold"),
        legend.position = "none") # Απόκρυψη του legend αν δε χρειάζεται
Barchart: Κατανομή Επαγγελμάτων

Figure 7.4: Barchart: Κατανομή Επαγγελμάτων

Όπως φαίνεται στο Barchart 7.4, απεικονίζει την κατανομή των επαγγελμάτων στο σύνολο δεδομένων, δείχνοντας τη συχνότητα εμφάνισης κάθε επαγγέλματος. Το επάγγελμα “Διευθυντής” εμφανίζεται συχνότερα, ακολουθούμενο από τα “Εργάτης” και “Τεχνικός”, ενώ επαγγέλματα όπως “Επιχειρηματίας”, “Οικιακή Βοηθός” και “Άγνωστο” έχουν τη χαμηλότερη παρουσία. Υπάρχει επίσης σημαντικός αριθμός ανέργων, αλλά λιγότερος σε σύγκριση με άλλες κατηγορίες.