Support formation Rapports Power BI

Panier croisé

L'idée en une phrase

  • L'analyse du panier croisé (market basket analysis) cherche les produits achetés ensemble dans une même commande : produit A et produit B.
  • Elle alimente les recommandations du type « souvent achetés ensemble », les offres groupées et l'implantation en magasin.

Fichier d'exercice

  • PanierCroise_Depart : le modèle et les consignes. Jeu de données commun aux cas d'étude (2 456 commandes, 4 470 lignes, 24 produits).
  • Corrigé : le PBIP PanierCroise_Corrige est remis par le formateur.

Les trois indicateurs

IndicateurCalculLecture
SupportCommandes avec A et B / toutes les commandesLa paire est-elle fréquente ?
ConfianceCommandes avec A et B / commandes avec AQuand on achète A, achète-t-on B ?
LiftConfiance / part des commandes avec BAu-dessus de 1, A « attire » B

Le lift corrige l'effet des produits très vendus : un casque est présent dans un tiers des commandes, il a donc une confiance élevée avec presque tout, sans lien réel.

Étape 1 : une deuxième liste de produits

Pour croiser A et B dans une matrice, il faut deux axes produit. On crée une table calculée sans relation :

ProduitAssocie =
SELECTCOLUMNS (
    Produit,
    "Produit associé", Produit[Produit],
    "Catégorie associée", Produit[Categorie]
)
  • Ne créez aucune relation entre ProduitAssocie et le reste du modèle : la mesure se charge de transmettre le filtre.

Étape 2 : les commandes qui contiennent A et B

Commandes A et B =
VAR a = SELECTEDVALUE ( Produit[Produit] )
VAR b = SELECTEDVALUE ( ProduitAssocie[Produit associé] )
VAR commandesA = VALUES ( Ventes[NumCommande] )
RETURN
    IF (
        NOT ISBLANK ( b ) && a <> b,
        CALCULATE (
            [Nb commandes],
            commandesA,
            REMOVEFILTERS ( Produit ),
            TREATAS ( { b }, Produit[Produit] )
        )
    )
  • commandesA est évaluée avant CALCULATE : ce sont les numéros des commandes qui contiennent le produit A.
  • Dans CALCULATE, on garde ces commandes, on retire le filtre sur A (REMOVEFILTERS) et on applique B à la place (TREATAS) : il reste les commandes de A qui contiennent aussi B.
  • La diagonale (A = B) est laissée vide.
  • Source (Microsoft Learn)

Étape 3 : les dénominateurs

Total commandes = CALCULATE ( [Nb commandes], REMOVEFILTERS ( Produit ) )

Commandes avec B =
CALCULATE (
    [Nb commandes],
    REMOVEFILTERS ( Produit ),
    TREATAS ( VALUES ( ProduitAssocie[Produit associé] ), Produit[Produit] )
)

Étape 4 : support, confiance et lift

Support = DIVIDE ( [Commandes A et B], [Total commandes] )

Confiance = DIVIDE ( [Commandes A et B], [Nb commandes] )

Lift = DIVIDE ( [Confiance], DIVIDE ( [Commandes avec B], [Total commandes] ) )
  • Dans Confiance, [Nb commandes] est évalué avec le filtre sur A : c'est le nombre de commandes qui contiennent A.

Étape 5 : les visuels

  • Matrice des paires : Produit[Produit] en lignes, ProduitAssocie[Produit associé] en colonnes, Commandes A et B en valeurs, avec une mise en forme conditionnelle.
  • Page de recommandations : un segment sur Produit[Produit] (sélection unique) et un tableau ProduitAssocie[Produit associé], Commandes A et B, Support, Confiance, Lift, trié par lift décroissant.

Résultat attendu

Produit A = Vélo ville (306 commandes sur 2 456) :

Produit associéCommandes A et BConfianceLift
Lampe avant10936 %3,42
Antivol16654 %2,51
Casque14046 %1,37
  • L'antivol est le plus souvent associé au vélo de ville, mais c'est la lampe avant qui a le plus fort lift : elle est rare dans l'ensemble des commandes, et fréquente avec ce vélo.
  • Le casque a une confiance élevée avec presque tous les vélos, mais un lift plus faible : il se vend bien partout.

Pour aller plus loin

  • Par catégorie : remplacez Produit[Produit] par Produit[Categorie] (et la colonne associée), en adaptant TREATAS.
  • Seuil minimal : masquez les paires de moins de 10 commandes, dont le lift n'est pas fiable.