La acción cspade implementa el algoritmo cSPADE (Sequential Pattern Discovery using Equivalence classes). Este algoritmo se utiliza para la minería de secuencias, permitiendo descubrir subsecuencias frecuentes dentro de una base de datos de secuencias. Es fundamental para análisis como la cesta de la compra secuencial, navegación web o datos biológicos, donde el orden de los eventos es crítico.
| Parámetro | Descripción |
|---|---|
| table | Especifica la tabla de entrada que contiene las secuencias para el análisis. Requiere especificar el caslib y el nombre. |
| sequenceId | Especifica la variable que identifica la secuencia o el cliente (ej. CustomerID). Agrupa las transacciones. |
| eventId | Especifica la variable de evento o tiempo (ej. TransactionTime). Define el orden de los eventos dentro de una secuencia. |
| itemId | Especifica la variable que contiene el elemento o ítem (ej. ProductID). Es el objeto del análisis de frecuencia. |
| casout | Especifica la tabla de salida donde se almacenarán las secuencias frecuentes descubiertas y sus métricas de soporte. |
| support | Especifica el nivel mínimo de soporte para considerar una secuencia como frecuente (valor entre 0 y 1). |
| minGap | Especifica la diferencia mínima de tiempo o pasos entre elementos consecutivos de una secuencia. |
| maxGap | Especifica la diferencia máxima de tiempo o pasos entre elementos consecutivos de una secuencia. |
| maxLen | Especifica el número máximo de elementos permitidos en una secuencia descubierta. El valor predeterminado es 10. |
| maxSize | Especifica el número máximo de ítems dentro de un solo elemento (conjunto de ítems) de una secuencia. El valor predeterminado es 10. |
Genera un conjunto de datos 'compras_secuenciales' que simula transacciones de clientes con un ID de cliente, un tiempo de transacción y el artículo comprado.
| 1 | |
| 2 | DATA casuser.compras_secuenciales; |
| 3 | INPUT CustomerID TimeID ItemID $; |
| 4 | DATALINES; |
| 5 | 1 10 A 1 10 B 1 20 C 1 25 A 2 10 A 2 20 C 2 30 E 3 10 A 3 20 B 3 30 D ; |
| 6 | |
| 7 | RUN; |
| 8 |
Ejecuta el algoritmo cSPADE para encontrar secuencias que aparecen en al menos el 30% de los historiales de los clientes.
| 1 | |
| 2 | PROC CAS; |
| 3 | sequence.cspade / TABLE={name="compras_secuenciales", caslib="casuser"} sequenceId="CustomerID" eventId="TimeID" itemId="ItemID" support=0.3 casout={name="secuencias_frecuentes", caslib="casuser", replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Realiza un análisis más específico definiendo restricciones de brecha temporal (minGap, maxGap) y longitud máxima de secuencia para filtrar patrones irrelevantes.
| 1 | |
| 2 | PROC CAS; |
| 3 | sequence.cspade / TABLE={name="compras_secuenciales", caslib="casuser"} sequenceId="CustomerID" eventId="TimeID" itemId="ItemID" support=0.2 minGap=1 maxGap=15 maxLen=3 maxSize=2 casout={name="secuencias_refinadas", caslib="casuser", replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Una cadena de supermercados desea identificar patrones de compra secuenciales para optimizar sus campañas de marketing. El objetivo es descubrir qué productos suelen comprarse d...
Un portal de noticias quiere analizar la navegación de los usuarios, pero solo le interesan las lecturas consecutivas rápidas (noticias leídas en la misma sesión o con poco inte...
Un hospital investiga la progresión de tratamientos. Se busca detectar combinaciones de medicamentos administrados, pero forzando límites estrictos en la longitud de la cadena p...