Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakub Cierocki committed May 24, 2020
2 parents 272e7c0 + ae40453 commit 0caa612
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 24 deletions.
Binary file added data/TinyTeX.zip
Binary file not shown.
69 changes: 68 additions & 1 deletion docs/report1.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,73 @@ Firmy, a w szczególności banki, inwestują mocno w modelowanie tego zjawiska,

W niniejszym raporcie zbadamy, jak cechy klienta są powiązane z podjęciem przez niego decyzji o zmianie dostawcy usług bankowych. Na analizowane przez nas czynniki składają się atrybuty charakteryzującego samego klienta jak i jego dotychczasową współpracę z bankiem.

Zjawisko "churnu" będziemy analizować z perspektywy banku. Dysponuje on pewnymi danymi personalnymi swoich klientów oraz pełną informacją o ich aktualnej (i przeszłej) subskrypcji usług tego banku. Problem badawczy, jaki chcemy przeanalizować to czy na podstawie tych danych bank jest w stanie z dużym prawdobieństwem przewidzieć potencjalną decyzję klienta o rezygnacji z jego usług w niedalekiej (bliżej nie określonej) przyszłości.

# Problem badawczy

Zjawisko "churnu" będziemy analizować z perspektywy banku. Dysponuje on pewnymi danymi personalnymi swoich klientów oraz pełną informacją o ich aktualnej (i przeszłej) subskrypcji usług tego banku. Problem badawczy, jaki chcemy przeanalizować to czy na podstawie tych danych bank jest w stanie z dużym prawdobieństwem przewidzieć potencjalną decyzję klienta o rezygnacji z jego usług w niedalekiej (bliżej nie określonej) przyszłości.
W ninejszym raporcie zbadamy, jakie czynniki wpływają na decyzję klienta w przyadku zmiany banku. Skupimy się na czynnikach ekonomicznych, ale również aspektach psychofizycznych, które będą znacząco wpływać na wynik badanego przez nas zagadnienia.

OPIS ZBIORU DANYCH

Dane, które wykorzystamy do naszej analizy pochodzą ze strony kaggle.com, która zrzesza naukowców z wielu dziedzin. Dane zostały pobrane od 10 000 klientów jednego banku w celu zbadania zależności pomiędzy pewnymi ich cechami, a decyzjami o opuszczeniu banku.

Zmienną decyzyjną jest zmienna \textit{EXIT} typu Factor, która przyjmuje wartość:

$\Rightarrow$ *1*, jeżeli klient opuścił bank

$\Rightarrow$ *0*, jeżeli klient pozostał w banku

Do zbioru zmiennych objaśniających będziemy używać 11 zmiennych, które pozwalają nam na dogłębną analizę interesującego nas tematu. Mamy zarówno zmienne, które pozwalają nam na zebranie podstawowych informacji na temat osób ankietowanych (wiek, płeć, kraj pochodzenia) ale również informacje typu "czy klient posiada kartę kredytową", "ilość posiadanych pieniędzy".

Zmienne, które wybraliśmy zostały dobrane na podstawie ówcześnie wykonanej analizy dostępnych materiałów i własnych przypuszczeń odnośnie czynników, które rzeczywiście mają realny wpływ na badane zjawisko.\newline

\textit{Geography} - miejsce pochodzenia osoby ankietowanej, możliwe wartości to:\newline

$\Rightarrow$ France - jeśli osoba pochodzi z Francji

$\Rightarrow$ Germany - jeśli osoba pochodzi z Niemiec

$\Rightarrow$ Spain - jeśli osoba pochodzi z Hiszpanii\newline


\textit{Gender} - płeć opisana zmienną binarną, która przyjmuje wartości:\newline


$\Rightarrow$ 1 - jeśli osoba jest mężczyzną

$\Rightarrow$ 0 - jeśli osoba jest kobietą\newline


\textit{HasCrCard} - czy osoba posiada kartę kredytową\newline


$\Rightarrow$ 1 - posiada kartę kredytową

$\Rightarrow$ 0 - nie posiada karty kredytowej\newline


\textit{IsActiveMember} - zmienna binarna, mówiąca czy klient jest aktywnym uczestnikiem banku, przyjmująca wartości:\newline


$\Rightarrow$ 1 - jeżeli jeset aktywnym uczestnikiem

$\Rightarrow$ 0 - jeżeli nie jest aktywnym uczestnikiem\newline


\textit{Age} - zmienna numeryczna określająca wiek klientów\newline


\textit{Balance} - zmienna ciągła określająca ilość pieniędzy na koncie klienta\newline


\textit{CreditScore} - zmienna ciągła określająca ilość punktów kredytowych klienta\newline


\textit{NumOfProducts} - zmienna ciągła określająca ilość produktów bankowych, których używa klient\newline


\textit{EstimatedSalary} - zmienna ciągła określająca estymowaną wartość zarobków klienta\newline


\textit{Tenure} - zmienna ciągła określająca liczbę lat jaka minęła, odkąd klient dołączył do banku\newline

23 changes: 0 additions & 23 deletions work1.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,6 @@ library(scorecard)
library(caret)
library(ranger)

rm(list = ls())

source("funs.R")

data_raw <- read_csv("data/dataset1.csv")
data1 <- data_raw %>%
mutate(Geography = factor(Geography), Gender = factor(Gender),
Exited = factor(Exited) %>% `levels<-`(c("No", "Yes")),
IsActiveMember = factor(IsActiveMember) %>% `levels<-`(c("No", "Yes")),
HasCrCard = factor(HasCrCard) %>% `levels<-`(c("No", "Yes"))) %>%
dplyr::select(-RowNumber, -CustomerId, -Surname)

# ggplot(data1, aes(x = Age)) +
# geom_histogram(bins = 50, color = "black", fill = "grey")
Expand All @@ -38,16 +27,4 @@ data1 <- data_raw %>%
# iv(data1, "Exited", "Geography", positive = "No")
# iv(data1, "Exited", "NotSpain", positive = "No")

opt_bin <- woebin(data1, "Exited", "Age", positive = "No")
opt_bin2 <- woebin(data1,"Exited","Balance",positive = "No")
opt_bin3 <- woebin(data1,"Exited","CreditScore",positive = "No")
opt_bin4 <- woebin(data1,"Exited","NumOfProducts",positive = "No")
opt_bin5 <- woebin(data1,"Exited","EstimatedSalary",positive = "No")
opt_bin6 <- woebin(data1,"Exited","Tenure",positive = "No")
data2 <- data1 %>% woebin_ply(opt_bin, to = "bin") %>% mutate(Age_bin =as.factor(Age_bin))
data2 <- data2 %>% woebin_ply(opt_bin2, to = "bin") %>% mutate(Balance_bin = as.factor(Balance_bin))
data2 <- data2 %>% woebin_ply(opt_bin3, to = "bin") %>% mutate(CreditScore_bin = as.factor(CreditScore_bin))
data2 <- data2 %>% woebin_ply(opt_bin4, to = "bin") %>% mutate(NumOfProducts_bin = as.factor(NumOfProducts_bin))
data2 <- data2 %>% woebin_ply(opt_bin5, to = "bin") %>% mutate(EstimatedSalary_bin = as.factor(EstimatedSalary_bin))
data2 <- data2 %>% woebin_ply(opt_bin6, to = "bin") %>% mutate(Tenure_bin =as.factor(Tenure_bin))

0 comments on commit 0caa612

Please sign in to comment.