Functies om waarden van alle events binnen dezelfde case te aggregeren.
Case-aggregaties begrijpen
Bij process mining staat een case voor één exemplaar van een proces, bijvoorbeeld één order, ticket of klantreis. Elke case bevat meerdere events, de afzonderlijke stappen of activiteiten.
Case-aggregatiefuncties berekenen waarden over alle events in een case, zodat het resultaat bij elk event beschikbaar is. Hiermee kun je:
- Totale waarden voor een case berekenen, bijvoorbeeld het totale orderbedrag
- Patronen binnen cases vinden, bijvoorbeeld het aantal herstelwerk-events
- Afzonderlijke events vergelijken met statistieken op case-niveau
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
-
Conditionele aggregaties:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Event met case vergelijken:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Telt een numeriek attribuut op over alle events in de huidige case.
| Parameters | | attribute | number | Het attribuut dat je wilt optellen | |
| Retourneert | number |
| Voorbeelden | caseSum(ItemAmount) → Totaal van alle ItemAmount-waarden in de case |
caseAvg
(attribute) Berekent het gemiddelde van een numeriek attribuut over alle events in de huidige case.
| Parameters | | attribute | number | Het attribuut waarvan je het gemiddelde wilt berekenen | |
| Retourneert | number |
| Voorbeelden | caseAvg(ProcessingTime) → Gemiddelde verwerkingstijd per event |
caseMin
(attribute) Geeft de minimumwaarde van een attribuut over alle events in de huidige case terug.
| Parameters | | attribute | number | Het attribuut waarvan je het minimum wilt bepalen | |
| Retourneert | number |
| Voorbeelden | caseMin(ItemPrice) → Laagste prijs in de case |
caseMax
(attribute) Geeft de maximumwaarde van een attribuut over alle events in de huidige case terug.
| Parameters | | attribute | number | Het attribuut waarvan je het maximum wilt bepalen | |
| Retourneert | number |
| Voorbeelden | caseMax(ItemPrice) → Hoogste prijs in de case |
caseCount
() Geeft het aantal events in de huidige case terug.
| Retourneert | number |
| Voorbeelden | caseCount() → Aantal events in de case |
caseMedian
(attribute) Geeft de mediaanwaarde van een attribuut over alle events in de huidige case terug.
| Parameters | | attribute | number | Het attribuut waarvan je de mediaan wilt bepalen | |
| Retourneert | number |
| Voorbeelden | caseMedian(Duration) → Middelste waarde van Duration in de case |
caseCountDistinct
(attribute) Telt de verschillende waarden van een attribuut in de huidige case.
| Parameters | | attribute | any | Het attribuut waarvan je de verschillende waarden wilt tellen | |
| Retourneert | number |
| Voorbeelden | caseCountDistinct(Resource) → Aantal unieke bronnen in de case |
caseStdDev
(expr) Berekent de standaardafwijking over events in de case.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | number |
| Voorbeelden | caseStdDev(Amount) → Standaardafwijking binnen de case |
caseSumIf
(attribute, condition) Telt waarden alleen op voor events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Het attribuut dat je wilt optellen | | condition | boolean | De voorwaarde waarop je wilt filteren | |
| Retourneert | number |
| Voorbeelden | caseSumIf(Amount, Status == "Approved") → Som van Amount waarvoor Status Approved is |
caseAvgIf
(attribute, condition) Berekent het gemiddelde alleen voor events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Het attribuut waarvan je het gemiddelde wilt berekenen | | condition | boolean | De voorwaarde waarop je wilt filteren | |
| Retourneert | number |
| Voorbeelden | caseAvgIf(Duration, Activity == "Review") → Gemiddelde duur van Review-activiteiten |
caseCountIf
(condition) Telt events die aan een voorwaarde voldoen in de huidige case.
| Parameters | | condition | boolean | De voorwaarde die je wilt tellen | |
| Retourneert | number |
| Voorbeelden | caseCountIf(Status == "Error") → Aantal error-events in de case |
caseMinIf
(attribute, condition) Geeft de minimumwaarde voor events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Het attribuut waarvan je het minimum wilt bepalen | | condition | boolean | De voorwaarde waarop je wilt filteren | |
| Retourneert | number |
| Voorbeelden | caseMinIf(Timestamp, Activity == "Start") → Timestamp van de eerste Start-activiteit |
caseMaxIf
(attribute, condition) Geeft de maximumwaarde voor events die aan een voorwaarde voldoen.
| Parameters | | attribute | number | Het attribuut waarvan je het maximum wilt bepalen | | condition | boolean | De voorwaarde waarop je wilt filteren | |
| Retourneert | number |
| Voorbeelden | caseMaxIf(Timestamp, Activity == "End") → Timestamp van de laatste End-activiteit |
Cumulatieve aggregaties
Cumulatieve aggregaties berekenen opgetelde waarden tot en met het huidige event. Terwijl je chronologisch door de events in een case gaat, wordt de cumulatieve waarde bijgewerkt.
Dit is handig voor:
- Cumulatieve totalen bijhouden, een running sum
- De positie van een event bepalen, een running count
- Voortschrijdende gemiddelden berekenen
Patronen voor cumulatieve aggregaties
-
Cumulatieve totalen: houd bij hoe een waarde zich gedurende de case opstapelt:
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 casereeks 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 | Het attribuut dat je wilt optellen | |
| Retourneert | number |
| Voorbeelden | caseRunningSum(ItemAmount) → Cumulatief totaal bij elk event |
caseRunningCount
() Geeft het eventnummer binnen de case, vanaf 1.
| Retourneert | number |
| Voorbeelden | caseRunningCount() → Positie van het event: 1, 2, 3, ... |
caseRunningAvg
(attribute) Berekent het cumulatieve gemiddelde tot en met het huidige event.
| Parameters | | attribute | number | Het attribuut waarvan je het gemiddelde wilt berekenen | |
| Retourneert | number |
| Voorbeelden | caseRunningAvg(Duration) → Gemiddelde duur tot dit punt |
caseRunningMin
(expr) Berekent het lopende minimum tot en met het huidige event.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | number |
| Voorbeelden | caseRunningMin(Amount) → Lopend minimum van Amount |
caseRunningMax
(expr) Berekent het lopende maximum tot en met het huidige event.
| Parameters | | expr | number | Waarde-expressie | |
| Retourneert | number |
| Voorbeelden | caseRunningMax(Amount) → Lopend maximum van Amount |
Statistische functies
Statistische functies om de verdeling van waarden binnen een case te analyseren.
-
Percentielen: bepaal waar een waarde ten opzichte van andere waarden in de case valt. Geef het percentiel op als een fractie van 0 tot 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 | Het attribuut dat je wilt analyseren | | percentile | number | Het percentiel als fractie van 0 tot 1 (0.9 = 90e percentiel) | |
| Retourneert | number |
| Voorbeelden | casePercentile(Duration, 0.9) → 90e percentiel van de doorlooptijd in de case |
caseVariance
(attribute) Berekent de variantie van een attribuut binnen de huidige case.
| Parameters | | attribute | number | Het attribuut dat je wilt analyseren | |
| Retourneert | number |
| Voorbeelden | caseVariance(ProcessingTime) → Variantie van verwerkingstijden in de case |
Gerelateerde onderwerpen