1 Introducción

El análisis del riesgo crediticio es una herramienta fundamental para las entidades financieras, ya que permite evaluar la capacidad de pago de los solicitantes y reducir la probabilidad de incumplimiento. En este trabajo se utiliza el conjunto de datos German Credit, compuesto por información financiera, laboral y sociodemográfica de 1.000 clientes, junto con una variable objetivo (default) que clasifica su comportamiento crediticio como bueno (good) o malo (bad).

Con el fin de preparar la información para futuras tareas de modelado predictivo, se realizó un proceso de diagnóstico y preprocesamiento de datos, seguido de un análisis exploratorio que permitió caracterizar las variables del conjunto de datos e identificar patrones relevantes asociados al comportamiento crediticio de los clientes.

2 Carga del conjunto de datos

El conjunto de datos German Credit presenta información sobre 1000 solicitantes de crédito. Cada variable en el conjunto permite una aproximación a las características financieras y socioeconómicas del potencial cliente a su vez que permite construir un análisis de estas variables con respecto a su comportamiento crediticio.

##    V1 V2  V3  V4   V5  V6  V7 V8  V9  V10 V11  V12 V13  V14  V15 V16  V17 V18
## 1 A11  6 A34 A43 1169 A65 A75  4 A93 A101   4 A121  67 A143 A152   2 A173   1
## 2 A12 48 A32 A43 5951 A61 A73  2 A92 A101   2 A121  22 A143 A152   1 A173   1
## 3 A14 12 A34 A46 2096 A61 A74  2 A93 A101   3 A121  49 A143 A152   1 A172   2
## 4 A11 42 A32 A42 7882 A61 A74  2 A93 A103   4 A122  45 A143 A153   1 A173   2
## 5 A11 24 A33 A40 4870 A61 A73  3 A93 A101   4 A124  53 A143 A153   2 A173   2
## 6 A14 36 A32 A46 9055 A65 A73  2 A93 A101   4 A124  35 A143 A153   1 A172   2
##    V19  V20 V21
## 1 A192 A201   1
## 2 A191 A201   2
## 3 A191 A201   1
## 4 A191 A201   1
## 5 A191 A201   2
## 6 A192 A201   1

Como se logra evidenciar en la estructura anterior, hay registros que están codificados, además de que no se tienen el nombre de las columnas. En la siguiente sección, se realizará la limpieza y el preprocesamiento de los datos.

3 Diagnóstico de calidad de datos

Se asignaron nombres descriptivos a las 21 variables del conjunto de datos German Credit con el fin de facilitar su interpretación y análisis posterior.

Variable Descripción
checking_status Estado de la cuenta corriente
duration Duración del crédito (meses)
credit_history Historial crediticio
purpose Propósito del crédito
credit_amount Monto del crédito
savings Cuenta de ahorros / bonos
employment Antigüedad laboral
installment_rate Tasa de cuota respecto al ingreso disponible
personal_status_sex Estado civil y sexo
other_debtors Otros deudores o garantes
residence_since Tiempo de residencia actual
property Tipo de propiedad
age Edad
other_installment_plans Otros planes de pago
housing Tipo de vivienda
existing_credits Número de créditos existentes en este banco
job Ocupación
people_liable Número de personas a cargo
telephone Disponibilidad de teléfono
foreign_worker Trabajador extranjero
default Variable objetivo (Good / Bad)

Se inicia verificando la estructura general de los datos, en los que se presentan 1000 observaciones y 20 variables. A continuación se presentan los tipos de variables donde se identifican 13 variables tipo caracter y 7 variables numéricas:

## 'data.frame':    1000 obs. of  21 variables:
##  $ checking_status        : chr  "A11" "A12" "A14" "A11" ...
##  $ duration               : int  6 48 12 42 24 36 24 36 12 30 ...
##  $ credit_history         : chr  "A34" "A32" "A34" "A32" ...
##  $ purpose                : chr  "A43" "A43" "A46" "A42" ...
##  $ credit_amount          : int  1169 5951 2096 7882 4870 9055 2835 6948 3059 5234 ...
##  $ savings                : chr  "A65" "A61" "A61" "A61" ...
##  $ employment             : chr  "A75" "A73" "A74" "A74" ...
##  $ installment_rate       : int  4 2 2 2 3 2 3 2 2 4 ...
##  $ personal_status_sex    : chr  "A93" "A92" "A93" "A93" ...
##  $ other_debtors          : chr  "A101" "A101" "A101" "A103" ...
##  $ residence_since        : int  4 2 3 4 4 4 4 2 4 2 ...
##  $ property               : chr  "A121" "A121" "A121" "A122" ...
##  $ age                    : int  67 22 49 45 53 35 53 35 61 28 ...
##  $ other_installment_plans: chr  "A143" "A143" "A143" "A143" ...
##  $ housing                : chr  "A152" "A152" "A152" "A153" ...
##  $ existing_credits       : int  2 1 1 1 2 1 1 1 1 2 ...
##  $ job                    : chr  "A173" "A173" "A172" "A173" ...
##  $ people_liable          : int  1 1 2 2 2 2 1 1 1 1 ...
##  $ telephone              : chr  "A192" "A191" "A191" "A191" ...
##  $ foreign_worker         : chr  "A201" "A201" "A201" "A201" ...
##  $ default                : int  1 2 1 1 2 1 1 1 1 2 ...

