library(readxl)base de datos CB
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.
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)
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.