Fonctions d’agrégation des dossiers
Fonctions permettant d’agréger les valeurs de tous les événements d’un même dossier.
Comprendre les agrégats de dossiers
Dans le Process Mining, un dossier représente une instance unique d’un processus, par exemple une commande, un ticket ou un parcours client. Chaque dossier contient plusieurs événements, c’est-à-dire les étapes ou activités individuelles.
Les fonctions d’agrégation des dossiers calculent des valeurs sur l’ensemble des événements d’un dossier et rendent le résultat disponible pour chaque événement. Vous pouvez ainsi :
- Calculer les valeurs totales d’un dossier, par exemple le montant total d’une commande
- Rechercher des schémas dans les dossiers, par exemple le nombre d’événements de reprise
- Comparer les événements individuels aux statistiques du dossier
Schémas courants
-
Calculer les totaux du dossier :
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Rechercher les valeurs extrêmes :
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Agrégations conditionnelles :
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Comparer un événement au dossier :
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Additionne un attribut numérique pour tous les événements du cas actuel.
| Paramètres | | attribute | number | Attribut à additionner | |
| Valeur renvoyée | nombre |
| Exemples | caseSum(ItemAmount) → Total de toutes les valeurs ItemAmount du cas |
caseAvg
(attribute) Calcule la moyenne d'un attribut numérique pour tous les événements du cas actuel.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | |
| Valeur renvoyée | nombre |
| Exemples | caseAvg(ProcessingTime) → Temps de traitement moyen par événement |
caseMin
(attribute) Renvoie la valeur minimale d'un attribut pour tous les événements du cas actuel.
| Paramètres | | attribute | number | Attribut dont vous souhaitez obtenir le minimum | |
| Valeur renvoyée | nombre |
| Exemples | caseMin(ItemPrice) → Prix le plus bas du cas |
caseMax
(attribute) Renvoie la valeur maximale d'un attribut pour tous les événements du cas actuel.
| Paramètres | | attribute | number | Attribut dont vous souhaitez obtenir le maximum | |
| Valeur renvoyée | nombre |
| Exemples | caseMax(ItemPrice) → Prix le plus élevé du cas |
caseCount
() Renvoie le nombre d'événements du cas actuel.
| Valeur renvoyée | nombre |
| Exemples | caseCount() → Nombre d'événements du cas |
caseMedian
(attribute) Renvoie la valeur médiane d'un attribut pour tous les événements du cas actuel.
| Paramètres | | attribute | number | Attribut dont vous souhaitez obtenir la médiane | |
| Valeur renvoyée | nombre |
| Exemples | caseMedian(Duration) → Valeur médiane de la durée dans le cas |
caseCountDistinct
(attribute) Compte les valeurs distinctes d’un attribut dans le cas actuel.
| Paramètres | | attribute | any | Attribut dont vous souhaitez compter les valeurs distinctes | |
| Valeur renvoyée | nombre |
| Exemples | caseCountDistinct(Resource) → Nombre de ressources uniques dans le cas |
caseStdDev
(expr) Calcule l’écart type entre les événements du cas.
| Paramètres | | expr | number | Expression de valeur | |
| Valeur renvoyée | nombre |
| Exemples | caseStdDev(Amount) → Écart type dans le cas |
caseSumIf
(attribute, condition) Additionne uniquement les valeurs des événements qui correspondent à une condition.
| Paramètres | | attribute | number | Attribut à additionner | | condition | boolean | Condition de filtrage | |
| Valeur renvoyée | nombre |
| Exemples | caseSumIf(Amount, Status == "Approved") → Somme de Amount lorsque Status est Approved |
caseAvgIf
(attribute, condition) Calcule la moyenne uniquement pour les événements qui correspondent à une condition.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | | condition | boolean | Condition de filtrage | |
| Valeur renvoyée | nombre |
| Exemples | caseAvgIf(Duration, Activity == "Review") → Durée moyenne des activités Review |
caseCountIf
(condition) Compte les événements qui correspondent à une condition dans le cas actuel.
| Paramètres | | condition | boolean | Condition à compter | |
| Valeur renvoyée | nombre |
| Exemples | caseCountIf(Status == "Error") → Nombre d’événements en erreur dans le cas |
caseMinIf
(attribute, condition) Renvoie la valeur minimale des événements qui correspondent à une condition.
| Paramètres | | attribute | number | Attribut dont vous souhaitez obtenir le minimum | | condition | boolean | Condition de filtrage | |
| Valeur renvoyée | nombre |
| Exemples | caseMinIf(Timestamp, Activity == "Start") → Horodatage de la première activité Start |
caseMaxIf
(attribute, condition) Renvoie la valeur maximale des événements qui correspondent à une condition.
| Paramètres | | attribute | number | Attribut dont vous souhaitez obtenir le maximum | | condition | boolean | Condition de filtrage | |
| Valeur renvoyée | 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. Lorsque vous parcourez chronologiquement les événements d’un dossier, la valeur cumulée est mise à jour.
Cette méthode est utile pour :
- Suivre les totaux cumulés, avec une somme progressive
- Identifier la position d’un événement, avec un décompte progressif
- Calculer des moyennes mobiles
Schémas d’agrégats cumulés
-
Totaux cumulés : suivez l’accumulation d’une valeur au cours du dossier :
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 : identifiez la position d’un événement dans la séquence du dossier :
caseRunningCount() // 1, 2, 3, 4...
-
Moyenne mobile : calculez 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 actuel, événement actuel inclus.
| Paramètres | | attribute | number | Attribut à additionner | |
| Valeur renvoyée | nombre |
| Exemples | caseRunningSum(ItemAmount) → Total cumulé à chaque événement |
caseRunningCount
() Renvoie le numéro de l’événement dans le cas, à partir de 1.
| Valeur renvoyée | nombre |
| Exemples | caseRunningCount() → Position de l’événement : 1, 2, 3, ... |
caseRunningAvg
(attribute) Calcule la moyenne cumulée jusqu’à l’événement actuel, événement actuel inclus.
| Paramètres | | attribute | number | Attribut dont calculer la moyenne | |
| Valeur renvoyée | nombre |
| Exemples | caseRunningAvg(Duration) → Durée moyenne jusqu’à ce point |
caseRunningMin
(expr) Calcule le minimum cumulé jusqu’à l’événement actuel.
| Paramètres | | expr | number | Expression de valeur | |
| Valeur renvoyée | nombre |
| Exemples | caseRunningMin(Amount) → Montant minimal cumulé |
caseRunningMax
(expr) Calcule le maximum cumulé jusqu’à l’événement actuel.
| Paramètres | | expr | number | Expression de valeur | |
| Valeur renvoyée | nombre |
| Exemples | caseRunningMax(Amount) → Montant maximal cumulé |
Fonctions statistiques
Fonctions statistiques permettant d’analyser la distribution des valeurs dans un dossier.
-
Percentiles : déterminez la position d’une valeur par rapport aux autres valeurs du dossier. Indiquez le percentile sous forme de fraction comprise entre 0 et 1, de sorte que 0.9 corresponde au 90e percentile :
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Variance : mesurez la dispersion des valeurs :
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Calcule le percentile d’un attribut dans le cas actuel.
| Paramètres | | attribute | number | Attribut à analyser | | percentile | number | Le percentile sous forme de fraction comprise entre 0 et 1 (0,9 = 90e percentile) | |
| Valeur renvoyée | nombre |
| Exemples | casePercentile(Duration, 0.9) → Durée au 90e percentile dans le cas |
caseVariance
(attribute) Calcule la variance d’un attribut dans le cas actuel.
| Paramètres | | attribute | number | Attribut à analyser | |
| Valeur renvoyée | nombre |
| Exemples | caseVariance(ProcessingTime) → Variance des temps de traitement dans le cas |
Sujets associés