La data elegida del presente trabajo trata sobre Ratios de Morosidad según días de incumplimiento de los meses: enero, febrero, marzo del años 2019, la cual tiene una extensión “xls” y forma parte de la base de datos de la SBS. La información estadística de Banca Múltiple registrada en la SBS la podemos encontrar [aquí] (http://www.sbs.gob.pe/app/stats_net/stats/EstadisticaBoletinEstadistico.aspx?p=1#)
library(readxl) #Cargo el paquete para leer Excel del tidyverse # parte de los paquetes que queremos usar
################ANTHONY MENDEZ- ALUMNO BEST###############
# OBJETIVO DE LA TAREA N2-BEST: Descargar 1 archivo de la SBS ####
#configurando mi directorio de trabajo!
setwd("C:/Users/ROCIO/Desktop/TAREA BEST-R")
#copio la url de la SBS a usar sobre Ratios de Morosidad
fileUrl <- "http://intranet2.sbs.gob.pe/estadistica/financiera/2019/Enero/B-220512-en2019.XLS"
# Primero el caso por default
download.file(fileUrl,destfile="MOROSIDAD MALA.XLS")
# Ahora el caso con wb
download.file(fileUrl,destfile="MOROSIDAD.XLS",mode="wb")
mainDir <- "C:/Users/ROCIO/Desktop/TAREA BEST-R"
subDir <- "DATAMOROSIDAD"
dir.create(file.path(mainDir, subDir), showWarnings = T)
subfolder_names <- c("ENERO","FEBRERO","MARZO") #cambiar a mi WD!!
mainDir <- "C:/Users/ROCIO/Desktop/TAREA BEST-R/DATAMOROSIDAD"
for (j in 1:length(subfolder_names)){
dir.create(file.path(mainDir, subfolder_names[j]), showWarnings = T)
}
setwd(“C:/Users/ROCIO/Desktop/TAREA BEST-R/DATAMOROSIDAD/ENERO”) data_ENERO<- readLines(n=1) # leer las siguiente lineas http://intranet2.sbs.gob.pe/estadistica/financiera/2019/Enero/B-220512-en2019.XLS
for (i in data_ENERO) { destfile=strsplit(i,split=“/”) if (!file.exists(destfile[[1]][8])) { download.file(i,destfile[[1]][8],mode=“wb”) }
else print(“El archivo SBS ENERO 2019 esta descargado”)
}
setwd(“C:/Users/ROCIO/Desktop/TAREAN2 BEST/DATAMOROSIDAD/FEBRERO”) data_FEBRERO<- readLines(n=1) http://intranet2.sbs.gob.pe/estadistica/financiera/2019/Febrero/B-220512-fe2019.XLS
for (i in data_FEBRERO) { destfile=strsplit(i,split=“/”) if (!file.exists(destfile[[1]][8])) { download.file(i,destfile[[1]][8],mode=“wb”) } else print(“El archivo SBS FEBRERO 2019 esta descargado”)
}
setwd(“C:/Users/ROCIO/Desktop/TAREAN2 BEST/DATAMOROSIDAD/MARZO”) data_MARZO<- readLines(n=1) http://intranet2.sbs.gob.pe/estadistica/financiera/2019/Marzo/B-220512-ma2019.XLS
for (i in data_MARZO) { destfile=strsplit(i,split=“/”) if (!file.exists(destfile[[1]][8])) { download.file(i,destfile[[1]][8],mode=“wb”) } else print(“El archivo SBS MARZO 2019 esta descargado”)
}
library(readxl) #Cargo el paquete para leer Excel del tidyverse
setwd("C:/Users/ROCIO/Desktop/TAREA BEST-R/DATAMOROSIDAD/ENERO") # Configuro el directorio de trabajo!
data<-readxl::read_xls("B-220512-en2019.xls") #carguemos la data de ENERO 2019 DE LA SBS MOROSIDAD
View(data)
library(dplyr)
library(tidyr)
setwd("C:/Users/ROCIO/Desktop/TAREA BEST-R/DATAMOROSIDAD/ENERO") # Configuro el directorio de trabajo!
data<-readxl::read_xls("B-220512-en2019.xls",skip = 6)
#QUITAMOS LAS PRIMERAS 6 LÍNEAS DEL EXCEL
View(data)
data<-data[complete.cases(data),]
USAMOS LA FUNCIÓN PARA USAR FILAS sin ESPACIOS VACÍOS
complete.cases(data)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [15] TRUE TRUE TRUE
View(data)
options(scipen=999)
#DESACTIVAMOS LA NOMENCLATURA CIENTÍFICO DE NÚMEROS
View(data)
names(data)
## [1] "EMPRESAS"
## [2] "Más de 30 días de incumplimiento"
## [3] "Más de 60 días de incumplimiento"
## [4] "Más de 90 días de incumplimiento*"
## [5] "Más de 120 días de incumplimiento"
## [6] "Morosidad según criterio contable SBS**"
names(data)[7] #SELECCIONAMOS LA EMPRESA 7
## [1] NA
data<-data[-7,] # quitamos la FILA 7
names(data)
## [1] "EMPRESAS"
## [2] "Más de 30 días de incumplimiento"
## [3] "Más de 60 días de incumplimiento"
## [4] "Más de 90 días de incumplimiento*"
## [5] "Más de 120 días de incumplimiento"
## [6] "Morosidad según criterio contable SBS**"
names(data)[15] #SELECCIONAMOS LA EMPRESA 15
## [1] NA
data<-data[-15,] # quitamos la FILA 15
exc = !names(data) %in% "EMPRESAS"
#Esta forma de elegir todo excepto una columna de un vector
exc # va a aplicar todo excepto a la primera columna
## [1] FALSE TRUE TRUE TRUE TRUE TRUE
data[,exc] # ven? no aparece la columns "EMPRESAS"
## # A tibble: 15 x 5
## `Más de 30 días~ `Más de 60 días~ `Más de 90 días~ `Más de 120 día~
## <chr> <chr> <chr> <chr>
## 1 4.1026921471708~ 3.3843568899470~ 2.8027598009634~ 2.6083224077495~
## 2 2.7173827096708~ 2.6972701710665~ 2.6285709846177~ 2.4605477434023~
## 3 3.06311960797199 2.5780889793585~ 2.2979205997732~ 2.0795683900725~
## 4 3.6968370141985~ 3.2954780726225~ 3.0736816855470~ 2.7700796275703~
## 5 4.2765986360997~ 3.3583731690816~ 2.9165484345359~ 2.5568396372371~
## 6 3.5704745161775~ 3.2810340888408~ 3.0807690425354~ 2.8324414444589~
## 7 3.6985890732740~ 2.9550881895675~ 2.4992803081519~ 2.1734985792272~
## 8 5.5008834163959~ 4.4834474549621~ 3.3983693005427~ 2.7820955582131~
## 9 4.2329659071046~ 2.9633404961206~ 2.3571045761917~ 1.9169166975983~
## 10 5.3399794136474~ 3.6854993097396~ 2.5456397153871~ 1.5364618961774~
## 11 0.7583967630086~ 0.6292370754609~ 0.5851105287920~ 0.5826282699492~
## 12 5.3011488617571~ 3.8659043956126~ 2.8141769700876~ 1.8380768701383~
## 13 16.793457387270~ 11.939138032865~ 7.6525897898890~ 5.0217484337430~
## 14 9.3662712614794~ 7.3192936810474~ 4.9675122346518~ 2.8172938662463~
## 15 3.6145699080123~ 3.0224702158120~ 2.6156969476014~ 2.3409642395142~
## # ... with 1 more variable: `Morosidad según criterio contable
## # SBS**` <chr>
data[,exc] = sapply(data[,exc],as.character) # lo convierto a character.
data[,exc] = sapply(data[,exc],as.numeric) # lo convierto a numerico
data[,exc] = round(data[,exc],2) #redondeo a 2 cifras
View(data)
Creamos una columna para todas las empresas del día de actualizando de la presente data
data$Periodo= as.Date("2019-03-26")
data
## # A tibble: 15 x 7
## EMPRESAS `Más de 30 días~ `Más de 60 días~ `Más de 90 días~
## <chr> <dbl> <dbl> <dbl>
## 1 B. Cont~ 4.1 3.38 2.8
## 2 B. de C~ 2.72 2.7 2.63
## 3 B. de C~ 3.06 2.58 2.3
## 4 B. Pich~ 3.7 3.3 3.07
## 5 B. Inte~ 4.28 3.36 2.92
## 6 Scotiab~ 3.57 3.28 3.08
## 7 Interba~ 3.7 2.96 2.5
## 8 Mibanco 5.5 4.48 3.4
## 9 B. GNB 4.23 2.96 2.36
## 10 B. Fala~ 5.34 3.69 2.55
## 11 B. Sant~ 0.76 0.63 0.59
## 12 B. Ripl~ 5.3 3.87 2.81
## 13 B. Azte~ 16.8 11.9 7.65
## 14 B. Cenc~ 9.37 7.32 4.97
## 15 TOTAL B~ 3.61 3.02 2.62
## # ... with 3 more variables: `Más de 120 días de incumplimiento` <dbl>,
## # `Morosidad según criterio contable SBS**` <dbl>, Periodo <date>
View(data)
EMPRESAS <- c( "BBVA","B.del Comercio", "BCP",
"Pichincha","BIF","Scotiabank",
"Interbank","Mibanco",
"GNB","Falabella","Santander","Ripley","Azteca","Cencosud",
"TOTAL BANCA MÚLTIPLE")
cbind(EMPRESAS, data)
## EMPRESAS
## 1 BBVA
## 2 B.del Comercio
## 3 BCP
## 4 Pichincha
## 5 BIF
## 6 Scotiabank
## 7 Interbank
## 8 Mibanco
## 9 GNB
## 10 Falabella
## 11 Santander
## 12 Ripley
## 13 Azteca
## 14 Cencosud
## 15 TOTAL BANCA MÚLTIPLE
## EMPRESAS
## 1 B. Continental
## 2 B. de Comercio
## 3 B. de Crédito del Perú (con sucursales en el exterior)
## 4 B. Pichincha
## 5 B. Interamericano de Finanzas
## 6 Scotiabank Perú
## 7 Interbank (con sucursales en el exterior)
## 8 Mibanco
## 9 B. GNB
## 10 B. Falabella Perú
## 11 B. Santander Perú
## 12 B. Ripley
## 13 B. Azteca Perú
## 14 B. Cencosud
## 15 TOTAL BANCA MÚLTIPLE
## Más de 30 días de incumplimiento Más de 60 días de incumplimiento
## 1 4.10 3.38
## 2 2.72 2.70
## 3 3.06 2.58
## 4 3.70 3.30
## 5 4.28 3.36
## 6 3.57 3.28
## 7 3.70 2.96
## 8 5.50 4.48
## 9 4.23 2.96
## 10 5.34 3.69
## 11 0.76 0.63
## 12 5.30 3.87
## 13 16.79 11.94
## 14 9.37 7.32
## 15 3.61 3.02
## Más de 90 días de incumplimiento* Más de 120 días de incumplimiento
## 1 2.80 2.61
## 2 2.63 2.46
## 3 2.30 2.08
## 4 3.07 2.77
## 5 2.92 2.56
## 6 3.08 2.83
## 7 2.50 2.17
## 8 3.40 2.78
## 9 2.36 1.92
## 10 2.55 1.54
## 11 0.59 0.58
## 12 2.81 1.84
## 13 7.65 5.02
## 14 4.97 2.82
## 15 2.62 2.34
## Morosidad según criterio contable SBS** Periodo
## 1 3.09 2019-03-26
## 2 2.73 2019-03-26
## 3 2.80 2019-03-26
## 4 3.58 2019-03-26
## 5 3.02 2019-03-26
## 6 3.51 2019-03-26
## 7 2.65 2019-03-26
## 8 5.30 2019-03-26
## 9 2.79 2019-03-26
## 10 2.95 2019-03-26
## 11 0.64 2019-03-26
## 12 3.09 2019-03-26
## 13 9.30 2019-03-26
## 14 5.77 2019-03-26
## 15 3.04 2019-03-26
data <- data.frame(EMPRESAS, data) data
ELIMINAR FILA 2
names(data)
## [1] "EMPRESAS"
## [2] "Más de 30 días de incumplimiento"
## [3] "Más de 60 días de incumplimiento"
## [4] "Más de 90 días de incumplimiento*"
## [5] "Más de 120 días de incumplimiento"
## [6] "Morosidad según criterio contable SBS**"
## [7] "Periodo"
names(data)[2]
## [1] "Más de 30 días de incumplimiento"
data<-data[,-2]
CAMBIAR LOS NOMBRES
en_filas(data)<-c(“EMPRESAS”, “BBVA”,“B.del Comercio”, “BCP”, “Pichincha”,“BIF”,“Scotiabank”, “Interbank”,“Mibanco”, “GNB”,“Falabella”,“Santander”,“Ripley”,“Azteca”,“Cencosud”, “TOTAL BANCA MÚLTIPLE”) View(data)
data$EMPRESAS[5]="Morosidad según criterio contable SBS"
saveRDS(data,file="DatalimpiaMorosidad.RDS")
data(data)
library(readxl) #Cargo el paquete para leer Excel del tidyverse
setwd("C:/Users/ROCIO/Desktop/TAREA BEST-R/DATAMOROSIDAD/ENERO") # Configuro el directorio de trabajo!
datamorosidad <- readRDS("DatalimpiaMorosidad.RDS") #carguemos la data de ENERO 2019 DE LA SBS MOROSIDAD
View(datamorosidad)
library(dplyr) #Para ver algunas características básicas del conjunto de datos
dim(datamorosidad) #No indica que tenemos 15 filas con 7 columnas
## [1] 15 7
str(datamorosidad)
## 'data.frame': 15 obs. of 7 variables:
## $ EMPRESAS : Factor w/ 15 levels "Azteca","B.del Comercio",..: 3 2 4 11 5 14 9 10 8 7 ...
## $ Más.de.30.días.de.incumplimiento : num 4.1 2.72 3.06 3.7 4.28 3.57 3.7 5.5 4.23 5.34 ...
## $ Más.de.60.días.de.incumplimiento : num 3.38 2.7 2.58 3.3 3.36 3.28 2.96 4.48 2.96 3.69 ...
## $ Más.de.90.días.de.incumplimiento. : num 2.8 2.63 2.3 3.07 2.92 3.08 2.5 3.4 2.36 2.55 ...
## $ Más.de.120.días.de.incumplimiento : num 2.61 2.46 2.08 2.77 2.56 2.83 2.17 2.78 1.92 1.54 ...
## $ Morosidad.según.criterio.contable.SBS..: num 3.09 2.73 2.8 3.58 3.02 3.51 2.65 5.3 2.79 2.95 ...
## $ Periodo : Date, format: "2019-03-26" "2019-03-26" ...
datamorosidad
## EMPRESAS Más.de.30.días.de.incumplimiento
## 1 BBVA 4.10
## 2 B.del Comercio 2.72
## 3 BCP 3.06
## 4 Pichincha 3.70
## 5 BIF 4.28
## 6 Scotiabank 3.57
## 7 Interbank 3.70
## 8 Mibanco 5.50
## 9 GNB 4.23
## 10 Falabella 5.34
## 11 Santander 0.76
## 12 Ripley 5.30
## 13 Azteca 16.79
## 14 Cencosud 9.37
## 15 TOTAL BANCA MÚLTIPLE 3.61
## Más.de.60.días.de.incumplimiento Más.de.90.días.de.incumplimiento.
## 1 3.38 2.80
## 2 2.70 2.63
## 3 2.58 2.30
## 4 3.30 3.07
## 5 3.36 2.92
## 6 3.28 3.08
## 7 2.96 2.50
## 8 4.48 3.40
## 9 2.96 2.36
## 10 3.69 2.55
## 11 0.63 0.59
## 12 3.87 2.81
## 13 11.94 7.65
## 14 7.32 4.97
## 15 3.02 2.62
## Más.de.120.días.de.incumplimiento
## 1 2.61
## 2 2.46
## 3 2.08
## 4 2.77
## 5 2.56
## 6 2.83
## 7 2.17
## 8 2.78
## 9 1.92
## 10 1.54
## 11 0.58
## 12 1.84
## 13 5.02
## 14 2.82
## 15 2.34
## Morosidad.según.criterio.contable.SBS.. Periodo
## 1 3.09 2019-03-26
## 2 2.73 2019-03-26
## 3 2.80 2019-03-26
## 4 3.58 2019-03-26
## 5 3.02 2019-03-26
## 6 3.51 2019-03-26
## 7 2.65 2019-03-26
## 8 5.30 2019-03-26
## 9 2.79 2019-03-26
## 10 2.95 2019-03-26
## 11 0.64 2019-03-26
## 12 3.09 2019-03-26
## 13 9.30 2019-03-26
## 14 5.77 2019-03-26
## 15 3.04 2019-03-26
head(datamorosidad,n=5) #si queremos evaluar solo los 5 primeras bancos
## EMPRESAS Más.de.30.días.de.incumplimiento
## 1 BBVA 4.10
## 2 B.del Comercio 2.72
## 3 BCP 3.06
## 4 Pichincha 3.70
## 5 BIF 4.28
## Más.de.60.días.de.incumplimiento Más.de.90.días.de.incumplimiento.
## 1 3.38 2.80
## 2 2.70 2.63
## 3 2.58 2.30
## 4 3.30 3.07
## 5 3.36 2.92
## Más.de.120.días.de.incumplimiento
## 1 2.61
## 2 2.46
## 3 2.08
## 4 2.77
## 5 2.56
## Morosidad.según.criterio.contable.SBS.. Periodo
## 1 3.09 2019-03-26
## 2 2.73 2019-03-26
## 3 2.80 2019-03-26
## 4 3.58 2019-03-26
## 5 3.02 2019-03-26
colnames(datamorosidad)<-c("BANCOS", "+30 DÍAS INCUMPLIMIENTO", "+60 DÍAS INCUMPLIMIENTO",
"+90 DÍAS INCUMPLIMIENTO", "120 DÍAS INCUMPLIMIENTO","MOROSIDAD CRITERIO CONTABLE SBS",
"PERIODO")
View(datamorosidad)
Para explorar y ver el tipo de las variables en nuestra data SBS glimpse(datamorosidad) ###podemos ver a las columnas con formato “dbl” que son data numérica El resumen de las variables
summary(datamorosidad)
## BANCOS +30 DÍAS INCUMPLIMIENTO +60 DÍAS INCUMPLIMIENTO
## Azteca :1 Min. : 0.760 Min. : 0.630
## B.del Comercio:1 1st Qu.: 3.590 1st Qu.: 2.960
## BBVA :1 Median : 4.100 Median : 3.300
## BCP :1 Mean : 5.069 Mean : 3.965
## BIF :1 3rd Qu.: 5.320 3rd Qu.: 3.780
## Cencosud :1 Max. :16.790 Max. :11.940
## (Other) :9
## +90 DÍAS INCUMPLIMIENTO 120 DÍAS INCUMPLIMIENTO
## Min. :0.590 Min. :0.580
## 1st Qu.:2.525 1st Qu.:2.000
## Median :2.800 Median :2.460
## Mean :3.083 Mean :2.421
## 3rd Qu.:3.075 3rd Qu.:2.775
## Max. :7.650 Max. :5.020
##
## MOROSIDAD CRITERIO CONTABLE SBS PERIODO
## Min. :0.640 Min. :2019-03-26
## 1st Qu.:2.795 1st Qu.:2019-03-26
## Median :3.040 Median :2019-03-26
## Mean :3.617 Mean :2019-03-26
## 3rd Qu.:3.545 3rd Qu.:2019-03-26
## Max. :9.300 Max. :2019-03-26
##
hist(datamorosidad$`+30 DÍAS INCUMPLIMIENTO`)
hist(datamorosidad$`+60 DÍAS INCUMPLIMIENTO`)
hist(datamorosidad$`+90 DÍAS INCUMPLIMIENTO`)
hist(datamorosidad$`120 DÍAS INCUMPLIMIENTO`)
hist(datamorosidad$`MOROSIDAD CRITERIO CONTABLE SBS`)
hist(datamorosidad$`+30 DÍAS INCUMPLIMIENTO`,freq=FALSE,col="lightcyan")
Agregamos un título a histograma de Ratios de morosidad de +30 días incumplimiento
hist(datamorosidad$`+30 DÍAS INCUMPLIMIENTO`,freq=FALSE,col="lightcyan", main="Histograma- Ratios Morosidad de +30 días incumplimiento")
lines(density(datamorosidad$`+30 DÍAS INCUMPLIMIENTO`),col="red",lwd=2)
hist(datamorosidad$`+60 DÍAS INCUMPLIMIENTO`,freq=FALSE,col="lightcyan", main="Histograma- Ratios Morosidad de +60 días incumplimiento")
lines(density(datamorosidad$`+60 DÍAS INCUMPLIMIENTO`),col="red",lwd=2)
hist(datamorosidad$`+90 DÍAS INCUMPLIMIENTO`,freq=FALSE,col="lightcyan", main="Histograma- Ratios Morosidad de +90 días incumplimiento")
lines(density(datamorosidad$`+90 DÍAS INCUMPLIMIENTO`),col="red",lwd=2)
hist(datamorosidad$`120 DÍAS INCUMPLIMIENTO`,freq=FALSE,col="lightcyan", main="Histograma- Ratios Morosidad de 120 días incumplimiento")
lines(density(datamorosidad$`120 DÍAS INCUMPLIMIENTO`),col="red",lwd=2)
hist(datamorosidad$`MOROSIDAD CRITERIO CONTABLE SBS`,freq=FALSE,col="lightcyan", main="Histograma- Ratios Morosidad de criterio contable SBS")
lines(density(datamorosidad$`MOROSIDAD CRITERIO CONTABLE SBS`),col="red",lwd=2)
CONTINUARÉ CON EL ANÁLISIS EXPLORATORIO DE GRÁFICOS Y EL ANÁLISIS ESTADÍSTICO A PROYECTAR EN LAS SIGUIENTES PUBLICACIONES