network core

Identificación de Anillos de Lavado de Dinero (Grafo Dirigido)

Scénario de test & Cas d'usage

Contexto empresarial

Una entidad bancaria necesita detectar posibles estructuras de lavado de dinero. Los estafadores suelen realizar transferencias circulares entre cuentas (A->B->C->A) para ocultar el origen de los fondos. Se utilizará la descomposición de núcleo en un grafo dirigido para identificar estos grupos densamente conectados que operan como anillos cerrados, diferenciándolos de transacciones lineales legítimas.
Preparación de datos

Creación de una tabla de transacciones sospechosas con un anillo cerrado (A-B-C) y transacciones aisladas.

¡Copiado!
1 
2DATA casuser.transacciones_bancarias;
3INPUT cuenta_origen $ cuenta_destino $ monto;
4DATALINES;
5ACC_01 ACC_02 5000 ACC_02 ACC_03 4500 ACC_03 ACC_01 4800 ACC_04 ACC_05 100 ACC_05 ACC_06 100;
6 
7RUN;
8 

Étapes de réalisation

1
Carga de datos y ejecución de network.core configurado como DIRECTED para respetar el flujo del dinero.
¡Copiado!
1 
2PROC CAS;
3network.core / links={name='transacciones_bancarias', from='cuenta_origen', to='cuenta_destino'} direction='DIRECTED' outNodes={name='score_riesgo', replace=true};
4 
5RUN;
6 
2
Verificación de resultados: Filtrar nodos con core > 1 (indicativo de ciclo).
¡Copiado!
1 
2PROC CAS;
3TABLE.fetch / TABLE={name='score_riesgo'} where='core > 1';
4 
5RUN;
6 

Resultado esperado


La tabla 'score_riesgo' debe asignar un valor de núcleo (core) más alto (probablemente 2 o más) a las cuentas ACC_01, ACC_02 y ACC_03 que forman el ciclo, mientras que ACC_04, ACC_05 y ACC_06 tendrán valores de núcleo bajos (0 o 1), indicando bajo riesgo de estructura circular.