Το Bank Marketing Dataset περιλαμβάνει πληροφορίες από μια πορτογαλική τράπεζα σχετικά με τις προσπάθειες τηλεμάρκετινγκ για την προώθηση καταθέσεων προθεσμίας. Περιλαμβάνει δημογραφικά στοιχεία, πληροφορίες καμπάνιας, οικονομικά στοιχεία και τον στόχο(αν ο πελάτης αποδέχτηκε τη προσφορά).
Πηγή: Το dataset διατίθεται από το Kaggle και αρχικά συλλέχθηκαν από ερευνητές στο Πανεπιστήμιο της Λισαβόνας.
Η επιλογή του συγκεκριμένου dataset είναι ιδανική για επιχειρηματική ανάλυση καθώς επιτρέπει την εξέταση της αποτελεσματικότητας των τηλεφωνικών καμπανιών μάρκετινγκ. Οι επιχειρήσεις μπορούν να αξιοποιήσουν τα δεδομένα για:
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" ...
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
##
##
##
sd(Bank_Dataset$balance)
## [1] 3225.413
var(Bank_Dataset$balance)
## [1] 10403291
range(Bank_Dataset$balance)
## [1] -6847 81204
cor(Bank_Dataset$age, Bank_Dataset$duration)
## [1] 0.0001892281
Συσχέτιση age - duration: 0.00019 (σχεδόν μηδενική) που σημαίνει ότι δεν υπάρχει ουσιαστική σχέση μεταξύ της ηλικίας και της διάρκειας της κλήσης. Η διάρκεια μιας κλήσης δεν εξαρτάται άμεσα από την ηλικία του πελάτη αλλά μπορούμε να πούμε ότι οι μεσαίες ηλικίες έχουν τις πιο ποικίλες διάρκειες συνομιλιών, ενώ οι νεότεροι και οι μεγαλύτεροι πελάτες τείνουν να έχουν μικρότερες διάρκειες.
cor(Bank_Dataset$pdays, Bank_Dataset$previous)
## [1] 0.5072716
Συσχέτιση pdays - previous: 0.507 που δείχνει μια μέτρια θετική συσχέτιση. Δηλαδή, όσο περισσότερες ημέρες έχουν περάσει από την προηγούμενη επικοινωνία (pdays), τόσο μεγαλύτερος τείνει να είναι ο αριθμός προηγούμενων επαφών (previous). Αυτό μπορεί να σημαίνει ότι οι πελάτες που είχαν επικοινωνία στο παρελθόν είναι πιο πιθανό να έχουν ξαναεπικοινωνήσει αργότερα.
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"))
Figure 7.1: ScatterPlot: Ηλικία - Διάρκεια Κλήσης
Όπως φαίνεται στο Scatterplot 7.1, η διάρκεια της κλήσης φαίνεται να έχει μεγάλη διασπορά σε όλες τις ηλικίες, με κάποιες πολύ υψηλές τιμές. Μπορούμε να πούμε ότι οι μεσαίες ηλικίες έχουν τις πιο ποικίλες διάρκειες συνομιλιών, ενώ οι νεότεροι και οι μεγαλύτεροι πελάτες τείνουν να έχουν μικρότερες διάρκειες.
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"))
Figure 7.2: Boxplot: Επίπεδο Εκπαίδευσης - Διάρκεια Κλήσης
Όπως φαίνεται στο Boxplot 7.2, παρουσιάζει τη σχέση μεταξύ του επιπέδου εκπαίδευσης και της διάρκειας των κλήσεων στην τραπεζική καμπάνια. Φαίνεται ότι οι διάμεσοι(median) της διάρκειας κλήσης είναι παρόμοιοι για όλες τις κατηγορίες.Υπάρχουν πολλές ακραίες τιμές σε κάθε εκπαιδευτική κατηγορία, που δείχνουν κλήσεις με μεγάλη διάρκεια (πάνω από 2.000 ή 3.000 δευτερόλεπτα).Η πλειοψηφία των τιμών βρίσκεται κάτω από τα 1.000 δευτερόλεπτα, ενώ οι μεγαλύτερες διάρκειες εμφανίζονται σποραδικά σε όλες τις κατηγορίες εκπαίδευσης.
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"))
Figure 7.3: Histogram: Κατανομή Υπολοίπου
Όπως φαίνεται στο Histogram 7.3, δείχνει την κατανομή του υπολοίπου στους λογαριασμούς των πελατών. Παρατηρούμε ότι η πλειονότητα των υπολοίπων είναι κοντά στο μηδέν, με πολύ λίγες περιπτώσεις να έχουν υψηλές τιμές(outliers). Αυτό σημαίνει ότι οι περισσότεροι πελάτες έχουν χαμηλό υπόλοιπο, ενώ λίγοι διαθέτουν μεγάλα ποσά. Η κατανομή είναι έντονα ασύμμετρη με μεγάλη δεξιά ουρά (right-skewed).
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 αν δε χρειάζεται
Figure 7.4: Barchart: Κατανομή Επαγγελμάτων
Όπως φαίνεται στο Barchart 7.4, απεικονίζει την κατανομή των επαγγελμάτων στο σύνολο δεδομένων, δείχνοντας τη συχνότητα εμφάνισης κάθε επαγγέλματος. Το επάγγελμα “Διευθυντής” εμφανίζεται συχνότερα, ακολουθούμενο από τα “Εργάτης” και “Τεχνικός”, ενώ επαγγέλματα όπως “Επιχειρηματίας”, “Οικιακή Βοηθός” και “Άγνωστο” έχουν τη χαμηλότερη παρουσία. Υπάρχει επίσης σημαντικός αριθμός ανέργων, αλλά λιγότερος σε σύγκριση με άλλες κατηγορίες.