SOLICITUD DE CRÉDITOS PORCENTAJE

library(tidyr)
## Warning: package 'tidyr' was built under R version 4.4.3
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en Solicitud
datos_limpios <- datos %>%
  filter(!is.na(`¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`)) %>%
  select(Solicitud = `¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`)

# Crear tabla de frecuencias en porcentajes
tabla_frecuencia <- datos_limpios %>%
  count(Solicitud, name = "Frecuencia") %>%  # Contar respuestas
  mutate(Porcentaje = (Frecuencia / sum(Frecuencia)) * 100)  # Calcular porcentaje

# Crear gráfico con porcentajes y leyenda
ggplot(tabla_frecuencia, aes(x = Solicitud, y = Porcentaje, fill = Solicitud)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +  # <- Quitado show.legend = FALSE
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 3.5) +  # Aumentado tamaño texto
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas eje X
  scale_fill_brewer(palette = "Set2", name = "Respuesta") +  # <- Leyenda con título
  labs(title = "Solicitud de Crédito en el último año", 
       x = NULL,  # Eliminado título eje X
       y = "Porcentaje de Personas") +
  theme_minimal() +
  theme(axis.text.x = element_blank(),  # Ocultar texto eje X
        axis.ticks.x = element_blank(),  # Eliminar marcas eje X
        legend.position = "bottom",  # Leyenda abajo
        legend.text = element_text(size = 5),  # Tamaño texto leyenda
        legend.title = element_text(face = "bold"),  # Título leyenda en negrita
        plot.title = element_text(hjust = 0.5, face = "bold"))  # Título centrado y en negrita

En términos generales se puede observar que la mayoría de personas no tiene créditos y tampoco los han solicitado en el último año, en este caso, el 73.2%, mientras que una pequeña proporción de personas 8.1% si han solicitado créditos en el último año, y además ya contaban con otros. Además el 8,7% de personas solicitaron por primera vez un crédito en el último año.

SOLICITUD DE CRÉDITO POR GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`)) %>%
  group_by(GENERO, Tipo = `¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(GENERO), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 2) +
  scale_fill_manual(values = paleta, name = "Solicitud") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Solicitud de créditos por género",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 5),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se observa que a comparación de los hombres, las mujeres no tienen ni piden créditos, en este caso el 77%% de ellas expresaron no hacerlo frente a 68% de los hombres. También se observa que el 9.7% de hombres pidieron crédito en el último año y además ya contaban con otros más, frente al 7.9% de mujeres.

SOLICITUD DE CRÉDITO POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`)) %>%
  group_by(EDADR, Tipo = `¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 2) +
  scale_fill_manual(values = paleta, name = "Solicitud") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Solicitud de créditos por grupo de edad",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 5),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se puede apreciar que las personas mayores a 56 años son quienes menos piden y tienen créditos(74.4%) de la población encuestada. Quienes más piden por primera vez créditos son las personas entre 18-25 años, en este caso, el 10.3% de los encuestados.

SOLICITUD DE CRÉDITOS POR EDAD Y GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en EDADR, GENERO y Solicitud
datos_limpios <- datos %>%
  filter(!is.na(EDADR) & !is.na(GENERO) & !is.na(`¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`)) %>%
  select(EDADR, GENERO, Solicitud = `¿Usted solicitó algún(os) crédito(s) y/o préstamo(s) durante el último año?`) 

# Crear gráfico con porcentajes
datos_limpios %>%
  group_by(EDADR, GENERO, Solicitud) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(EDADR, GENERO, Solicitud, fill = list(Conteo = 0)) %>%  # Asegura todas las categorías
  group_by(EDADR, GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%  # Calcular porcentaje
  ggplot(aes(x = factor(EDADR), y = Porcentaje, fill = Solicitud)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +  
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8), vjust = -0.3, size = 2) +  
  facet_wrap(~GENERO) +  
  scale_x_discrete(drop = FALSE) +  
  scale_fill_brewer(palette = "Set2", drop = FALSE) +  
  labs(title = "Solicitud de Crédito por edad y género", 
       x = "Edad", 
       y = "Porcentaje", 
       fill = "Solicitud de Crédito") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),  
        legend.position = "bottom",  
        legend.text = element_text(size = 5))

Tanto en hombres como en mujeres, la tendencia que es no tengan ni hayan solicitado créditos en todas las edades.

RAZONES PARA NO SOLICITAR CRÉDITOS

