L'action `mbanalysis` effectue une analyse d'association, également connue sous le nom d'analyse du panier d'achat, pour trouver des relations et des règles entre les articles dans un ensemble de données transactionnelles. Elle est principalement utilisée pour découvrir des modèles d'achat, comme les produits fréquemment achetés ensemble.
| Paramètre | Description |
|---|---|
| antecedentList | Spécifie les chaînes d'expressions régulières à rechercher dans l'antécédent (côté gauche) d'une règle. |
| conf | Spécifie la confiance minimale pour les règles. La valeur par défaut est 50. |
| consequentList | Spécifie les chaînes d'expressions régulières à rechercher dans le conséquent (côté droit) d'une règle. |
| hierarchy | Spécifie une ou plusieurs tables de hiérarchie. Si omis, l'action effectue une analyse d'association simple sans hiérarchie. Jusqu'à cinq tables peuvent être spécifiées, chacune représentant un niveau de la hiérarchie. |
| idVariable | Spécifie la variable utilisée pour regrouper la variable cible en paniers. |
| items | Spécifie le nombre d'articles dans une règle. La valeur par défaut est 2 si `out` ou `outrule` est spécifié, sinon 1. |
| lift | Spécifie la valeur minimale du lift nécessaire pour générer une règle. La valeur par défaut est 1. |
| maxItems | Spécifie une taille maximale de panier ; les paniers plus grands sont rejetés. La valeur par défaut est 1000. |
| minItems | Spécifie une taille minimale de panier ; les paniers plus petits sont rejetés. La valeur par défaut est 1. |
| nLHS_range | Spécifie le nombre minimum et maximum d'articles dans le côté gauche (LHS) d'une règle. |
| norm | Si défini sur VRAI, normalise les valeurs de la variable cible et des articles dans les tables de sortie. |
| nRHS_range | Spécifie le nombre minimum et maximum d'articles dans le côté droit (RHS) d'une règle. |
| out | Spécifie la table pour contenir les ensembles d'articles fréquents afin de générer des règles. Cette table de sortie inclut également les comptes de transactions et le support. |
| outfreq | Spécifie la table pour contenir les articles fréquents uniques avec leurs comptes de transactions et leur support. |
| outrule | Spécifie la table pour contenir les règles. Cette table de sortie inclut des variables identifiant les côtés gauche et droit de la règle, le support et le lift. |
| saveState | Spécifie la table dans laquelle sauvegarder le modèle pour un scoring futur. |
| separator | Spécifie le caractère séparateur dans l'antécédent ou le conséquent d'une règle. La valeur par défaut est "&". |
| sup_lift | Spécifie le lift de support minimum nécessaire pour générer une règle. La valeur par défaut est 0. |
| supmin | Spécifie le niveau de support minimum pour une règle. Cela représente la fréquence minimale autorisée d'un article. Ce paramètre supplante `suppct`. |
| suppct | Spécifie le niveau de support minimum pour une règle en pourcentage du nombre de paniers dans la table de données d'entrée. |
| table | Spécifie les paramètres de la table d'entrée contenant les données de transaction. |
| tgtVariable | Spécifie une seule variable nominale à utiliser comme variable cible. Si cette variable n'est pas présente dans la table de données, l'action se termine par une erreur. |
Ce bloc de code crée un jeu de données transactionnelles simple pour illustrer l'utilisation de l'action `mbanalysis`.
| 1 | DATA casuser.transactions; |
| 2 | INPUT transaction_id item_id $; |
| 3 | CARDS; |
| 4 | 1 bread |
| 5 | 1 milk |
| 6 | 1 cheese |
| 7 | 2 bread |
| 8 | 2 butter |
| 9 | 3 milk |
| 10 | 3 cheese |
| 11 | 4 bread |
| 12 | 4 milk |
| 13 | 5 bread |
| 14 | 5 cheese |
| 15 | ; |
| 16 | RUN; |
Cet exemple effectue une analyse de panier d'achat de base avec un support minimum de 1% et une confiance de 50%. Les règles générées sont stockées dans la table 'outrule_simple'.
| 1 | PROC CAS; |
| 2 | ruleMining.mbanalysis / |
| 3 | TABLE={name='transactions' caslib='casuser'}, |
| 4 | idVariable='transaction_id', |
| 5 | tgtVariable='item_id', |
| 6 | suppct=1, |
| 7 | conf=50, |
| 8 | outrule={name='outrule_simple', caslib='casuser', replace=true}; |
| 9 | RUN; |
Cet exemple plus avancé filtre les règles pour n'inclure que celles où 'milk' est dans l'antécédent et 'bread' est dans le conséquent. Il définit également une taille de règle de 2 articles, un support minimum de 20%, une confiance de 60% et un lift minimum de 1.2.
| 1 | PROC CAS; |
| 2 | ruleMining.mbanalysis / |
| 3 | TABLE={name='transactions', caslib='casuser'}, |
| 4 | idVariable='transaction_id', |
| 5 | tgtVariable='item_id', |
| 6 | items=2, |
| 7 | suppct=20, |
| 8 | conf=60, |
| 9 | lift=1.2, |
| 10 | antecedentList={'milk'}, |
| 11 | consequentList={'bread'}, |
| 12 | out={name='out_detailed', caslib='casuser', replace=true}, |
| 13 | outrule={name='outrule_detailed', caslib='casuser', replace=true}; |
| 14 | RUN; |