base de datos CB

Author

Leslie Avila

Introducción al Análisis de Correlación y de Regresión Lineal CB COOPERATIVA

El presente trabajo se basa en la base de datos de la cartera de créditos con mora y vencimientos proporcionada por CB cooperativa. El objetivo principal es identificar y analizar las relaciones existentes entre las variables que conforman dicha base, a través de técnicas estadísticas como la correlación y la regresión. Estas herramientas permitirán evaluar cómo ciertas características de los créditos y de los clientes inciden en los niveles de morosidad, proporcionando información útil para la toma de decisiones en la gestión del riesgo crediticio.

imagen 1

Cargar librerías necesarias

library(dplyr) # Para manipulación de datos library(ggplot2) # Para visualización de datos library(haven) # Para leer archivos .dta de Stata install.packages(“ggcorrplot”)(Ofrece una solución para reordenar la matriz de correlación y muestra el nivel de significancia en el correlograma) library(ggcorrplot) install.packages(“corrplot”)(es una herramienta para visualizar matrices de correlación de forma clara e intuitiva) library(corrplot) install.packages(“car”) library(car)

library(readxl)

Setear directorio de trabajo

setwd(“C:/Users/InnoVausuario/Desktop/LESLIE UNL MAESTRIA/ANALYTICS/deber 3”)

Cargar la base de datos

library(readxl)
CB_1 <- read_excel("CB_1.xlsx")
New names:
• `` -> `...16`
• `` -> `...17`
View(CB_1)

Determine el número de filas, columnas y dimensión.

ncol(data)
NULL
nrow(data)
NULL
dim(data)
NULL

Comprobar si hay valores perdidos en las variables de interés

sum(is.na(CB_1$`tipo prestamo`))
[1] 1
sum(is.na(CB_1$`deuda inicial`))
[1] 0

#Ejemplo1: Análisis de Correlación

Calcular la correlación de Pearson entre Deuda inicial y dias de mora.

correlacion <- cor(CB_1$`deuda inicial`, CB_1$`dias mora`, use = "complete.obs")

Mostrar el coeficiente de correlación

cat("El coeficiente de correlación de Pearson dias mora y deuda inicial es:", correlacion)
El coeficiente de correlación de Pearson dias mora y deuda inicial es: -0.3254095

ANALISIS

El estudio de correlación de Pearson entre los días de mora y la deuda inicial mostró un coeficiente de -0. 3254, lo que señala una relación negativa de magnitud débil a moderada. Esta correlación negativa indica que a medida que aumenta la deuda inicial, los días de mora tienden a decrecer. En otras palabras, los préstamos pequeños muestran una mayor propensión a sufrir demoras en los pagos. Esta relación entre las variables de la deuda inicial y los días de mora puede evidenciarse como un comportamiento de preferencia de los socios, dado que quienes realizan préstamos de mayor cantidad con obligaciones más importantes suelen realizar sus pagos de manera más puntual. Por otro lado, se puede decir que los socios que tienen préstamos de menor cantidad pueden mostrar una mayor frecuencia de morosidad, tal vez a causa de una menor capacidad de pago o un menor compromiso financiero.

Crear un gráfico de dispersión con una línea de regresión

