generar_datos

Descripción General

Este módulo implementa un generador completo de datos sintéticos de crédito hipotecario para Colombia con distribución realista de riesgo crediticio.

Características principales:

  • Generación de 10,000+ registros sintéticos realistas

  • Distribución de riesgo: 60% Bajo, 25% Medio, 15% Alto

  • Correlaciones creíbles entre variables

  • Capacidad residual 100% positiva garantizada

  • Validaciones automáticas de consistencia

Clases Principales

GeneradorCreditoHipotecarioRealista

Métodos Principales

generar

Genera el dataset completo ejecutando todas las fases de generación.

Returns:

DataFrame con todos los datos generados

Fases de generación:

  1. Variables demográficas (edad, ciudad, estrato, educación)

  2. Variables laborales (tipo empleo, antigüedad, salario)

  3. Variables financieras (demandas, puntaje DataCrédito, patrimonio)

  4. Variables del crédito (valor inmueble, cuota inicial, plazo)

  5. Características derivadas (DTI, LTV, capacidad residual)

  6. Nivel de riesgo (clasificación final)

exportar_csv

Exporta el dataset generado a formato CSV.

Parameters:
  • nombre_archivo (str): Nombre del archivo de salida

exportar_metadata

Exporta metadata de la generación en formato JSON.

Parameters:
  • nombre_archivo (str): Nombre del archivo de metadata

Funciones Auxiliares

generar_datos_credito_realista

Función principal para generar datos de crédito hipotecario con configuración realista.

Parameters:
  • n_registros (int): Número de registros (default: 10000)

  • semilla (int): Semilla aleatoria (default: 42)

  • exportar_csv (bool): Si exportar a CSV (default: True)

  • exportar_metadata (bool): Si exportar metadata (default: True)

Returns:

DataFrame con datos generados

Ejemplo:

from src.generar_datos import generar_datos_credito_realista

# Generar 5000 registros
df = generar_datos_credito_realista(
    n_registros=5000,
    semilla=42,
    exportar_csv=True,
    exportar_metadata=True
)

print(f"Generados {len(df)} registros")
print(f"Columnas: {df.columns.tolist()}")

Variables Generadas

El generador crea las siguientes variables:

Demográficas:
  • edad: Edad del solicitante (22-65 años)

  • ciudad: Ciudad de residencia

  • estrato_socioeconomico: Estrato (1-6)

  • nivel_educacion: Nivel educativo

  • estado_civil: Estado civil

  • personas_a_cargo: Número de dependientes

Laborales:
  • tipo_empleo: Formal/Informal/Independiente

  • antiguedad_empleo: Años en el empleo actual

  • salario_mensual: Ingreso mensual (COP)

  • egresos_mensuales: Gastos mensuales (COP)

Financieras:
  • puntaje_datacredito: Score crediticio (150-950)

  • numero_demandas: Demandas legales

  • patrimonio_total: Patrimonio total (COP)

  • numero_propiedades: Propiedades actuales

  • saldo_promedio_banco: Saldo bancario promedio

Del Crédito:
  • valor_inmueble: Valor del inmueble (COP)

  • porcentaje_cuota_inicial: Porcentaje de cuota inicial

  • valor_cuota_inicial: Valor de cuota inicial (COP)

  • monto_credito: Monto del crédito (COP)

  • plazo_credito: Plazo en años

  • tasa_interes_anual: Tasa de interés anual (%)

  • cuota_mensual: Cuota mensual (COP)

Derivadas:
  • ltv: Loan-to-Value ratio (%)

  • dti: Debt-to-Income ratio (%)

  • capacidad_ahorro: Capacidad de ahorro mensual

  • capacidad_residual: Capacidad residual después de cuota

  • nivel_riesgo: Clasificación de riesgo (Bajo/Medio/Alto)

Validaciones Implementadas

El generador incluye validaciones automáticas:

  1. Salario > Egresos: Garantizado en todos los casos

  2. DTI ≤ 40%: Ratio de endeudamiento controlado

  3. Capacidad Residual ≥ 0: 100% de casos con capacidad positiva

  4. Edad + Plazo ≤ 80: Restricción de edad máxima al finalizar crédito

  5. Correlaciones realistas: Verificación de correlaciones esperadas

Notas de Implementación

Mejoras realistas implementadas:

  • Distribución de riesgo ajustada a la realidad (60-25-15)

  • Salarios y valores de inmuebles más conservadores

  • Correlaciones suaves entre variables

  • Impacto realista de demandas en puntaje DataCrédito

  • DTI máximo garantizado de 35%

  • Capacidad residual siempre positiva

Configuración por defecto:

  • 10,000 registros

  • Semilla aleatoria: 42

  • Distribución de ciudades según población real

  • Estratos según distribución urbana colombiana

  • Salarios ajustados por ciudad y educación

Ver también