Functies om waarden van alle events binnen dezelfde case samen te voegen.
Case-aggregaties begrijpen
Bij process mining staat een case voor één exemplaar van een proces, zoals een order, ticket of klantreis. Elke case bevat meerdere events: de afzonderlijke stappen of activiteiten.
Case-aggregatiefuncties berekenen waarden over alle events in een case en maken het resultaat beschikbaar bij elk event. Zo kun je:
- Totalen per case berekenen, zoals het totale orderbedrag
- Patronen binnen cases vinden, zoals het aantal herwerkgebeurtenissen
- Afzonderlijke events vergelijken met statistieken op caseniveau
Veelvoorkomende patronen
-
Casetotalen berekenen:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Uitschieters vinden:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Voorwaardelijke aggregaties:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Event vergelijken met case:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Telt de numerieke waarden van een attribuut op voor alle events in de huidige case.
| Parameters | | attribute | number | Attribuut om op te tellen | |
| Retourneert | getal |
| Voorbeelden | caseSum(ItemAmount) → Totaal van alle ItemAmount-waarden in de case |
caseAvg
(attribute) Berekent het gemiddelde van een numeriek attribuut voor alle events in de huidige case.
| Parameters | | attribute | number | Attribuut waarvan je het gemiddelde wilt berekenen | |
| Retourneert | getal |
| Voorbeelden | caseAvg(ProcessingTime) → Gemiddelde verwerkingstijd per event |
caseMin
(attribute) Geeft de laagste attribuutwaarde van alle events in de huidige case.
| Parameters | | attribute | number | Attribuut waarvan je de laagste waarde wilt ophalen | |
| Retourneert | getal |
| Voorbeelden | caseMin(ItemPrice) → Laagste prijs in de case |
caseMax
(attribute) Geeft de hoogste attribuutwaarde van alle events in de huidige case.
| Parameters | | attribute | number | Attribuut waarvan je de hoogste waarde wilt ophalen | |
| Retourneert | getal |
| Voorbeelden | caseMax(ItemPrice) → Hoogste prijs in de case |
caseCount
() Geeft het aantal events in de huidige case.
| Retourneert | getal |
| Voorbeelden | caseCount() → Aantal events in de case |
caseMedian
(attribute) Geeft de mediaan van de attribuutwaarden van alle events in de huidige case.
| Parameters | | attribute | number | Attribuut waarvan je de mediaan wilt ophalen | |
| Retourneert | getal |
| Voorbeelden | caseMedian(Duration) → Mediaan van Duration in de case |
caseCountDistinct
(attribute) Telt het aantal unieke waarden van een attribuut in de huidige case.
| Parameters | | attribute | any | Attribuut waarvan je de unieke waarden wilt tellen | |
| Retourneert | getal |
| Voorbeelden | caseCountDistinct(Resource) → Aantal unieke bronnen in de case |
caseStdDev
(expr) Berekent de standaardafwijking van de events in de case.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | getal |
| Voorbeelden | caseStdDev(Amount) → Standaardafwijking binnen de case |
caseSumIf
(attribute, condition) Telt alleen waarden op van events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Attribuut om op te tellen | | condition | boolean | Voorwaarde waarop je wilt filteren | |
| Retourneert | getal |
| Voorbeelden | caseSumIf(Amount, Status == "Approved") → Totaal van Amount wanneer Status Goedgekeurd is |
caseAvgIf
(attribute, condition) Berekent het gemiddelde alleen voor events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Attribuut waarvan je het gemiddelde wilt berekenen | | condition | boolean | Voorwaarde waarop je wilt filteren | |
| Retourneert | getal |
| Voorbeelden | caseAvgIf(Duration, Activity == "Review") → Gemiddelde duur van Review-activiteiten |
caseCountIf
(condition) Telt de events in de huidige case die aan een voorwaarde voldoen.
| Parameters | | condition | boolean | Voorwaarde om op te tellen | |
| Retourneert | getal |
| Voorbeelden | caseCountIf(Status == "Error") → Aantal fout-events in de case |
caseMinIf
(attribute, condition) Geeft de laagste waarde van events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Attribuut waarvan je de laagste waarde wilt ophalen | | condition | boolean | Voorwaarde waarop je wilt filteren | |
| Retourneert | getal |
| Voorbeelden | caseMinIf(Timestamp, Activity == "Start") → Timestamp van de eerste Start-activiteit |
caseMaxIf
(attribute, condition) Geeft de hoogste waarde van events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Attribuut waarvan je de hoogste waarde wilt ophalen | | condition | boolean | Voorwaarde waarop je wilt filteren | |
| Retourneert | getal |
| Voorbeelden | caseMaxIf(Timestamp, Activity == "End") → Timestamp van de laatste End-activiteit |
Doorlopende aggregaties
Doorlopende aggregaties berekenen cumulatieve waarden tot en met het huidige event. Wanneer je chronologisch door de events in een case gaat, wordt de doorlopende waarde bijgewerkt.
Dit is handig voor:
- Cumulatieve totalen bijhouden (lopende som)
- De positie van een event bepalen (lopende telling)
- Voortschrijdende gemiddelden berekenen
Patronen voor doorlopende aggregaties
-
Cumulatieve totalen: houd bij hoe een waarde gedurende de case oploopt:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Event | Bedrag | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Eventpositie: bepaal waar een event in de casevolgorde valt:
caseRunningCount() // 1, 2, 3, 4...
-
Voortschrijdend gemiddelde: bereken het gemiddelde tot en met het huidige punt:
caseRunningAvg(Duration) // Average duration so far
-
Logica op basis van positie:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Berekent de cumulatieve som tot en met het huidige event.
| Parameters | | attribute | number | Attribuut om op te tellen | |
| Retourneert | getal |
| Voorbeelden | caseRunningSum(ItemAmount) → Cumulatief totaal per event |
caseRunningCount
() Geeft het volgnummer van het event in de case, vanaf 1.
| Retourneert | getal |
| Voorbeelden | caseRunningCount() → Positie van het event: 1, 2, 3, ... |
caseRunningAvg
(attribute) Berekent het cumulatieve gemiddelde tot en met het huidige event.
| Parameters | | attribute | number | Attribuut waarvan je het gemiddelde wilt berekenen | |
| Retourneert | getal |
| Voorbeelden | caseRunningAvg(Duration) → Gemiddelde duur tot dit punt |
caseRunningMin
(expr) Berekent de laagste waarde tot en met het huidige event.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | getal |
| Voorbeelden | caseRunningMin(Amount) → Laagste waarde tot nu toe |
caseRunningMax
(expr) Berekent de hoogste waarde tot en met het huidige event.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | getal |
| Voorbeelden | caseRunningMax(Amount) → Hoogste waarde tot nu toe |
Statistische functies
Statistische functies om de verdeling van waarden binnen een case te analyseren.
-
Percentielen: bepaal waar een waarde valt ten opzichte van andere waarden in de case. Geef het percentiel op als een breuk tussen 0 en 1. 0.9 staat bijvoorbeeld voor het 90e percentiel:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Variantie: meet hoe verspreid de waarden zijn:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Berekent het percentiel van een attribuut binnen de huidige case.
| Parameters | | attribute | number | Attribuut om te analyseren | | percentile | number | Percentiel als fractie van 0 tot 1 (0.9 = 90e percentiel) | |
| Retourneert | getal |
| Voorbeelden | casePercentile(Duration, 0.9) → 90e percentiel van de duur in de case |
caseVariance
(attribute) Berekent de variantie van een attribuut binnen de huidige case.
| Parameters | | attribute | number | Attribuut om te analyseren | |
| Retourneert | getal |
| Voorbeelden | caseVariance(ProcessingTime) → Variantie van de verwerkingstijden in de case |
Gerelateerde onderwerpen