library(tidyr)
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en Razón
datos_limpios <- datos %>%
  filter(!is.na(`¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`)) %>%
  select(Razon = `¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`)  

# Crear gráfico ordenado de mayor a menor frecuencia en porcentaje
datos_limpios %>%
  count(Razon, name = "Conteo") %>%  # Contar respuestas por tipo de razón
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%  # Calcular porcentaje
  complete(Razon, fill = list(Conteo = 0, Porcentaje = 0)) %>%  # Asegurar que todas las categorías aparezcan
  ggplot(aes(x = reorder(Razon, -Porcentaje), y = Porcentaje, fill = Razon)) +  # Ordenar de mayor a menor
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +  # <- Quitado show.legend = FALSE
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 3.5) +  # Aumentado tamaño texto
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas eje X
  scale_fill_brewer(palette = "Set2", name = "Razones") +  # <- Leyenda con título
  labs(title = "Razones para no solicitar crédito en el último año", 
       x = NULL,  # Eliminado título eje X
       y = "Porcentaje de respuestas") +
  theme_minimal() +
  theme(axis.text.x = element_blank(),  # Ocultar texto eje X
        axis.ticks.x = element_blank(),  # Eliminar marcas eje X
        legend.position = "bottom",  # Leyenda abajo
        legend.text = element_text(size = 6),  # Tamaño texto leyenda
        legend.title = element_text(face = "bold"),  # Título leyenda en negrita
        plot.title = element_text(hjust = 0.5, face = "bold", size = 12),  # Título centrado y en negrita
        panel.grid.major.x = element_blank())  # Eliminar líneas de cuadrícula verticales
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors

En términos generales, el principal motivo para no solicitar crédito es porque no les gusta tener deudas, con el 59.5% de personas dando esta respuesta, seguido de que no tienen como responder debido a ingresos bajos, con 13.7% de personas y 3.79% personas no solicitan créditos porque lo consideran costoso.

RAZONES PARA NO SOLICITAR CRÉDITOS POR GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en GENERO y Razón
datos_limpios <- datos %>%
  filter(!is.na(GENERO) & !is.na(`¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`)) %>%
  select(GENERO, Razon = `¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`) 

# Procesar datos y calcular porcentaje
top_razones <- datos_limpios %>%
  group_by(GENERO, Razon) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(GENERO, Razon, fill = list(Conteo = 0)) %>%  # Asegurar todas las categorías
  group_by(GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%  # Calcular porcentaje
  arrange(desc(Porcentaje)) %>%
  slice_max(order_by = Porcentaje, n = 5) %>%  # Top 5 razones por género
  ungroup()

# Crear gráfico con leyenda de colores abajo
ggplot(top_razones, aes(x = reorder(Razon, -Porcentaje), y = Porcentaje, fill = Razon)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), 
           color = "black") +  # <- QUITAR show.legend = FALSE
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, size = 3, fontface = "bold") +  
  facet_wrap(~GENERO, scales = "free_x") +  # Separar por género
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_brewer(palette = "Set2", name = "Razones") +  # <- MOSTRAR leyenda con título
  labs(title = "Razones por las que no se solicitó crédito según género", 
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje") +
  theme_minimal() +
  theme(axis.text.x = element_blank(),  # Ocultar texto del eje X
        axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
        axis.title = element_text(face = "bold"),  
        legend.position = "bottom",  # <- LEYENDA ABAJO
        legend.text = element_text(size = 8),  # Tamaño texto leyenda
        legend.title = element_text(face = "bold"),  # Título leyenda en negrita
        panel.grid.major.x = element_blank())  # Limpiar líneas de fondo

Se puede apreciar tanto en hombres como en mujeres que el motivo principal para no solicitar créditos es porque no les gusta tener deudas, siendo 60.1% y 59.01% respectivamente. Seguido de que no los solicitan porque no tienen como responder/ingresos bajos, con el 15,2% de mujeres dando esta respuesta frente al 11,7% de hombres.El tercer motivo es porque lo considera costoso, con 7,5% mujeres y 8,5% de hombres.

RAZONES PARA NO SOLICITAR CRÉDITOS POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`)) %>%
  group_by(EDADR, Tipo = `¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 2) +
  scale_fill_manual(values = paleta, name = "Razón") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Razones para no solicitar créditos por grupo de edad",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 7),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 6),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se observa que en todas la edades el motivo principal para no pedir créditos es porque no les gusta endeudarse, seguido de porque no tienen como responder, este caso se da especialmente en personas mayores a 56 años. En el rango de edad de 18-25 años, se puede evidenciar que el 64.2%% de jovenes da este motivo, seguido del 9.3% que responde que tiene ingresos bajos.