Se procede a convertir las variables categóricas a sus respectivas equivalencias denotadas en los atributos compartidos, a su vez que se convierte a formato factor:

Variable Código original Nueva categoría
checking_status A11 less_0
checking_status A12 0_200
checking_status A13 greater_200
checking_status A14 no_account
credit_history A30 no_credit/all_paid
credit_history A31 all_paid
credit_history A32 existing_paid
credit_history A33 delay
credit_history A34 critical/other
purpose A40 car_new
purpose A41 car_used
purpose A42 furniture/equipment
purpose A43 radio/TV
purpose A44 domestic_appliances
purpose A45 repairs
purpose A46 education
purpose A47 vacation
purpose A48 retraining
purpose A49 business
purpose A410 others
savings A61 less_100
savings A62 100_500
savings A63 500_1000
savings A64 greater_1000
savings A65 unknown
employment A71 unemployed
employment A72 less_1
employment A73 1_4
employment A74 4_7
employment A75 greater_7
personal_status_sex A91 male_divorced/separated
personal_status_sex A92 female_divorced/separated/married
personal_status_sex A93 male_single
personal_status_sex A94 male_married
personal_status_sex A95 female_single
other_debtors A101 none
other_debtors A102 co_applicant
other_debtors A103 guarantor
property A121 real_estate
property A122 building_society_savings_agreement/life_insurance
property A123 car_or_other
property A124 unknown/no_property
other_installment_plans A141 bank
other_installment_plans A142 stores
other_installment_plans A143 none
housing A151 rent
housing A152 own
housing A153 for_free
job A171 unemployed/unskilled
job A172 unskilled_resident
job A173 skilled/official
job A174 management/self-employed/highly_qualified
telephone A191 none
telephone A192 yes
foreign_worker A201 yes
foreign_worker A202 no
default 1 good
default 2 bad
## Rows: 1,000
## Columns: 21
## $ checking_status         <fct> less_0, 0_200, no_account, less_0, less_0, no_…
## $ duration                <int> 6, 48, 12, 42, 24, 36, 24, 36, 12, 30, 12, 48,…
## $ credit_history          <fct> critical_other, existing_paid, critical_other,…
## $ purpose                 <fct> radio_tv, radio_tv, education, furniture_equip…
## $ credit_amount           <int> 1169, 5951, 2096, 7882, 4870, 9055, 2835, 6948…
## $ savings                 <fct> unknown, less_100, less_100, less_100, less_10…
## $ employment              <fct> greater_7, 1_4, 4_7, 4_7, 1_4, 1_4, greater_7,…
## $ installment_rate        <int> 4, 2, 2, 2, 3, 2, 3, 2, 2, 4, 3, 3, 1, 4, 2, 4…
## $ personal_status_sex     <fct> male_single, female_divorced_separated_married…
## $ other_debtors           <fct> none, none, none, guarantor, none, none, none,…
## $ residence_since         <int> 4, 2, 3, 4, 4, 4, 4, 2, 4, 2, 1, 4, 1, 4, 4, 2…
## $ property                <fct> real_estate, real_estate, real_estate, buildin…
## $ age                     <int> 67, 22, 49, 45, 53, 35, 53, 35, 61, 28, 25, 24…
## $ other_installment_plans <fct> none, none, none, none, none, none, none, none…
## $ housing                 <fct> own, own, own, for_free, for_free, for_free, o…
## $ existing_credits        <int> 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1…
## $ job                     <fct> skilled_official, skilled_official, unskilled_…
## $ people_liable           <int> 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ telephone               <fct> yes, none, none, none, none, yes, none, yes, n…
## $ foreign_worker          <fct> yes, yes, yes, yes, yes, yes, yes, yes, yes, y…
## $ default                 <fct> good, bad, good, good, bad, good, good, good, …

Ahora, una vez realizada la recodificación, se realiza un resumen estadístico de las variables a analizar.

