#* ID: Código único de identificación del cliente
#* Age: Edad del cliente en años
#* Experience: Número de años de experiencia profesional
#* Income: Ingreso anual del cliente (en miles de dólares)
#* ZIP Code: Código postal del domicilio
#* Family: Tamaño de la familia (número de miembros)
#* CCAvg: Gasto promedio mensual en tarjetas de crédito (en miles de dólares)
#* Education: Nivel de Educación. 1: Pre-grado; 2: Bachiller; 3: Avanzado/Profesional
#* Mortgage: Valor del préstamos hipotecario en caso exista uno (en miles de dólares)
#* Personal_Loan: El cliente aceptariá un préstamo bancario en la próxima campaña?
#* Securities_Account: El cliente posee alguna cuenta de securities (banca de inversión) con el banco?
#* CD_Account: El cliente posee alguna cuenta de CD (certificate of deposit) con el banco?
#* Online: El cliente realiza transacciones/consultas por internet en la plataforma del banco?
#* CreditCard: El cliente utiliza la tarjeta de crédito emitida por el banco?
A continuacion se realiza un analisis descriptivo de la base de datos de Banco. Esta Base de datos la puede descargar del siguiente link https://drive.google.com/file/d/1fi0mnPV6YX2WJfK6ArwL5uPVcmFkb4zD/view?usp=drive_link
## importar la base de datos de Banco y realizar un resumen de la data
library(readr)
data <- read_csv("Data_Banco.csv")
## Rows: 5000 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (14): ID, Age, Experience, Income, ZIPCode, Family, CCAvg, Education, Mo...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## imprimir la dimension de la base de datos
dim(data)
## [1] 5000 14
# los nombres de la base de datos
names(data)
## [1] "ID" "Age" "Experience"
## [4] "Income" "ZIPCode" "Family"
## [7] "CCAvg" "Education" "Mortgage"
## [10] "Personal_Loan" "Securities_Account" "CD_Account"
## [13] "Online" "CreditCard"
# la cantidad de columnas de la base de datos
columna <- dim(data)[2]
columna
## [1] 14
# Provee un vistazo de las 5 primeras filas
head(data, n=5)
## # A tibble: 5 × 14
## ID Age Experience Income ZIPCode Family CCAvg Education Mortgage
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 25 1 49 91107 4 1.6 1 0
## 2 2 45 19 34 90089 3 1.5 1 0
## 3 3 39 15 11 94720 1 1 1 0
## 4 4 35 9 100 94112 1 2.7 2 0
## 5 5 35 8 45 91330 4 1 2 0
## # ℹ 5 more variables: Personal_Loan <dbl>, Securities_Account <dbl>,
## # CD_Account <dbl>, Online <dbl>, CreditCard <dbl>
# Provee un vistazo de las 5 ultimas filas
tail(data, n=5)
## # A tibble: 5 × 14
## ID Age Experience Income ZIPCode Family CCAvg Education Mortgage
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 4996 29 3 40 92697 1 1.9 3 0
## 2 4997 30 4 15 92037 4 0.4 1 85
## 3 4998 63 39 24 93023 2 0.3 3 0
## 4 4999 65 40 49 90034 3 0.5 2 0
## 5 5000 28 4 83 92612 3 0.8 1 0
## # ℹ 5 more variables: Personal_Loan <dbl>, Securities_Account <dbl>,
## # CD_Account <dbl>, Online <dbl>, CreditCard <dbl>
# la composicion de la data
str(data)
## spc_tbl_ [5,000 × 14] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ ID : num [1:5000] 1 2 3 4 5 6 7 8 9 10 ...
## $ Age : num [1:5000] 25 45 39 35 35 37 53 50 35 34 ...
## $ Experience : num [1:5000] 1 19 15 9 8 13 27 24 10 9 ...
## $ Income : num [1:5000] 49 34 11 100 45 29 72 22 81 180 ...
## $ ZIPCode : num [1:5000] 91107 90089 94720 94112 91330 ...
## $ Family : num [1:5000] 4 3 1 1 4 4 2 1 3 1 ...
## $ CCAvg : num [1:5000] 1.6 1.5 1 2.7 1 0.4 1.5 0.3 0.6 8.9 ...
## $ Education : num [1:5000] 1 1 1 2 2 2 2 3 2 3 ...
## $ Mortgage : num [1:5000] 0 0 0 0 0 155 0 0 104 0 ...
## $ Personal_Loan : num [1:5000] 0 0 0 0 0 0 0 0 0 1 ...
## $ Securities_Account: num [1:5000] 1 1 0 0 0 0 0 0 0 0 ...
## $ CD_Account : num [1:5000] 0 0 0 0 0 0 0 0 0 0 ...
## $ Online : num [1:5000] 0 0 0 0 0 1 1 0 1 0 ...
## $ CreditCard : num [1:5000] 0 0 0 0 1 0 0 1 0 0 ...
## - attr(*, "spec")=
## .. cols(
## .. ID = col_double(),
## .. Age = col_double(),
## .. Experience = col_double(),
## .. Income = col_double(),
## .. ZIPCode = col_double(),
## .. Family = col_double(),
## .. CCAvg = col_double(),
## .. Education = col_double(),
## .. Mortgage = col_double(),
## .. Personal_Loan = col_double(),
## .. Securities_Account = col_double(),
## .. CD_Account = col_double(),
## .. Online = col_double(),
## .. CreditCard = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
# resumen de los cuartiles de la data
summary(data)
## ID Age Experience Income ZIPCode
## Min. : 1 Min. :23.00 Min. :-3.0 Min. : 8.00 Min. :90005
## 1st Qu.:1251 1st Qu.:35.00 1st Qu.:10.0 1st Qu.: 39.00 1st Qu.:91911
## Median :2500 Median :45.00 Median :20.0 Median : 64.00 Median :93437
## Mean :2500 Mean :45.34 Mean :20.1 Mean : 73.77 Mean :93169
## 3rd Qu.:3750 3rd Qu.:55.00 3rd Qu.:30.0 3rd Qu.: 98.00 3rd Qu.:94608
## Max. :5000 Max. :67.00 Max. :43.0 Max. :224.00 Max. :96651
## Family CCAvg Education Mortgage
## Min. :1.000 Min. : 0.000 Min. :1.000 Min. : 0.0
## 1st Qu.:1.000 1st Qu.: 0.700 1st Qu.:1.000 1st Qu.: 0.0
## Median :2.000 Median : 1.500 Median :2.000 Median : 0.0
## Mean :2.396 Mean : 1.938 Mean :1.881 Mean : 56.5
## 3rd Qu.:3.000 3rd Qu.: 2.500 3rd Qu.:3.000 3rd Qu.:101.0
## Max. :4.000 Max. :10.000 Max. :3.000 Max. :635.0
## Personal_Loan Securities_Account CD_Account Online
## Min. :0.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.000 Median :0.0000 Median :0.0000 Median :1.0000
## Mean :0.096 Mean :0.1044 Mean :0.0604 Mean :0.5968
## 3rd Qu.:0.000 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:1.0000
## Max. :1.000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## CreditCard
## Min. :0.000
## 1st Qu.:0.000
## Median :0.000
## Mean :0.294
## 3rd Qu.:1.000
## Max. :1.000
indexn <- NULL
indexc <- NULL
par(mfrow = c(2,5))
for(i in 1:columna){
if(is.numeric(data)== TRUE){
titulo <- paste("", colnames(data[i]))
pie(table(data[ , i]), col = i, main = titulo, col=c("#E69F00", "#56B4E9", "#009E73"))
indexn <- c(indexn,i)
} else{
titulo <- paste("", colnames(data[i]))
barplot(table(data[ , i]), main = titulo, col=c("#E69F00", "#56B4E9", "#009E73"))
indexc <- c(indexc,i)
}
}
target <- table(data[ , 10])
titulo <- paste("", colnames(data[10]))
Personal_Loan <-barplot(target, main = titulo, col=c("#E69F00", "#56B4E9", "#009E73"), ylim = c(0,5000))
text(Personal_Loan, target + 2, labels = target)
## La variable Personal_Loan es la variabe target.
## Con respecto a Personal_Loan es una variable desbalanceada.
# Solo el 9.6% aceptaria el prestamo.
# Al modelo se le cambia algunos parametros para equilibrar el conjunto de datos.