RAZONES PARA NO SOLICITAR CRÉDITOS POR EDAD Y GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en EDADR, GENERO y Solicitud
datos_limpios <- datos %>%
  filter(!is.na(EDADR) & !is.na(GENERO) & !is.na(`¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`)) %>%
  select(EDADR, GENERO, Razon = `¿Cuál(es) es(son) la(s) razón(es) por la(s) que no solicitó crédito en el último año?`) 

# Crear gráfico con porcentajes
datos_limpios %>%
  group_by(EDADR, GENERO, Razon) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(EDADR, GENERO, Razon, fill = list(Conteo = 0)) %>%  # Asegura todas las categorías
  group_by(EDADR, GENERO) %>%
  mutate(Porcentaje = Conteo / sum(Conteo) * 100) %>%  # Calcula porcentaje por grupo
  arrange(desc(Conteo)) %>% 
  slice_max(order_by = Conteo, n = 4) %>%  # Mantiene solo las 4 razones principales
  ungroup() %>% 
  ggplot(aes(x = factor(EDADR), y = Porcentaje, fill = Razon)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +  
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)),  # Formato con 1 decimal
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 2.3) +  
  facet_wrap(~GENERO) +  
  scale_x_discrete(drop = FALSE) +  
  scale_fill_brewer(palette = "Set2", drop = FALSE) +  
  labs(title = "Razón para no solicitar Crédito por edad y género", 
       x = "EDAD", 
       y = "Porcentaje de Personas",  # Cambiado a porcentaje
       fill = "Razón") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),  
        legend.position = "bottom",  
        legend.text = element_text(size = 7))

Se puede apreciar que en todos los rangos de edades que el motivo principal para no solicitar crédito es porque no les gusta tener deudas, seguido de que no tiene como responder por ingresos bajos.

Puntualmente en la población de estudio (personas entre 18-25 años), el motivo principal para no solicitar créditos es porque no le gusta tener deudas, con un 62% de personas este rango de edad dando esta respuesta, seguido de un 6.2% de personas que lo considera costoso.

La gráfica deja apreciar que la población adulta mayor es la que más se ve afectada por tener ingresos bajos y este es su impedimento principal para solicitar créditos.

##  [1] NA                                        
##  [2] "Bancos"                                  
##  [3] "Cooperativa"                             
##  [4] "Familia/amigos/vecinos"                  
##  [5] "Fiado/ tendero"                          
##  [6] "FinTech"                                 
##  [7] "Empresa de servicios públicos"           
##  [8] "Almacén"                                 
##  [9] "Prestamista (ej. gota a gota)"           
## [10] "Compañía de financiamiento"              
## [11] "ONG – Fundación"                         
## [12] "Caja de compensación/ Fondo de empleados"
## [13] "Cadena de amigos"                        
## [14] "Casa de empeño"                          
## [15] "Vendedor de insumos"