Resumen estadístico
checking_status duration credit_history purpose credit_amount savings employment installment_rate personal_status_sex other_debtors residence_since property age other_installment_plans housing existing_credits job people_liable telephone foreign_worker default
0_200 :269 Min. : 4.0 all_paid : 49 radio_tv :280 Min. : 250 100_500 :103 1_4 :339 Min. :1.000 female_divorced_separated_married:310 co_applicant: 41 Min. :1.000 building_society_savings_life_insurance:232 Min. :19.00 bank :139 for_free:108 Min. :1.000 management_self_employed_highly_qualified:148 Min. :1.000 none:596 no : 37 bad :300
greater_200: 63 1st Qu.:12.0 critical_other :293 car_new :234 1st Qu.: 1366 500_1000 : 63 4_7 :174 1st Qu.:2.000 male_divorced_separated : 50 guarantor : 52 1st Qu.:2.000 car_or_other :332 1st Qu.:27.00 none :814 own :713 1st Qu.:1.000 skilled_official :630 1st Qu.:1.000 yes :404 yes:963 good:700
less_0 :274 Median :18.0 delay : 88 furniture_equipment:181 Median : 2320 greater_1000: 48 greater_7 :253 Median :3.000 male_married : 92 none :907 Median :3.000 real_estate :282 Median :33.00 stores: 47 rent :179 Median :1.000 unemployed_unskilled : 22 Median :1.000 NA NA NA
no_account :394 Mean :20.9 existing_paid :530 car_used :103 Mean : 3271 less_100 :603 less_1 :172 Mean :2.973 male_single :548 NA Mean :2.845 unknown_no_property :154 Mean :35.55 NA NA Mean :1.407 unskilled_resident :200 Mean :1.155 NA NA NA
NA 3rd Qu.:24.0 no_credit_all_paid: 40 business : 97 3rd Qu.: 3972 unknown :183 unemployed: 62 3rd Qu.:4.000 NA NA 3rd Qu.:4.000 NA 3rd Qu.:42.00 NA NA 3rd Qu.:2.000 NA 3rd Qu.:1.000 NA NA NA
NA Max. :72.0 NA education : 50 Max. :18424 NA NA Max. :4.000 NA NA Max. :4.000 NA Max. :75.00 NA NA Max. :4.000 NA Max. :2.000 NA NA NA
NA NA NA (Other) : 55 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

3.1 Resumen estadístico de las variables

El conjunto de datos German Credit está conformado por 1.000 registros y 21 variables, de las cuales 7 son numéricas y 14 categóricas. El análisis descriptivo inicial permite identificar características relevantes de la población estudiada y posibles patrones asociados al riesgo crediticio.

3.1.1 Variables numéricas

La duración de los créditos (duration) presenta una mediana de 18 meses y una media de 20,9 meses, lo que indica que la mayoría de los préstamos corresponden a compromisos financieros de corto y mediano plazo. Sin embargo, se observan créditos con duraciones de hasta 72 meses, evidenciando una dispersión considerable en esta variable.

El monto del crédito (credit_amount) registra una media de 3.271 unidades monetarias y una mediana de 2.320. La diferencia entre ambas medidas sugiere una distribución asimétrica hacia la derecha, ocasionada por la presencia de créditos de alto valor que alcanzan montos de hasta 18.424 unidades monetarias.

La edad de los solicitantes (age) oscila entre 19 y 75 años, con una media de 35,5 años y una mediana de 33 años. Esto indica que la mayor parte de los clientes corresponde a población económicamente activa en etapas tempranas y medias de su vida laboral.

Las variables installment_rate, residence_since, existing_credits y people_liable presentan rangos relativamente reducidos, reflejando estructuras de información discretas y con baja variabilidad. En particular, la mayoría de los clientes posee un solo crédito activo en el banco y una sola persona dependiente económicamente.

3.1.2 Variables categóricas

Respecto al estado de la cuenta corriente (checking_status), la categoría más frecuente corresponde a clientes sin cuenta corriente (no_account), representando aproximadamente el 39 % de los registros. Esto indica que una proporción importante de solicitantes no posee este producto financiero.

En el historial crediticio (credit_history), más de la mitad de los clientes (53 %) se ubica en la categoría existing_paid, correspondiente a créditos que han sido pagados correctamente hasta el momento. Adicionalmente, un 29,3 % pertenece a la categoría critical_other, lo que sugiere antecedentes financieros más complejos.

En cuanto al propósito del crédito (purpose), predominan las solicitudes para adquisición de radio o televisión (28 %), vehículos nuevos (23,4 %) y muebles o equipamiento del hogar (18,1 %). Estas tres categorías concentran cerca del 70 % de los créditos otorgados.

