sequence cspade

Analyse de Panier de Marché : Parcours d'Achat Client

Scénario de test & Cas d'usage

Contexte Métier

Une enseigne de grande distribution souhaite identifier les comportements d'achat séquentiels pour optimiser ses campagnes marketing. L'objectif est de découvrir quels produits sont achetés successivement (et non simultanément) par les clients fidèles, afin de proposer des bons de réduction ciblés après le premier achat (ex: Achat TV -> Achat Barre de son le mois suivant).
Préparation des Données

Création d'un historique d'achats sur 5 clients. Certains suivent le chemin TV->Son, d'autres non.

Copié !
1DATA casuser.retail_history;
2 LENGTH client_id $5 produit $10 date_achat 8;
3 INPUT client_id $ date_achat produit $;
4 DATALINES;
5 C1 10 TV
6 C1 20 BARRE_SON
7 C1 25 CABLE_HDMI
8 C2 12 TV
9 C2 40 BARRE_SON
10 C3 5 FRIGO
11 C3 15 MICROONDE
12 C4 10 TV
13 C4 11 BARRE_SON
14 C5 30 TV
15 ;
16RUN;
17 

Étapes de réalisation

1
Chargement des données en mémoire CAS (implicite via data step dans CASUSER) et vérification.
Copié !
1 
2PROC CAS;
3 
4TABLE.tableInfo / TABLE="retail_history" caslib="casuser";
5 
6RUN;
7 
2
Exécution de cSpade pour trouver les séquences apparaissant chez au moins 40% des clients.
Copié !
1PROC CAS;
2 sequence.cspade /
3 TABLE={name="retail_history", caslib="casuser"},
4 sequenceId="client_id",
5 eventId="date_achat",
6 itemId="produit",
7 support=0.4,
8 casout={name="patterns_retail", caslib="casuser", replace=true};
9RUN;
10QUIT;

Résultat Attendu


La table de sortie 'patterns_retail' doit contenir la séquence 'TV -> BARRE_SON' car elle apparaît chez 3 clients sur 5 (60%), ce qui est supérieur au support de 0.4. Le client C5 (TV seule) et C3 (Frigo) ne contribuent pas à ce motif.