ENTIDADES A LAS QUE SE SOLICITÓ CRÉDITO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Preparar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`)) %>%
  select(Entidad = `¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`)

# 2. Procesamiento
datos_grafico <- datos_limpios %>%
  count(Entidad, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  complete(Entidad, fill = list(Porcentaje = 0)) %>%
  arrange(desc(Porcentaje))

# 3. Crear paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 4. Gráfico con colores únicos
ggplot(datos_grafico, aes(x = reorder(Entidad, -Porcentaje), y = Porcentaje, fill = Entidad)) +
  geom_bar(stat = "identity", color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            vjust = -0.3, size = 3.5, fontface = "bold") +
  scale_fill_manual(values = paleta, name = "Entidades") +
  scale_x_discrete(labels = NULL) +
  labs(title = "Distribución de solicitudes de crédito por entidad",
       y = "Porcentaje de personas",
       x = NULL) +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    legend.position = "bottom",
    legend.text = element_text(size = 7),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 5),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 6, byrow = TRUE))  # Organizar leyenda en 3 filas

Se aprecia que la entidad a la que la población encuestada más pide créditos es a los almacenes, el 16% de la población, seguido de los bancos, con un 15.6%, a familia/amigos/vecinos con 14.8%, a compañías de financiamiento con 10.2%, y el 8.1% de la población acude a gota a gota.

ENTIDADES A LAS QUE SE SOLICITÓ CRÉDITO POR GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)

# Filtrar datos eliminando NA en GENERO y Entidad
datos_limpios <- datos %>%
  filter(!is.na(GENERO) & !is.na(`¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`)) %>%
  select(GENERO, Entidad = `¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`) 

# Procesar datos y calcular porcentajes
top_entidades <- datos_limpios %>%
  group_by(GENERO, Entidad) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(GENERO, Entidad, fill = list(Conteo = 0)) %>%  
  group_by(GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%  
  arrange(desc(Porcentaje)) %>%
  slice_max(order_by = Porcentaje, n = 5) %>%  
  ungroup()

# Crear gráfico con porcentajes (sin etiquetas en eje X)
ggplot(top_entidades, aes(x = reorder(Entidad, -Porcentaje), y = Porcentaje, fill = Entidad)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +  
  geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 3, fontface = "bold") +  
  facet_wrap(~GENERO, scales = "free_x") +  
  scale_x_discrete(labels = NULL) +  # Elimina etiquetas del eje X
  scale_fill_brewer(palette = "Set2", drop = FALSE) +  
  labs(title = "Entidades a las que se solicitó crédito según género", 
       x = NULL,  # Elimina título del eje X
       y = "Porcentaje de Personas", 
       fill = "Entidad") +  # Conserva leyenda de colores
  theme_minimal() +
  theme(axis.text.x = element_blank(),  # Oculta texto del eje X
        axis.ticks.x = element_blank(),  # Elimina marcas del eje X
        axis.title.x = element_blank(),  # Elimina espacio reservado para el título
        axis.title.y = element_text(face = "bold"),  
        legend.position = "bottom",  
        legend.text = element_text(size = 9),  
        panel.grid.major.x = element_blank())  

Se puede observar que la entidad a la que más acuden las mujeres a solicitar créditos es los bancos (17%), seguido de conocidos (15.3%) y almacenes (13.9%). En el caso de los hombres, se financian más que todo a partir de almacenes (18%), seguido de bancos y conocidos (14.3%). Además, el 8,5% de ellos se financia a través de gota a gota.

ENTIDADES A LAS QUE SE SOLICITÓ CRÉDITO POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Preparar datos - Top entidades
top_entidades <- datos %>% 
  filter(!is.na(`¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`)) %>%  
  count(Tipo_credito = `¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`, name = "Total") %>%  
  top_n(6, Total)  # Seleccionar las 6 entidades con mayor frecuencia

# 2. Procesamiento para gráfico
datos_grafico <- datos %>% 
  filter(`¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?` %in% top_entidades$Tipo_credito) %>%  
  group_by(EDADR, Tipo_credito = `¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`) %>%  
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100)

# 3. Crear paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo_credito))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo_credito)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black") +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3) +
  scale_fill_manual(values = paleta, name = "Entidades") +
  scale_x_discrete(drop = FALSE) +
  labs(title = "Distribución de solicitudes de crédito por edad y entidad",
       y = "Porcentaje de personas",
       x = "Grupo de edad") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = "bottom",
    legend.text = element_text(size = 7),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 2, byrow = TRUE))

Se puede observar que los jóvenes entre 18-25 años acuden en mayor medida a los bancos para financiarse (27.1%), seguido de compañías de financiamiento (24%). Mientras que personas entre los 26-35 se financian a mayoritariamente a través de almacenes (25%). También se puede observar que a media que aumneta la edad, se vuelve más común financiarse a través de gota a gota, llegando a un punto máximo en el rango de edad de 36-45 años, donde el 19% de personas expresaron que dependen de estos prestamistas.

ENTIDADES A LAS QUE SE SOLICITÓ CRÉDITO POR EDAD Y GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# Procesamiento de datos
datos_limpios <- datos %>%
  filter(!is.na(EDADR) & !is.na(GENERO) & !is.na(`¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`)) %>%
  select(EDADR, GENERO, Entidad = `¿Ante qué entidades solicitó su(s) crédito(s) y/o préstamo(s)?`) 

# Paleta de colores única
n_colores <- length(unique(datos_limpios$Entidad))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# Gráfico mejorado
datos_limpios %>%
  group_by(EDADR, GENERO, Entidad) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(EDADR, GENERO, Entidad, fill = list(Conteo = 0)) %>%
  group_by(EDADR, GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  slice_max(order_by = Conteo, n = 5) %>%
  ungroup() %>%
  ggplot(aes(x = factor(EDADR), y = Porcentaje, fill = Entidad)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 2) +
  facet_wrap(~GENERO) +
  scale_fill_manual(values = paleta, name = "Entidades") +
  scale_x_discrete(drop = FALSE) +
  labs(title = "Entidades a las que se solicitó crédito por edad y género", 
       x = NULL, 
       y = "Porcentaje de Personas") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position = "bottom",
        legend.text = element_text(size = 7),
        panel.grid.major.x = element_blank()) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se puede observar que la mayoría de mujeres (23.9%) entre los 18-25 años pide créditos especialmente a compañías de financiamiento, mientras que los hombres en este mismo rango de edad, lo hacen pero a bancos, siendo el 25,8% de ellos.

Un comportamiento contrario ocurre en las edades de 26-35, donde la mayoría de mujeres solicita créditos a bancos (22%), mientras que la mayoría de hombres lo hace a almacenes (21.6%). En el caso de las edades de 36-45 años, la mayoría de mujeres se financia a través de familia/amigos vecinos (21.3%), mientras que la mayoría de hombres en esta edad lo hace a través de prestamistas como gota a gota (10.6%). En las edades de 46-55 años, la mayoría de mujeres se financia a través de bancos y conocidos (16% cada una), mientras que los hombres lo hacen mayoritariamente a través de almacenes (20.2%). Por último, las mujeres mayores se financian más que todo a través de bancos (16.3%) y los hombres mayores a través de almacenes (19.3%).

TIPO DE CRÉDITO SOLICITADO

El crédito más solicitado es el de consumo, con el 55.5% personas dando esta respuesta, seguido de tarjeta de crédito con el 15.2% personas, crédito comercial con 13.6%, microcrédito con 9.1% personas y crédito de vivienda con 6.5% de personas.

TIPO DE CRÉDITO SOLICITADO POR GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(GENERO) & !is.na(`¿Qué tipo de crédito(s) solicitó?`)) %>%
  select(GENERO, Tipo = `¿Qué tipo de crédito(s) solicitó?`) 

# 2. Calcular porcentajes por género
datos_grafico <- datos_limpios %>%
  group_by(GENERO, Tipo) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(GENERO, Tipo, fill = list(Conteo = 0)) %>%
  group_by(GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje)) %>%
  slice_max(order_by = Porcentaje, n = 5) %>%  # Top 5 por género
  ungroup()

# 3. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), 
           color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3) +
  facet_wrap(~GENERO, scales = "free_x") +
  scale_x_discrete(labels = NULL) +  # Ocultar etiquetas eje X
  scale_fill_manual(values = paleta, name = "Tipo de crédito") +
  labs(title = "Distribución de tipos de crédito solicitado por género",
       x = NULL,
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank(),
    strip.text = element_text(face = "bold")  # Texto de facetas en negrita
  ) +
  guides(fill = guide_legend(nrow = 2))  # Leyenda en 2 filas si es necesario

Las mujeres son quienes más solicitan créditos de consumo frente a los hombres, con un total de 61.5% y 49.8% respectivamente. Sin embargo, los hombres son quienes más solicitan tarjetas de crédito, siendo el 19.8% de ellos frente al 10.5% de mujeres. Tambien los hombres solicitan más créditos comerciales frente a las mujeres, con un total de 14% de hombres contra 13.2% mujeres. Además, los hombres soliictan más créditos de vivienda, frente a las mujeres, siendo 6.8% y 6.1% respectivamente.

TIPO DE CRÉDITO SOLICITADO POR EDAD

Se puede notar que el tipo de crédito que más piden los adultos jóvenes son los créditos de consumo, con el 57% de personas en el rango de edad de 18-25, seguido de la tarjeta de crédito, con el 57,5% de ellos, luego microcrédito y crédito comercial (8.5% cada uno.). El que menos piden los jóvenes es el crédito de vivienda.

TIPO DE CRÉDITO SOLICITADO POR EDAD Y GÉNERO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# Procesamiento de datos
datos_limpios <- datos %>%
  filter(!is.na(EDADR) & !is.na(GENERO) & !is.na(`¿Qué tipo de crédito(s) solicitó?`)) %>%
  select(EDADR, GENERO, Entidad = `¿Qué tipo de crédito(s) solicitó?`) 

# Paleta de colores única
n_colores <- length(unique(datos_limpios$Entidad))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# Gráfico mejorado
datos_limpios %>%
  group_by(EDADR, GENERO, Entidad) %>%
  summarise(Conteo = n(), .groups = "drop") %>%
  complete(EDADR, GENERO, Entidad, fill = list(Conteo = 0)) %>%
  group_by(EDADR, GENERO) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  slice_max(order_by = Conteo, n = 5) %>%
  ungroup() %>%
  ggplot(aes(x = factor(EDADR), y = Porcentaje, fill = Entidad)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8), 
            vjust = -0.3, 
            size = 1.8) +
  facet_wrap(~GENERO) +
  scale_fill_manual(values = paleta, name = "Tipo de crédito") +
  scale_x_discrete(drop = FALSE) +
  labs(title = "Entidades a las que se solicitó crédito por edad y género", 
       x = NULL, 
       y = "Porcentaje de Personas") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position = "bottom",
        legend.text = element_text(size = 7),
        panel.grid.major.x = element_blank()) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

El tipo de crédito que más solicitan las mujeres entre los 18-25 años es el crédito de consumo (65.9% de ellas), al igual que los hombres en este rango de edad (50.4%).Sin embargo, los hombres son quienes más solicitan tarjetas de crédito con 33% de hombres dnado esta respuesta frente a 12.9% de mujeres. También se puede notar que a partir de la edad de 26 años es donde empieza a crecer el número de créditos de vivienda solicitados.

En general se observa que en todas las edades hay cierto interés por emprender, pues se acrecienta la solicitud de microcréditos.

APROBACIÓN O DESAPROBACIÓN DE CRÉDITOS POR GÉNERO

Se puede apreciar que hay mayor aprobación de créditos hacia las mujeres, con el 87,8% de ellas siendo aprobadas, versus 85,8% de hombres.

APROBACIÓN O DESAPROBACIÓN DE CRÉDITOS POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Le fue aprobado el (los) crédito(s) que solicitó?`)) %>%
  group_by(EDADR, Tipo = `¿Le fue aprobado el (los) crédito(s) que solicitó?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3) +
  scale_fill_manual(values = paleta, name = "Aprobación") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Aprobación de créditos por grupo de edad",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 5),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se puede observar que las personas con mayor edad (más de 56 años) son quienes tienen más posibilidad de que un crédito se les sea aprobado, en este caso, se les fue aprobado al 90.6% de personas; mientras que en el rango de edad de 18-25 años, se les fue aprobado solo a 82.9% de personas y negado al 17,1%.

RAZON DE DESAPROBACIÓN DE CRÉDITOS

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Por qué le negaron el (los) crédito(s) que solicitó?`)) %>%
  select(Tipo = `¿Por qué le negaron el (los) crédito(s) que solicitó?`)