La variable de ahorro (savings) muestra que el 60,3 % de los clientes posee menos de 100 unidades monetarias ahorradas, mientras que únicamente el 4,8 % reporta ahorros superiores a 1.000 unidades. Esto evidencia una capacidad de ahorro limitada para una gran proporción de los solicitantes.

En términos laborales (employment), la categoría más frecuente corresponde a personas con entre 1 y 4 años de antigüedad laboral (33,9 %), seguida por quienes tienen más de 7 años de experiencia laboral (25,3 %). Esto sugiere una población con relativa estabilidad laboral.

Respecto a la vivienda (housing), el 71,3 % de los clientes reside en vivienda propia, mientras que el 17,9 % vive en arriendo. Este resultado puede interpretarse como un indicador indirecto de estabilidad económica.

La ocupación (job) muestra una clara predominancia de trabajadores calificados u oficiales (skilled_official), quienes representan el 63 % de la muestra. Por el contrario, las categorías asociadas a desempleo o baja cualificación presentan una participación reducida.

Finalmente, la variable objetivo (default) evidencia un desbalance entre clases: el 70 % de los clientes presenta un comportamiento crediticio bueno (good), mientras que el 30 % corresponde a clientes con comportamiento malo (bad). Este aspecto será importante en etapas posteriores de modelado predictivo, ya que podría influir en el desempeño de los algoritmos de clasificación.

3.1.3 Hallazgos relevantes

Los resultados muestran una población caracterizada principalmente por clientes con historial crediticio favorable, estabilidad laboral moderada, vivienda propia y montos de crédito relativamente bajos o medios. Sin embargo, se observa una importante concentración de solicitantes con bajos niveles de ahorro y una distribución asimétrica en el monto de los créditos, lo que sugiere la posible existencia de valores extremos. Asimismo, el desbalance de la variable objetivo constituye un aspecto relevante a considerar en futuros modelos de clasificación de riesgo crediticio.

Posteriormente se definieron reglas de validación utilizando el paquete validate con el objetivo de verificar la consistencia lógica de las variables numéricas y categóricas del conjunto de datos.

Para las variables numéricas se comprobó que atributos como la duración del crédito, monto del préstamo, edad del solicitante y número de créditos existentes presentaran valores positivos o no negativos según correspondiera. De igual forma, para las variables categóricas se verificó que cada observación perteneciera exclusivamente al conjunto de categorías válidas definidas durante el proceso de recodificación.

Estas validaciones permitieron asegurar que los registros cumplen con las restricciones establecidas por la naturaleza de cada variable y que no existen valores fuera de rango o categorías inválidas que puedan afectar el análisis posterior.

## Object of class 'validator' with 21 elements:
##  V01: german[["duration"]] > 0
##  V02: german[["credit_amount"]] > 0
##  V03: german[["installment_rate"]] > 0
##  V04: german[["residence_since"]] > 0
##  V05: german[["age"]] > 0
##  V06: german[["existing_credits"]] >= 0
##  V07: german[["people_liable"]] >= 0
##  V08: checking_status %in% unname(dict_mapping[["checking_status"]])
##  V09: credit_history %in% unname(dict_mapping[["credit_history"]])
##  V10: purpose %in% unname(dict_mapping[["purpose"]])
##  V11: savings %in% unname(dict_mapping[["savings"]])
##  V12: employment %in% unname(dict_mapping[["employment"]])
##  V13: personal_status_sex %in% unname(dict_mapping[["personal_status_sex"]])
##  V14: other_debtors %in% unname(dict_mapping[["other_debtors"]])
##  V15: property %in% unname(dict_mapping[["property"]])
##  V16: other_installment_plans %in% unname(dict_mapping[["other_installment_plans"]])
##  V17: housing %in% unname(dict_mapping[["housing"]])
##  V18: job %in% unname(dict_mapping[["job"]])
##  V19: telephone %in% unname(dict_mapping[["telephone"]])
##  V20: foreign_worker %in% unname(dict_mapping[["foreign_worker"]])
##  V21: default %in% unname(dict_mapping[["default"]])

Se definen cuántas filas presentan al menos una regla incumplida y se encuentra que el número es cero.

## integer(0)

A su vez, se encuentra que el número de datos faltantes en toda la base es igualmente cero.

sum(is.na(german))
## [1] 0

3.2 Detección de valores atípicos mediante el criterio de Tukey

Una vez se revisan los datos faltantes, se procede a realizar un análisis de anomalías. Para ello, se usa el criterio Tukey:

