La acción `mbanalysis` del conjunto de acciones `ruleMining` se utiliza para realizar un análisis de la cesta de la compra (Market Basket Analysis). Este método estadístico descubre co-ocurrencias de artículos en grandes volúmenes de datos transaccionales, identificando qué artículos tienden a ser comprados juntos. La acción genera reglas de asociación (por ejemplo, 'Si se compra {leche}, entonces también se compra {pan}') y calcula métricas clave como el soporte, la confianza y el lift para evaluar la relevancia de estas reglas. Es una herramienta fundamental en el comercio minorista para la optimización de la disposición de productos, campañas de marketing y recomendaciones personalizadas.
| Parámetro | Descripción |
|---|---|
| antecedentList | Especifica las cadenas de expresiones regulares para que coincidan en el antecedente (lado izquierdo) de una regla. |
| conf | Especifica la confianza mínima para las reglas, en un rango de 0 a 100. El valor predeterminado es 50. |
| consequentList | Especifica las cadenas de expresiones regulares para que coincidan en el consecuente (lado derecho) de una regla. |
| hierarchy | Especifica una o más tablas de jerarquía. Si se omite, se realiza un análisis de asociación simple. |
| idVariable | Especifica la variable que se utiliza para agrupar la variable objetivo en cestas. |
| items | Especifica el número de artículos en una regla. El valor predeterminado es 2. Rango: 1-1000. |
| lift | Especifica el valor mínimo de 'lift' (elevación) necesario para generar una regla. El valor predeterminado es 1. |
| maxItems | Especifica el tamaño máximo de cesta; las cestas más grandes se rechazan. El valor predeterminado es 1000. |
| minItems | Especifica el tamaño mínimo de cesta; las cestas más pequeñas se rechazan. El valor predeterminado es 1. |
| nLHS_range | Especifica el rango (mínimo y máximo) para el número de artículos en el lado izquierdo (LHS) de una regla. |
| norm | Cuando se establece en True, normaliza los valores de la variable objetivo y los artículos en las tablas de salida. |
| nRHS_range | Especifica el rango (mínimo y máximo) para el número de artículos en el lado derecho (RHS) de una regla. |
| out | Especifica la tabla de salida que contendrá los conjuntos de artículos frecuentes para generar reglas, incluyendo recuentos de transacciones y soporte. |
| outfreq | Especifica la tabla de salida que contendrá los artículos frecuentes únicos junto con sus recuentos de transacciones y soporte. |
| outrule | Especifica la tabla de salida que contendrá las reglas, incluyendo los lados izquierdo y derecho, soporte y lift. |
| saveState | Especifica la tabla en la que se guardará el estado del modelo para futuras puntuaciones. |
| separator | Especifica el carácter separador en el antecedente o el consecuente de una regla. El valor predeterminado es '&'. |
| sup_lift | Especifica el lift de soporte mínimo necesario para generar una regla. El valor predeterminado es 0. |
| supmin | Especifica el nivel mínimo de soporte (frecuencia absoluta) para una regla. Anula el parámetro `suppct`. |
| suppct | Especifica el nivel mínimo de soporte para una regla como un porcentaje del número de cestas. |
| table | Especifica la tabla de datos de entrada que contiene los datos transaccionales. |
| tgtVariable | Especifica una única variable nominal para usar como la variable de artículo en las transacciones. |
Este código SAS crea una tabla CAS llamada `Transaction_Data` que simula transacciones de compra. Cada fila representa un artículo comprado dentro de una transacción específica, identificada por `TransID`.
| 1 | DATA casuser.Transaction_Data(caslib='casuser'); |
| 2 | INFILE DATALINES delimiter=','; |
| 3 | INPUT TransID $ Product $; |
| 4 | DATALINES; |
| 5 | 1,Leche |
| 6 | 1,Pan |
| 7 | 1,Huevos |
| 8 | 2,Pan |
| 9 | 2,Mantequilla |
| 10 | 3,Leche |
| 11 | 3,Cereal |
| 12 | 4,Leche |
| 13 | 4,Pan |
| 14 | 4,Mantequilla |
| 15 | 5,Cerveza |
| 16 | 5,Pañales |
| 17 | ; |
| 18 | RUN; |
Este ejemplo ejecuta un análisis básico de la cesta de la compra en la tabla `Transaction_Data`. Busca reglas de asociación con un soporte mínimo del 20% y una confianza del 50%. Los resultados, incluidas las reglas generadas, se guardan en la tabla `Rule_Output`.
| 1 | PROC CAS; |
| 2 | ruleMining.mbanalysis / |
| 3 | TABLE={name='Transaction_Data'}, |
| 4 | idVariable='TransID', |
| 5 | tgtVariable='Product', |
| 6 | suppct=20, |
| 7 | conf=50, |
| 8 | outrule={name='Rule_Output', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
Este ejemplo más detallado aplica filtros más estrictos. Requiere un soporte mínimo del 25%, una confianza del 60% y un lift mínimo de 1.2. Limita las reglas a tener 1 artículo en el antecedente y 1 en el consecuente. Además, genera tres tablas de salida: `Frequent_Items` para los artículos frecuentes, `Item_Sets` para los conjuntos de artículos y `Advanced_Rules` para las reglas filtradas.
| 1 | PROC CAS; |
| 2 | ruleMining.mbanalysis / |
| 3 | TABLE={name='Transaction_Data'}, |
| 4 | idVariable='TransID', |
| 5 | tgtVariable='Product', |
| 6 | suppct=25, |
| 7 | conf=60, |
| 8 | lift=1.2, |
| 9 | nLHS_range={lower=1, upper=1}, |
| 10 | nRHS_range={lower=1, upper=1}, |
| 11 | out={name='Item_Sets', replace=true}, |
| 12 | outfreq={name='Frequent_Items', replace=true}, |
| 13 | outrule={name='Advanced_Rules', replace=true}; |
| 14 | RUN; |
| 15 | QUIT; |