# 2. Calcular porcentajes
datos_grafico <- datos_limpios %>%
  count(Tipo, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje))

# 3. Paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(8, "Set2"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3.5) +
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_manual(values = paleta, name = "Razón desaprobación") +
  labs(title = "Motivo de desaprobación",
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto del eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3))  # Leyenda en una sola fila

La razón principal por la que se desaprueba la solicitud de un crédito, es porque las personas no tienen historial crediticio, con el 31,5% de individuos que presentaron esta situación, seguido de que se esté reportado en una central de riesgos (30.8%) y que no se tenga garantías (16.2%).

MOTIVO DE DESAPROBACIÓN DE CRÉDITOS POR EDAD

Se evidencia que el motivo principal por el que se rechaza una solicitud de crédito a la población entre los 18-25 años es por la falta de historial crediticio, con el 57.1% de personas viviendo esta situación, seguido de que no tienen garantías y no poseen ingresos suficientes (14.3% ). Sin embargo, en el resto de edades, el motivo principal es porque están reportados en una central de riesgos.

MOTIVO DE DESAPROBACIÓN DE CRÉDITOS POR GÉNERO

Se puede observar que la razón principal por la que se le niega un crédito a una mujer es porque está reportada en una central de riesgos (33.3% de mujeres que lo afirman), seguido de porque no tienen historial crediticio (22.8%). Mientras que en el caso de los hombres, el principal motivo por el que se niega un crédito es porque no tienen historial crediticio (38.4%), seguido de que están reportados en una central de riesgos(28.8%).

