El primer resultado fue demasiado bueno y eso sin duda estaba mal.

Yo quería estudiar un modelo para Crédito Verde y el mío había acertado casi todo, con un área bajo la curva ROC que rozaba 1, y cualquier persona que trabaje con Machine Learning sabe que eso solo puede significar una cosa: el modelo no quedó bueno, lo que hay es algo mal.

El contexto

Estoy terminando un MBA y decidí atacar un problema que me interesa: ¿por qué una empresa pequeña no accede al crédito en mejores condiciones cuando se piensa en sostenibilidad? La respuesta no es simplemente que sea caro, porque este tipo de subsidio exige contratar auditorías, informes técnicos, consultorías, reportes. Lo que para una gran empresa es una línea en el presupuesto, para una panadería tiene un costo inviable.

La pregunta que me hice: ¿se puede decir algo útil sobre el perfil socioambiental de una empresa usando solo datos que ya existen, sin pedirle nada a ella?

Tomé 2,7 millones de empresas activas a partir de registros públicos: registro fiscal, sanciones ambientales, sanciones de integridad, datos de vínculos laborales. Todos los datos publicados por los organismos gubernamentales, ningún dato enviado por la empresa.

La trampa

Mi diseño inicial era el obvio (y demasiado simplificado): agrupar las empresas por características socioambientales, usar los grupos como etiqueta, entrenar un modelo para predecir esa etiqueta.

Ahí fue donde apareció el resultado perfecto y el gran error: yo había creado la etiqueta a partir de las mismas variables que después le entregaba al modelo. No estaba aprendiendo nada sobre las empresas, estaba redescubriendo mi propia regla de agrupamiento. Un espejo, no un modelo.

Este tipo de error no aparece en ninguna métrica, al contrario, normalmente es un excelente disfraz para un resultado perezoso. En Estadística uno aprende desde el primer día de clase que el 90% del trabajo es tratar datos, analizar tablas básicas y estadísticas simples para definir qué resultados importan. Cuando se estudian modelos de regresión se aprende qué es una relación espuria y qué es el sobreajuste. Y son justamente esos cuidados básicos los que hay que tener al meter todos tus datos en la licuadora del aprendizaje automático.

La corrección: separar a quien define el criterio de quien hace la predicción

La primera corrección fue abandonar el agrupamiento automático de la prueba inicial. Al fin y al cabo yo quería probar un modelo y no lo que la gran licuadora de la combinación Claude Code y Python pudiera entregarme. Entonces construí un criterio de clasificación anclado en pautas oficiales, como la taxonomía que el sector bancario usa para decir qué actividades económicas contribuyen a la economía verde, combinado con las estadísticas descriptivas del comportamiento observable de cada empresa. Dejó de ser “el algoritmo decide” y pasó a ser “el criterio replicable y documentado, acelerado por los algoritmos”.

En la segunda etapa, el modelo entró para responder otra pregunta: ¿se puede anticipar esa clasificación usando solo lo que se sabe de la empresa en el mostrador, antes de cualquier consulta cara? Y fue aquí donde tomé la decisión que considero la más importante del proyecto: le prohibí al modelo ver cualquier variable usada en el criterio. Trabaja solo con tamaño, capital social, tiempo de actividad y rubro. Cuatro informaciones que cualquier analista tiene en la pantalla en dos minutos.

Las métricas cayeron y yo lo celebré

Con el diseño corregido y la etiqueta más rica, el desempeño retrocedió y fue exactamente lo que yo esperaba. En el universo del ML, el número casi perfecto significaba solamente una cosa: el modelo estaba leyendo la respuesta. La métrica de evaluación no puede basarse exclusivamente en un número alto, sino en el contexto general. Construir un modelo exige que sea capaz de inferir algo lidiando con información limitada y ruido real, dando como resultado una aproximación útil de la realidad.

En el contexto de mi estudio, para la decisión que interesa en la práctica, a saber, si la empresa es elegible o no al crédito, la separación quedó lo bastante fuerte como para servir de filtro inicial, y eso nunca sustituye un análisis completo, solo intenta reducir el costo del cribado, indicando rápidamente qué casos realmente valen un análisis más profundo.

Mi directora de tesis me pidió contrastar con hechos históricos

Un modelo de crédito puede reproducir desigualdad regional sin que nadie lo note, y los algoritmos, y Brasil, tienen historial en eso. Entonces separé los resultados por región y comparé dos cosas: la tasa de acierto del modelo para empresas que deberían ser aprobadas, y la tasa de error en cada región.

Dos hallazgos.

  • Primero: el Norte y el Nordeste aparecen con una aprobación más alta que el Sudeste, resultado de la composición sectorial de esas regiones, no de cualquier ajuste que yo haya hecho.
  • Segundo: donde el modelo se equivoca más en esas regiones, se equivoca hacia arriba, es decir, aprueba a quien el criterio no aprobaría. Y partiendo de un principio de justicia, si va a haber asimetría, que sea a favor de la concesión del subsidio.

Este tipo de prueba muestra que un score que decide el acceso al crédito y no es contrastado contra sesgo geográfico no debería salir del papel.

Lo que todavía no está resuelto

Las probabilidades del modelo ordenan bien, pero todavía necesitan pasar por un proceso de calibración más intensivo para su uso real en crédito. Para mejorar los análisis hay que conseguir mayor profundidad en materia de datos, porque parte de los indicadores sociales viene del sector y no de una empresa específica, dado que los microdatos públicos están anonimizados, y eso es solo una limitación estructural del dato disponible, no una elección.

Otra mejora es que el criterio es una construcción mía, anclada en pautas oficiales, pero sin un patrón externo que lo valide. No tuve acceso, si es que existe, a una base de “verdad” sobre qué pequeñas empresas son elegibles al crédito verde.

Por qué lo estoy compartiendo

Ninguna idea nace terminada y nadie investiga solo. Compartir los hallazgos es la forma más directa de ser cuestionado, aprender y dar el próximo paso. Espero que este relato ayude a alguien que esté lidiando con desafíos parecidos y que los intercambios aquí me empujen hacia la próxima etapa de esta investigación, que apenas está comenzando.