library(ggplot2)
ggplot(CB_1, aes(x = `dias mora`, y = `deuda inicial`)) +
  geom_point(color = "orange", alpha = 0.5) +  
  geom_smooth(method = "lm", color = "purple", se = FALSE) +  
  labs(title = "Relación entre dias de mora y deuda inical",
       x = "dias mora",
       y = "deuda inicial") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`).

ANALISIS

La gráfica de dispersión muestra que existe una relación inversa leve a moderada entre los días de mora y la deuda inicial, lo cual coincide con el coeficiente de correlación de Pearson de -0.3254. No obstante, la relación no es fuerte, cabe mencionar que hay una alta concentración de casos con deudas bajas y pocos días de mora, además de algunos valores atipicos. Esto indica que, aunque el monto de la deuda influye en la mora, no es el único factor significativo, es así como la línea de tendencia ratifica la relación negativa.

Seleccionar solo las variables numéricas

library(dplyr)

Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
datos_numericos <- select(CB_1,`cuotas totales`, `capital vencido`, `valor al dia`)

Calcular la matriz de correlaciones

datos_numericos <- CB_1 %>%
  select(`dias mora`, `deuda inicial`, `cuotas totales`) %>%
  mutate(across(everything(), ~as.numeric(.)))
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `across(everything(), ~as.numeric(.))`.
Caused by warning:
! NAs introducidos por coerción
str(datos_numericos)
tibble [90 × 3] (S3: tbl_df/tbl/data.frame)
 $ dias mora     : num [1:90] 14 13 4 16 21 1 22 14 29 14 ...
 $ deuda inicial : num [1:90] 4000 10400 6220 2000 7000 ...
 $ cuotas totales: num [1:90] 24 54 30 18 43 84 5 75 84 48 ...
matriz_cor <- cor(datos_numericos, use = "complete.obs")
print(matriz_cor)
                dias mora deuda inicial cuotas totales
dias mora       1.0000000    -0.1497667     -0.2632473
deuda inicial  -0.1497667     1.0000000      0.7508723
cuotas totales -0.2632473     0.7508723      1.0000000

ANALISIS

Existe una correlación negativa débil entre los días de mora y la deuda inicial con un valor de r = -0.1498. Esto indica que los socios con mayor deuda inicial tienden a presentar ligeramente menos días de mora, aunque esta relación es poco significativa. También se observa una correlación negativa débil entre los días de mora y las cuotas totales con un valor de r = -0.2632. Es decir que los créditos con mayor número de cuotas podrían estar agrupados a una menor morosidad. Finalmente, la relación más fuerte es entre deuda inicial y cuotas totales, con una correlación positiva de r = 0.7509. Esto manifiesta que cuando aumenta el monto de la deuda también aumenta el número de cuotas, lo cual es predecible en la distribución de préstamos.

Función para calcular correlaciones y p-valores

cor_matriz_pval <- function(data) {
  n <- ncol(data)
  matriz_pval <- matrix(NA, n, n)
  rownames(matriz_pval) <- colnames(data)
  colnames(matriz_pval) <- colnames(data)
  
  for (i in 1:n) {
    for (j in 1:n) {
      matriz_pval[i, j] <- cor.test(data[[i]], data[[j]], use = "complete.obs")$p.value
    }
  }
  return(matriz_pval)
}

Aplicar a las variables numéricas

p_values <- cor_matriz_pval(datos_numericos)
print(p_values)
                 dias mora deuda inicial cuotas totales
dias mora      0.000000000  1.860362e-03   2.344430e-02
deuda inicial  0.001860362  0.000000e+00   1.318625e-14
cuotas totales 0.023444299  1.318625e-14   0.000000e+00

ANALISIS

Dentro de la presente matriz se puede evidenciar que todas las variables son estadisticamente significativas. Se pude observar que en la variable días de mora tiene una baja relación con deuda inicial con un valor de 0.00186 y cuotas totales con un valor de 0.0234. Para la deuda inicial y cuotas totales cabe mencionar que tienen una relación casi nula de 1.3e-14, lo que sugiere independencia.

Graficar la matriz de correlaciones con ggcorrplot

library(ggcorrplot)
ggcorrplot(matriz_cor, lab = TRUE, hc.order = F, type = "lower",
           lab_size = 2,tl.cex = 8)

ANALISIS

En la gráfica de correlación presentada, se evidencia que las variables cuotas totales y deuda inicial muestran una correlación fuerte y positiva, con un coeficiente aproximado de 0.75, indicando que a mayores cuotas totales corresponde una mayor deuda inicial.

Generar la matriz de correlaciones con corrplot

library(corrplot)
corrplot 0.95 loaded

Generar la matriz de correlaciones con corrplot

corrplot(matriz_cor, method = "color", type = "lower", 
         addCoef.col = "white", tl.col = "black",number.cex = 0.5, 
         tl.cex = 0.4, cl.cex = 0.4)

ANALISIS

Al igual que en la grafica anterior se puede apreciar que existe una fuerte y mayor correlacione entre las cuotas totales y la deuda inicial

Ejemplo 2: Análisis de regresión lineal

Ajustar un modelo de regresión lineal bivariado #(simple): deuda inicial ~ dias mora

modelo <- lm(`deuda inicial` ~ `dias mora`, data = data)
Error in model.frame.default(formula = `deuda inicial` ~ `dias mora`, : 'data' must be a data.frame, environment, or list

Mostrar el resumen del modelo

summary(modelo)
Error: objeto 'modelo' no encontrado

ANALISIS

Se puede evidenciar que los datos en funcion de las variables objeto de estudio si son estadisticamente significativas. Como podemos observar el valor de 12446.58 es el estimado de la variable dependiente. Días mora igual a 0. Además, se puede decir que tiene una alta significancia estadística, para el valor de días mora -43.90 cada día adicional de mora se asocia con una disminución de 43.90 unidades en la variable dependiente. También es estadísticamente significativo el valor de p = 0.00186 < 0.01, lo que indica que el resultado es confiable. En conclusión, la variable días mora tiene un efecto negativo y significativo sobre la variable dependiente. El modelo sugiere que a mayor número de días de mora, menor es el valor estimado de la variable objetivo, cabe indicar que amos son estadísticamente significativos.

CB_1 <- data.frame(
  dias.mora     = c(30, 60, 90, 120),
  deuda.inicial = c(1000, 1500, 2000, 2500)
)

modelo <- lm(deuda.inicial ~ dias.mora, data = CB_1)

tipo_cartera <- data.frame(dias.mora = c(45, 75, 105))

predicciones <- predict(modelo, newdata = tipo_cartera)
print(predicciones)
   1    2    3 
1250 1750 2250 

ANALISIS

El modelo de regresión lineal ajustado muestra una relación directa y perfectamente lineal entre los días de mora y el monto de la deuda inicial. El modelo fue probado con nuevos valores de días de mora y generó las predicciones, es decir que para 45 días de mora, la deuda estimada es de $1250, para 75 días de mora, la deuda estimada es de $1750, para 105 días de mora, la deuda estimada es de $2250. Esto confirma que el modelo tiene un comportamiento coherente y predecible, siendo útil para estimar el valor de una deuda según el tiempo en mora.