RAZON DE DESAPROBACIÓN DE CRÉDITOS POR EDAD Y GÉNERO

Se puede pareciar que para tanto hombres como muejeres de entre 18 y 25 años, el motivo principal por el que se les es negado un crédito es porque no tienen historial crediticio.Y tal como confirma la gráfica anterior, el siguiente motivo es porque está reportado en una central de riesgos, situación que sucede en ambos géneros.

USO DEL ÚLTIMO CRÉDITO APROBADO

Se puede observar que el uso principal de los créditos es para gastos del hogar (54.7%), seguido de otros gastos personales (20.1%), para pagar otros prestamos (12.9%) y gastos en capital de trabajo (4.9%).

USO DEL ÚLTIMO CRÉDITO APROBADO POR GÉNERO

El uso principal que las mujeres le dan a los créditos es para gastos del hogar (53.2%), seguido de otros gastos personales (23.4%) y pagar otros créditos o préstamos (11.7%). En el caso de los hombres, el mismo comportamiento se repite, en donde la mayoría de ellos lo usa para gastos del hogar(56.1%), seguido de otros gastos personales (17%) y para pagar otros créditos (14.1%).

USO DEL ÚLTIMO CRÉDITO APROBADO POR EDAD

Se puede observar que el uso que los jóvenes-adultos (18-25 años) le dan a los créditos es principlamente es para gastos del hogar (47.5%), seguido de otros gastos personales (17.9%) y pago de matrículas académicas (15,4%). Mientras que en los otros rangos de edades el tercer uso que se le da es para pagar otros créditos o préstamos.