Detección de valores atípicos mediante el criterio de Tukey
Variable Q1 Q3 IQR Limite_Inferior Limite_Superior Atipicos Porcentaje
duration 12.0 24.00 12.00 -6.00 42.00 70 7.0
credit_amount 1365.5 3972.25 2606.75 -2544.62 7882.38 72 7.2
installment_rate 2.0 4.00 2.00 -1.00 7.00 0 0.0
residence_since 2.0 4.00 2.00 -1.00 7.00 0 0.0
age 27.0 42.00 15.00 4.50 64.50 23 2.3
existing_credits 1.0 2.00 1.00 -0.50 3.50 6 0.6
people_liable 1.0 1.00 0.00 1.00 1.00 155 15.5

Con base en el criterio Tukey, los resultados evidencian la presencia de valores atípicos en algunas variables del conjunto de datos. Las variables duration y credit_amount presentan 70 y 72 observaciones atípicas respectivamente, correspondientes al 7,0 % y 7,2 % de la muestra. Estos resultados sugieren la existencia de créditos con duraciones o montos significativamente superiores al comportamiento habitual de la población analizada.

La variable age presenta 23 observaciones atípicas (2,3 %), asociadas principalmente a solicitantes de mayor edad. Sin embargo, dado que los valores observados se encuentran dentro de rangos plausibles para la población económicamente activa, no se consideran errores de registro.

Por su parte, la variable existing_credits presenta únicamente 6 observaciones atípicas (0,6 %), lo que indica una baja presencia de clientes con un número inusualmente alto de créditos vigentes en la entidad financiera.

La variable people_liable registra 155 observaciones atípicas (15,5 %), siendo la proporción más alta entre todas las variables analizadas. No obstante, este resultado debe interpretarse con cautela, ya que la variable es discreta y presenta una distribución altamente concentrada en el valor 1. Debido a que el rango intercuartílico (IQR) es igual a cero, cualquier observación diferente a dicho valor es identificada automáticamente como atípica por el criterio de Tukey. Por esta razón, estos registros no necesariamente representan anomalías reales.

Las variables installment_rate y residence_since no presentan valores atípicos según el criterio aplicado, lo que indica una distribución relativamente homogénea dentro de los rangos esperados.

n_out_mahalanobis n_out_lof
35 10

Con el propósito de complementar la detección univariada de valores atípicos, se realizó un análisis multivariado sobre las variables numéricas del conjunto de datos. Inicialmente, la matriz de dispersión permitió examinar las relaciones existentes entre las variables y calcular los coeficientes de correlación de Pearson.

Los resultados evidencian que la relación más importante se presenta entre la duración del crédito (duration) y el monto solicitado (credit_amount), con una correlación positiva moderada (r = 0.625), lo que indica que los créditos de mayor valor suelen asociarse con plazos de pago más extensos. Asimismo, se observan correlaciones positivas de menor magnitud entre la edad (age) y el tiempo de residencia (residence_since), así como entre la edad y el número de créditos existentes (existing_credits). En general, la mayoría de las variables presentan correlaciones débiles, lo que sugiere una baja dependencia lineal entre ellas.

Posteriormente, se aplicaron dos técnicas de detección de anomalías multivariadas: la Distancia de Mahalanobis y el algoritmo Local Outlier Factor (LOF). La primera identificó 35 observaciones con patrones significativamente alejados del comportamiento promedio de la población, mientras que el método LOF detectó 10 observaciones con características inusuales respecto a sus vecinos más cercanos.

Si bien se identificaron registros potencialmente atípicos, estos corresponden a observaciones válidas dentro del contexto del negocio y no a errores de captura o inconsistencias en los datos. Por esta razón, se decidió conservarlos para las etapas posteriores del análisis, considerando que los perfiles extremos pueden aportar información relevante para la comprensión del riesgo crediticio y la construcción de futuros modelos de clasificación.

4 Análisis exploratorio

4.1 Distribución de la variable objetivo (default)

La variable objetivo (default) presenta una distribución desbalanceada, donde el 70,0% de los registros corresponde a clientes clasificados con buen comportamiento crediticio (good) y el 30,0% restante a clientes con comportamiento desfavorable (bad). Esta diferencia deberá considerarse en etapas posteriores de modelado, ya que podría influir en el desempeño de los algoritmos de clasificación.

4.2 Análisis descriptivo de variables cuantitativas

Se presenta inicialmente los estadísticos descriptivos de las variables numéricas:

Estadísticos descriptivos de las variables numéricas
Media Mediana Desv_Est Minimo Maximo
duration 20.90 18.0 12.06 4 72
credit_amount 3271.26 2319.5 2822.74 250 18424
installment_rate 2.97 3.0 1.12 1 4
residence_since 2.85 3.0 1.10 1 4
age 35.55 33.0 11.38 19 75
existing_credits 1.41 1.0 0.58 1 4
people_liable 1.16 1.0 0.36 1 2

