Fonctions d’agrégation par cas
Fonctions permettant d’agréger les valeurs de tous les événements d’un même cas.
Comprendre les agrégats par cas
En Process Mining, un cas représente une instance unique d’un processus (par exemple, une commande, un ticket ou le parcours d’un client). Chaque cas comprend plusieurs événements (les différentes étapes ou activités).
Les fonctions d’agrégation par cas calculent des valeurs à partir de tous les événements d’un cas, puis rendent le résultat disponible pour chaque événement. Elles permettent de :
- Calculer les valeurs totales d’un cas (par exemple, le montant total d’une commande)
- Repérer des tendances dans les cas (par exemple, le nombre d’événements de reprise)
- Comparer des événements individuels aux statistiques du cas
Motifs courants
-
Calculer les totaux d’un cas :
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Repérer les valeurs extrêmes :
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Agrégats conditionnels :
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Comparer un événement au cas :
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Additionne les valeurs d’un attribut numérique pour tous les événements du dossier en cours.
| Paramètres | | attribute | number | Attribut à additionner | |
| Valeurs renvoyées | nombre |
| Exemples | caseSum(ItemAmount) → Total des valeurs ItemAmount du dossier |
caseAvg
(attribute) Calcule la moyenne d’un attribut numérique pour tous les événements du dossier en cours.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | |
| Valeurs renvoyées | nombre |
| Exemples | caseAvg(ProcessingTime) → Durée moyenne de traitement par événement |
caseMin
(attribute) Renvoie la valeur minimale d’un attribut parmi tous les événements du dossier en cours.
| Paramètres | | attribute | number | Attribut dont renvoyer la valeur minimale | |
| Valeurs renvoyées | nombre |
| Exemples | caseMin(ItemPrice) → Prix le plus bas du dossier |
caseMax
(attribute) Renvoie la valeur maximale d’un attribut parmi tous les événements du dossier en cours.
| Paramètres | | attribute | number | Attribut dont renvoyer la valeur maximale | |
| Valeurs renvoyées | nombre |
| Exemples | caseMax(ItemPrice) → Prix le plus élevé du dossier |
caseCount
() Renvoie le nombre d’événements du dossier en cours.
| Valeurs renvoyées | nombre |
| Exemples | caseCount() → Nombre d’événements du dossier |
caseMedian
(attribute) Renvoie la valeur médiane d’un attribut parmi tous les événements du dossier en cours.
| Paramètres | | attribute | number | Attribut dont renvoyer la valeur médiane | |
| Valeurs renvoyées | nombre |
| Exemples | caseMedian(Duration) → Valeur médiane de Duration dans le dossier |
caseCountDistinct
(attribute) Compte les valeurs distinctes d’un attribut dans le dossier en cours.
| Paramètres | | attribute | any | Attribut dont compter les valeurs distinctes | |
| Valeurs renvoyées | nombre |
| Exemples | caseCountDistinct(Resource) → Nombre de ressources distinctes dans le dossier |
caseStdDev
(expr) Calcule l’écart type des événements du dossier.
| Paramètres | | expr | number | Expression de valeur | |
| Valeurs renvoyées | nombre |
| Exemples | caseStdDev(Amount) → Écart type dans le dossier |
caseSumIf
(attribute, condition) Additionne les valeurs uniquement pour les événements qui remplissent une condition.
| Paramètres | | attribute | number | Attribut à additionner | | condition | boolean | Condition de filtrage | |
| Valeurs renvoyées | nombre |
| Exemples | caseSumIf(Amount, Status == "Approved") → Somme de Amount lorsque Status est Approuvé |
caseAvgIf
(attribute, condition) Calcule la moyenne des valeurs uniquement pour les événements qui remplissent une condition.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | | condition | boolean | Condition de filtrage | |
| Valeurs renvoyées | nombre |
| Exemples | caseAvgIf(Duration, Activity == "Review") → Durée moyenne des activités Review |
caseCountIf
(condition) Compte les événements du dossier en cours qui remplissent une condition.
| Paramètres | | condition | boolean | Condition à compter | |
| Valeurs renvoyées | nombre |
| Exemples | caseCountIf(Status == "Error") → Nombre d’événements en erreur dans le dossier |
caseMinIf
(attribute, condition) Renvoie la valeur minimale parmi les événements qui remplissent une condition.
| Paramètres | | attribute | number | Attribut dont renvoyer la valeur minimale | | condition | boolean | Condition de filtrage | |
| Valeurs renvoyées | nombre |
| Exemples | caseMinIf(Timestamp, Activity == "Start") → Horodatage de la première activité Start |
caseMaxIf
(attribute, condition) Renvoie la valeur maximale parmi les événements qui remplissent une condition.
| Paramètres | | attribute | number | Attribut dont renvoyer la valeur maximale | | condition | boolean | Condition de filtrage | |
| Valeurs renvoyées | nombre |
| Exemples | caseMaxIf(Timestamp, Activity == "End") → Horodatage de la dernière activité End |
Agrégats cumulés
Les agrégats cumulés calculent les valeurs cumulées jusqu’à l’événement actuel inclus. À mesure que vous parcourez chronologiquement les événements d’un cas, la valeur cumulée est mise à jour.
Ils sont utiles pour :
- Suivre les totaux cumulés (somme cumulée)
- Déterminer la position d’un événement (nombre cumulé)
- Calculer des moyennes mobiles
Exemples d’agrégats cumulés
-
Totaux cumulés : suivre l’évolution d’une valeur au fil du cas :
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Événement | Montant | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Position de l’événement : déterminer la place de l’événement dans la séquence du cas :
caseRunningCount() // 1, 2, 3, 4...
-
Moyenne mobile : calculer la moyenne jusqu’au point actuel :
caseRunningAvg(Duration) // Average duration so far
-
Logique fondée sur la position :
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Calcule la somme cumulée jusqu’à l’événement en cours, inclus.
| Paramètres | | attribute | number | Attribut à additionner | |
| Valeurs renvoyées | nombre |
| Exemples | caseRunningSum(ItemAmount) → Total cumulé à chaque événement |
caseRunningCount
() Renvoie le numéro de l’événement dans le dossier, à partir de 1.
| Valeurs renvoyées | nombre |
| Exemples | caseRunningCount() → Position de l’événement : 1, 2, 3, ... |
caseRunningAvg
(attribute) Calcule la moyenne cumulée jusqu’à l’événement en cours, inclus.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | |
| Valeurs renvoyées | nombre |
| Exemples | caseRunningAvg(Duration) → Durée moyenne jusqu’à présent |
caseRunningMin
(expr) Calcule la valeur minimale cumulée jusqu’à l’événement en cours.
| Paramètres | | expr | number | Expression de valeur | |
| Valeurs renvoyées | nombre |
| Exemples | caseRunningMin(Amount) → Montant minimal cumulé |
caseRunningMax
(expr) Calcule la valeur maximale cumulée jusqu’à l’événement en cours.
| Paramètres | | expr | number | Expression de valeur | |
| Valeurs renvoyées | nombre |
| Exemples | caseRunningMax(Amount) → Montant maximal cumulé |
Fonctions statistiques
Fonctions statistiques permettant d’analyser la distribution des valeurs au sein d’un cas.
-
Percentiles : situer une valeur par rapport aux autres valeurs du cas. Indiquez le percentile sous forme de fraction entre 0 et 1. Par exemple, 0.9 correspond au 90e percentile :
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Variance : mesurer la dispersion des valeurs :
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Calcule le percentile d’un attribut dans le dossier en cours.
| Paramètres | | attribute | number | Attribut à analyser | | percentile | number | Percentile sous forme de fraction entre 0 et 1 (0.9 = 90e percentile) | |
| Valeurs renvoyées | nombre |
| Exemples | casePercentile(Duration, 0.9) → Durée au 90e percentile dans le dossier |
caseVariance
(attribute) Calcule la variance d’un attribut dans le dossier en cours.
| Paramètres | | attribute | number | Attribut à analyser | |
| Valeurs renvoyées | nombre |
| Exemples | caseVariance(ProcessingTime) → Variance des durées de traitement dans le dossier |
Sujets connexes