USO DEL ÚLTIMO CRÉDITO APROBADO POR EDAD Y GÉNERO

Se evidencia que los jóvenes hombres entre 18-25 años son quienes más disponen sus créditos para el pago de matrículas académicas, en este caso, el 18.3% de ellos, mientras que en el caso de las mujeres son solo el 11.6%. También se aprecia que las hombres entre los 26-35 años disponen de este dinero para comprar o arreglar sus vehículos (8.5% de ellos). Por último, los hombres entre 46-55 años afirmaron usar este dinero para invertir en capital de trabajo de sus negocios (1,4%).

SATISFACCIÓN EN EL MONTO DESEMBOLSADO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Qué tan satisfecho se encuentra usted con el monto desembolsado de su último crédito aprobado?`)) %>%
  select(Tipo = `¿Qué tan satisfecho se encuentra usted con el monto desembolsado de su último crédito aprobado?`)

# 2. Calcular porcentajes
datos_grafico <- datos_limpios %>%
  count(Tipo, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje))

# 3. Paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(8, "Set2"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3.5) +
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_manual(values = paleta, name = "satisfacción") +
  labs(title = "SATISFACCIÓN EN EL MONTO",
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto del eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3))  # Leyenda en una sola fila

De los encuestados, el 48,1% de personas afirman que se sienten totalmente satisfechos con el monto desembolsado del crédito, mientras que el 17,4% de personas se sienten nada satisfechas.

SATISFACCIÓN FRENTE AL MONTO DESEMBOLSADO POR EDAD

Se observa que en todas las edades, la mayoría de personas se encuentran totalmente satisfechas con el monto desembolsado.

SATISFACCIÓN EN LA TASA DEL CRÉDITO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Qué tan satisfecho se encuentra usted con  la tasa de interés de su último crédito aprobado?`)) %>%
  select(Tipo = `¿Qué tan satisfecho se encuentra usted con  la tasa de interés de su último crédito aprobado?`)

# 2. Calcular porcentajes
datos_grafico <- datos_limpios %>%
  count(Tipo, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje))

# 3. Paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(8, "Set2"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3.5) +
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_manual(values = paleta, name = "satisfacción") +
  labs(title = "SATISFACCIÓN EN LA TASA",
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto del eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3))  # Leyenda en una sola fila

Se puede observar que el 25% de las personas están totalmente satisfechas con la tasa de interés del crédito, mientras que el 20,3% de las personas se encuentran para nada satisfechas, esto puede darse debido a que la tasa ofertada de pronto es muy alta.

SATISFACCIÓN FRENTE A LA TASA POR EDAD

Se puede observar que en casi todas las edades, hay una alta satisfacción en cuanto a la tasa, exceptuando al rango de edades de 26-35 años, donde la mayoría de personas se sienten nada satisfechos (23.3%). A pesar de que la mayoría esté totalmente satisfecho con esta tasa, se puede observar en todas las edades que hay una gran parte de personas que se sienten nada satisfechos (ya que es la segunda opción con mayor frecuencia).