Los estadísticos descriptivos permiten identificar una marcada heterogeneidad en las características financieras de los solicitantes. La duración de los créditos presenta una media de 20,9 meses y una mediana de 18 meses, lo que indica una ligera asimetría hacia créditos de mayor plazo. De manera similar, el monto del crédito exhibe una elevada dispersión (desviación estándar de 2.822,74 DM) y una diferencia considerable entre la media (3.271,26 DM) y la mediana (2.319,5 DM), sugiriendo la presencia de algunos créditos de valor significativamente superior al promedio. Esta característica también se evidencia en el gráfico de densidad, donde se observa una concentración importante de créditos de bajo monto y una cola alargada hacia valores altos.

La edad de los solicitantes presenta una media de 35,55 años y una mediana de 33 años, lo que indica que la población analizada está compuesta principalmente por adultos jóvenes y de mediana edad. Por su parte, variables como la tasa de cuota (installment_rate), el tiempo de residencia (residence_since), el número de créditos existentes (existing_credits) y el número de personas a cargo (people_liable) muestran una variabilidad reducida debido a que sus valores se encuentran acotados dentro de un rango limitado. En particular, la variable people_liable se concentra casi exclusivamente en un solo dependiente, mientras que la mayoría de los clientes posee uno o dos créditos activos en la entidad financiera. En conjunto, los resultados evidencian distribuciones asimétricas en variables relacionadas con el nivel de endeudamiento, aspecto que deberá considerarse en las etapas posteriores del análisis y modelado.

4.3 Análisis descriptivo de variables categóricas

Resumen descriptivo de variables categóricas
Variable Categorias Moda Frecuencia_moda
checking_status 4 no_account 394
credit_history 5 existing_paid 530
purpose 10 radio_tv 280
savings 5 less_100 603
employment 5 1_4 339
personal_status_sex 4 male_single 548
other_debtors 3 none 907
property 4 car_or_other 332
other_installment_plans 3 none 814
housing 3 own 713
job 4 skilled_official 630
telephone 2 none 596
foreign_worker 2 yes 963
default 2 good 700
Frecuencias de variables categóricas
Variable Categoria n Porcentaje
checking_status 0_200 269 26.9
checking_status greater_200 63 6.3
checking_status less_0 274 27.4
checking_status no_account 394 39.4
credit_history all_paid 49 4.9
credit_history critical_other 293 29.3
credit_history delay 88 8.8
credit_history existing_paid 530 53.0
credit_history no_credit_all_paid 40 4.0
default bad 300 30.0
default good 700 70.0
employment 1_4 339 33.9
employment 4_7 174 17.4
employment greater_7 253 25.3
employment less_1 172 17.2
employment unemployed 62 6.2
foreign_worker yes 963 96.3
foreign_worker no 37 3.7
housing for_free 108 10.8
housing own 713 71.3
housing rent 179 17.9
job management_self_employed_highly_qualified 148 14.8
job skilled_official 630 63.0
job unemployed_unskilled 22 2.2
job unskilled_resident 200 20.0
other_debtors co_applicant 41 4.1
other_debtors guarantor 52 5.2
other_debtors none 907 90.7
other_installment_plans none 814 81.4
other_installment_plans bank 139 13.9
other_installment_plans stores 47 4.7
personal_status_sex female_divorced_separated_married 310 31.0
personal_status_sex male_divorced_separated 50 5.0
personal_status_sex male_married 92 9.2
personal_status_sex male_single 548 54.8
property building_society_savings_life_insurance 232 23.2
property car_or_other 332 33.2
property real_estate 282 28.2
property unknown_no_property 154 15.4
purpose business 97 9.7
purpose car_new 234 23.4
purpose car_used 103 10.3
purpose domestic_appliances 12 1.2
purpose education 50 5.0
purpose furniture_equipment 181 18.1
purpose others 12 1.2
purpose radio_tv 280 28.0
purpose repairs 22 2.2
purpose retraining 9 0.9
savings 100_500 103 10.3
savings 500_1000 63 6.3
savings greater_1000 48 4.8
savings less_100 603 60.3
savings unknown 183 18.3
telephone none 596 59.6
telephone yes 404 40.4

A continuación se presentan las gráficas de barras para las variables categóricas asociadas a aspectos financieros del crédito:

Igualmente, se grafican las variables socioeconómicas de los solicitantes, lo cual también contribuye a la construcción de un perfil de riesgo:

Finalmente se establecen las características asociadas al entorno laboral como una característica relevante del individuo ya que permitiría ser un medio de solvencia para respaldar al crédito:

El análisis de frecuencias permitió caracterizar el perfil general de los solicitantes de crédito incluidos en la base de datos German Credit. En relación con el estado de la cuenta corriente (checking_status), se observó que el 39,4% de los clientes no posee cuenta corriente, mientras que el 27,4% presenta saldos inferiores a cero y el 26,9% mantiene saldos entre 0 y 200 DM. Solamente el 6,3% dispone de saldos superiores a 200 DM, lo que sugiere que una proporción importante de los solicitantes presenta una capacidad financiera limitada.

Respecto al historial crediticio (credit_history), la categoría predominante corresponde a clientes con créditos pagados oportunamente hasta el momento (existing_paid), representando el 53,0% de las observaciones. Asimismo, el 29,3% pertenece a la categoría de cuentas críticas u otros créditos existentes (critical/other), mientras que únicamente el 8,8% registra antecedentes de retrasos en pagos.

En cuanto al propósito del crédito (purpose), los destinos más frecuentes fueron la adquisición de radio o televisión (28,0%), vehículos nuevos (23,4%) y muebles o equipamiento para el hogar (18,1%). Estos resultados indican que la mayoría de los créditos está orientada al financiamiento de bienes de consumo duradero.

La variable de ahorro (savings) evidenció que el 60,3% de los solicitantes posee menos de 100 DM en ahorros, mientras que apenas el 4,8% cuenta con más de 1.000 DM. Este comportamiento sugiere una limitada capacidad de respaldo financiero para una proporción considerable de los clientes.

En relación con la estabilidad laboral (employment), el 33,9% de los individuos registra entre uno y cuatro años de antigüedad laboral y el 25,3% acumula más de siete años de experiencia en su empleo actual. Por otra parte, solamente el 6,2% se encuentra desempleado.

El análisis de las demás variables revela que la mayoría de los solicitantes son hombres solteros (male_single, 54,8%), no cuentan con otros deudores o garantes (other_debtors, 90,7%), poseen vivienda propia (housing, 71,3%) y desempeñan ocupaciones calificadas o cargos oficiales (job, 63,0%). Adicionalmente, el 96,3% corresponde a trabajadores extranjeros según la codificación original del conjunto de datos.

4.4 Análisis bivariado y relación con variable target

Las variables financieras presentan una relación importante con la variable objetivo (default). El estado de la cuenta corriente (checking_status) es uno de los factores más discriminantes: los clientes sin cuenta corriente (no_account) registran aproximadamente un 88% de buenos pagadores, mientras que aquellos con saldos negativos (less_0) presentan una distribución cercana al 50% de buenos y 50% de malos pagadores, evidenciando un mayor riesgo crediticio. De manera similar, la variable ahorros (savings) muestra que los clientes con mayores niveles de ahorro (greater_1000 y 500_1000) alcanzan porcentajes de buen comportamiento superiores al 80%, mientras que quienes poseen menos de 100 unidades monetarias presentan una proporción significativamente mayor de incumplimiento. Respecto al historial crediticio, las categorías critical_other y existing_paid muestran desempeños favorables, mientras que los clientes con antecedentes de créditos totalmente pagados o sin historial previo (all_paid y no_credit_all_paid) registran mayores porcentajes de incumplimiento. Finalmente, algunos propósitos del crédito como car_used, radio_tv y retraining exhiben menores niveles de riesgo, mientras que categorías como education, others y car_new presentan proporciones relativamente más altas de clientes clasificados como bad.

Las variables sociodemográficas muestran diferencias moderadas en la distribución del riesgo crediticio. En cuanto al tipo de vivienda (housing), los clientes con vivienda propia presentan aproximadamente un 74% de buenos pagadores, superando a quienes viven en arriendo o disponen de vivienda gratuita, donde el porcentaje de incumplimiento es mayor. Respecto al estado civil y sexo (personal_status_sex), las diferencias observadas son relativamente pequeñas, aunque los hombres casados y solteros muestran una proporción ligeramente superior de clientes con buen comportamiento crediticio en comparación con otros grupos. Por otra parte, la variable tipo de propiedad (property) evidencia una asociación más marcada con el riesgo: los clientes propietarios de bienes raíces (real_estate) presentan cerca de un 78% de buenos pagadores, mientras que aquellos clasificados como unknown_no_property registran el mayor porcentaje de incumplimiento (44%). Estos resultados sugieren que la posesión de activos constituye una señal positiva de solvencia financiera.

