simple compare

Detección de Anomalías en Patrones Transaccionales (Alto Volumen)

Scénario de test & Cas d'usage

Contexto empresarial

En un sistema de detección de fraude, se necesita comparar las transacciones de la última hora (Tabla Base) contra un patrón histórico de transacciones normales (Tabla Comparación). Se busca identificar combinaciones de 'Tipo_Comercio' y 'Ubicacion' que aparezcan con frecuencias inusuales. Se requiere el detalle completo de los registros para auditoría.
Preparación de datos

Simulación de un volumen considerable de transacciones actuales e históricas.

¡Copiado!
1 
2DATA casuser.Tx_Actual;
3DO i=1 to 1000;
4Tipo_Comercio='Online';
5Ubicacion='Intl';
6OUTPUT;
7END;
8DO i=1 to 5000;
9Tipo_Comercio='Retail';
10Ubicacion='Local';
11OUTPUT;
12END;
13 
14RUN;
15 
16DATA casuser.Tx_Historico;
17DO i=1 to 2000;
18Tipo_Comercio='Online';
19Ubicacion='Intl';
20OUTPUT;
21END;
22DO i=1 to 4000;
23Tipo_Comercio='Retail';
24Ubicacion='Local';
25OUTPUT;
26END;
27 
28RUN;
29 

Étapes de réalisation

1
Comparación incluyendo todos los duplicados para auditoría detallada y renombrando columnas de frecuencia para claridad.
¡Copiado!
1 
2PROC CAS;
3SIMPLE.compare / TABLE={name='Tx_Actual', caslib='casuser'} table2={name='Tx_Historico', caslib='casuser'} inputs={'Tipo_Comercio', 'Ubicacion'} includeDuplicates={'CASOUT', 'FREQOUT'} frequencyName='Freq_Hora_Actual' frequency2Name='Freq_Promedio_Hist' casOut={name='Analisis_Fraude_Detalle', replace=true};
4 
5RUN;
6 
7QUIT;
8 

Resultado esperado


La tabla 'Analisis_Fraude_Detalle' contiene cada transacción individual (gracias a includeDuplicates) enriquecida con las frecuencias actuales ('Freq_Hora_Actual') versus las históricas ('Freq_Promedio_Hist'), facilitando la identificación de picos de actividad sospechosos en tiempo real.