SATISFACCIÓN EN LA CUOTA DEL CRÉDITO

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Qué tan satisfecho se encuentra usted con la cuota mensual de su último crédito aprobado?`)) %>%
  select(Tipo = `¿Qué tan satisfecho se encuentra usted con la cuota mensual de su último crédito aprobado?`)

# 2. Calcular porcentajes
datos_grafico <- datos_limpios %>%
  count(Tipo, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje))

# 3. Paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(8, "Set2"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3.5) +
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_manual(values = paleta, name = "Satisfacción") +
  labs(title = "SATISFACCIÓN EN LA CUOTA",
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto del eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3))  # Leyenda en una sola fila

Se observa que la mayoría de personas se encuentra totalmente satisfecha con la cuota del crédito (30.9%), mientras que al 16.8% se les hace indiferente.

SATISFACCIÓN FRENTE A LA CUOTA POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Qué tan satisfecho se encuentra usted con la cuota mensual de su último crédito aprobado?`)) %>%
  group_by(EDADR, Tipo = `¿Qué tan satisfecho se encuentra usted con la cuota mensual de su último crédito aprobado?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3) +
  scale_fill_manual(values = paleta, name = "Satisfacción") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Satisfacción frente a la cuota por grupo de edad",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 5),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 10),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se observa que en todas las edades, la mayoría de personas está totalmente satisfecha con la cuota del crédito, especialmente los adultos myores de 56 años, mientras que los que tienen menor nivel de satisfacción son los de 36-45 años-

FRECUENCIA DE PAGOS

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Filtrar y procesar datos
datos_limpios <- datos %>%
  filter(!is.na(`¿Cuál es la frecuencia de pagos de su último crédito/préstamo aprobado?`)) %>%
  select(Tipo = `¿Cuál es la frecuencia de pagos de su último crédito/préstamo aprobado?`)

# 2. Calcular porcentajes
datos_grafico <- datos_limpios %>%
  count(Tipo, name = "Conteo") %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  arrange(desc(Porcentaje))

# 3. Paleta de colores única
n_colores <- nrow(datos_grafico)
paleta <- colorRampPalette(brewer.pal(8, "Set2"))(n_colores)

# 4. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = reorder(Tipo, -Porcentaje), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), color = "black", width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3.5) +
  scale_x_discrete(labels = NULL) +  # Eliminar etiquetas del eje X
  scale_fill_manual(values = paleta, name = "Frecuencia") +
  labs(title = "FRECUENCIA DE PAGOS",
       x = NULL,  # Eliminar título del eje X
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_blank(),  # Ocultar texto del eje X
    axis.ticks.x = element_blank(),  # Eliminar marcas del eje X
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3))  # Leyenda en una sola fila

Se observa que la mayoría de personas pagan sus cuotas de manera mensual, seguida de la opción flexible. ## FRECUENCIA DE PAGOS POR EDAD

library(tidyr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)

# 1. Procesamiento de datos con porcentajes
datos_grafico <- datos %>% 
  filter(!is.na(`¿Cuál es la frecuencia de pagos de su último crédito/préstamo aprobado?`)) %>%
  group_by(EDADR, Tipo = `¿Cuál es la frecuencia de pagos de su último crédito/préstamo aprobado?`) %>% 
  summarise(Conteo = n(), .groups = "drop") %>%
  group_by(EDADR) %>%
  mutate(Porcentaje = (Conteo / sum(Conteo)) * 100) %>%
  ungroup()

# 2. Paleta de colores única
n_colores <- length(unique(datos_grafico$Tipo))
paleta <- colorRampPalette(brewer.pal(12, "Set3"))(n_colores)

# 3. Gráfico con estructura consistente
ggplot(datos_grafico, aes(x = factor(EDADR), y = Porcentaje, fill = Tipo)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),
           color = "black",
           width = 0.7) +
  geom_text(aes(label = sprintf("%.1f%%", Porcentaje)), 
            position = position_dodge(width = 0.8),
            vjust = -0.3,
            size = 3) +
  scale_fill_manual(values = paleta, name = "frecuencia") +
  scale_x_discrete(labels = function(x) gsub("-", "-\n", x)) + # Mejor formato para rangos de edad
  labs(title = "Frecuencia de pagos por grupo de edad",
       x = "Grupo de edad",
       y = "Porcentaje de personas") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 0, hjust = 0.5, size = 5),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.text = element_text(size = 8),
    legend.title = element_text(face = "bold"),
    plot.title = element_text(hjust = 0.5, face = "bold", size = 10),
    panel.grid.major.x = element_blank()
  ) +
  guides(fill = guide_legend(nrow = 3, byrow = TRUE))

Se observa que en todas las edades, se prefiere pagar de manera mensual.