Las características laborales también presentan patrones asociados al comportamiento crediticio. La antigüedad laboral (employment) muestra una relación positiva con el cumplimiento de las obligaciones financieras, ya que los clientes con entre cuatro y siete años de permanencia laboral alcanzan aproximadamente un 78% de buenos pagadores, mientras que quienes tienen menos de un año de experiencia laboral presentan los niveles más altos de incumplimiento. En cuanto a la ocupación (job), las diferencias son menos pronunciadas, aunque los trabajadores calificados y residentes permanentes presentan porcentajes ligeramente superiores de buen comportamiento crediticio. La variable teléfono (telephone) no evidencia diferencias relevantes entre categorías, lo que sugiere un bajo poder explicativo sobre el riesgo. Finalmente, aunque la variable foreign_worker muestra una diferencia considerable entre categorías, debe interpretarse con cautela debido al fuerte desbalance de la muestra, ya que más del 96% de los registros corresponden a trabajadores extranjeros. En conjunto, estos resultados indican que la estabilidad laboral parece ser un factor más relevante para explicar el comportamiento crediticio que la ocupación específica o la disponibilidad de teléfono.

Los diagramas de violín permiten comparar la distribución de las variables numéricas entre los clientes clasificados como good y bad. Se observa que las diferencias más marcadas se presentan en las variables duration y credit_amount, donde los clientes con comportamiento crediticio desfavorable (bad) tienden a solicitar créditos de mayor duración y montos más elevados en comparación con los clientes clasificados como good. Este comportamiento sugiere que créditos más largos y de mayor cuantía podrían estar asociados con un mayor riesgo de incumplimiento. Por otra parte, variables como age, existing_credits, people_liable y residence_since muestran distribuciones muy similares entre ambos grupos, evidenciando un poder discriminatorio limitado. La variable installment_rate tampoco presenta diferencias sustanciales, aunque se aprecia una ligera concentración de clientes con incumplimiento en las categorías más altas de la tasa de cuota. En conjunto, los resultados indican que la duración y el monto del crédito son las variables numéricas con mayor capacidad para diferenciar entre buenos y malos pagadores.

La matriz de dispersión permite evaluar simultáneamente la relación entre las variables numéricas y la separación entre las clases de la variable objetivo. En términos generales, se observa un amplio solapamiento entre los clientes good y bad, lo que indica que ninguna variable individual es suficiente para discriminar completamente el comportamiento crediticio. No obstante, se identifica una relación positiva moderada entre duration y credit_amount, donde créditos de mayor monto suelen estar asociados con plazos más extensos. Asimismo, los clientes con incumplimiento tienden a concentrarse con mayor frecuencia en las zonas correspondientes a montos y duraciones elevadas, reforzando los hallazgos observados en los diagramas de violín. Las demás variables presentan relaciones débiles o prácticamente inexistentes entre sí, y las distribuciones de ambas clases son muy similares. Estos resultados sugieren que la capacidad predictiva del modelo probablemente dependerá de la combinación simultánea de múltiples variables más que de una sola característica aislada.

La matriz de correlación evidencia que, en general, las variables numéricas del conjunto de datos presentan relaciones lineales débiles o moderadas, lo que sugiere una baja presencia de multicolinealidad. La asociación más fuerte se observa entre duration y credit_amount (r = 0.62), indicando que los créditos de mayor monto tienden a otorgarse con plazos más largos. Esta relación es consistente con la lógica financiera, ya que montos elevados suelen requerir períodos de amortización más extensos para mantener cuotas manejables para el cliente.

Por otra parte, se identifica una correlación negativa moderada entre credit_amount e installment_rate (r = -0.27), lo que sugiere que los créditos de mayor cuantía tienden a estar asociados con tasas de cuota relativamente menores respecto al ingreso disponible. Asimismo, la variable residence_since presenta una correlación positiva moderada con age (r = 0.27), indicando que las personas de mayor edad tienden a acumular más tiempo de residencia en su vivienda actual.

Las demás correlaciones son bajas, con coeficientes inferiores a 0.20 en valor absoluto. Entre ellas destacan las asociaciones positivas entre age y existing_credits (r = 0.15), age y people_liable (r = 0.12), así como entre existing_credits y people_liable (r = 0.11). Aunque estas relaciones son estadísticamente apreciables, su magnitud es reducida y no sugiere una dependencia fuerte entre las variables.

En términos generales, los resultados indican que las variables numéricas aportan información complementaria y relativamente independiente al análisis del riesgo crediticio. La ausencia de correlaciones elevadas (superiores a 0.80) constituye un resultado favorable para etapas posteriores de modelado, ya que reduce el riesgo de problemas asociados a la multicolinealidad y permite que cada variable contribuya con información propia al proceso de clasificación del comportamiento crediticio.

5 Preprocesamiento de datos

Con base en el análisis exploratorio, se presenta una alta cardinalidad en las variable purpose. Para este caso, se agruparán sus categorías por su naturaleza de la siguiente manera:

A continuación, se presenta las agrupaciones y sus respectivos resultados: