Agregační funkce pro případy
Funkce pro agregaci hodnot ze všech událostí v rámci jednoho případu.
Jak fungují agregace pro případy
V process mining představuje případ jednu instanci procesu, například jednu objednávku, jeden požadavek nebo jednu cestu zákazníka. Každý případ obsahuje více událostí, tedy jednotlivých kroků nebo aktivit.
Agregační funkce pro případy počítají hodnoty ze všech událostí v případu a zpřístupňují výsledek u každé události. Díky tomu můžete:
- Vypočítat celkové hodnoty případu, například celkovou částku objednávky
- Hledat vzory v případech, například počet událostí souvisejících s přepracováním
- Porovnávat jednotlivé události se statistikami za celý případ
Běžné způsoby použití
-
Výpočet součtů za případ:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Hledání krajních hodnot:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Podmíněné agregace:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Porovnání události s případem:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Sečte číselnou hodnotu atributu ze všech událostí v aktuálním případu.
| Parametry | | attribute | number | Atribut k sečtení | |
| Návratová hodnota | číslo |
| Příklady | caseSum(ItemAmount) → Součet všech hodnot ItemAmount v případu |
caseAvg
(attribute) Vypočítá průměrnou hodnotu číselného atributu ze všech událostí v aktuálním případu.
| Parametry | | attribute | number | Atribut pro výpočet průměru | |
| Návratová hodnota | číslo |
| Příklady | caseAvg(ProcessingTime) → Průměrná doba zpracování na událost |
caseMin
(attribute) Vrátí nejnižší hodnotu atributu ze všech událostí v aktuálním případu.
| Parametry | | attribute | number | Atribut, jehož nejnižší hodnotu vrátit | |
| Návratová hodnota | číslo |
| Příklady | caseMin(ItemPrice) → Nejnižší cena v případu |
caseMax
(attribute) Vrátí nejvyšší hodnotu atributu ze všech událostí v aktuálním případu.
| Parametry | | attribute | number | Atribut, jehož nejvyšší hodnotu vrátit | |
| Návratová hodnota | číslo |
| Příklady | caseMax(ItemPrice) → Nejvyšší cena v případu |
caseCount
() Vrátí počet událostí v aktuálním případu.
| Návratová hodnota | číslo |
| Příklady | caseCount() → Počet událostí v případu |
caseMedian
(attribute) Vrátí medián hodnoty atributu ze všech událostí v aktuálním případu.
| Parametry | | attribute | number | Atribut, jehož medián vrátit | |
| Návratová hodnota | číslo |
| Příklady | caseMedian(Duration) → Prostřední hodnota atributu Duration v případu |
caseCountDistinct
(attribute) Spočítá počet různých hodnot atributu v aktuálním případu.
| Parametry | | attribute | any | Atribut, jehož různé hodnoty spočítat | |
| Návratová hodnota | číslo |
| Příklady | caseCountDistinct(Resource) → Počet jedinečných zdrojů v případu |
caseStdDev
(expr) Vypočítá směrodatnou odchylku hodnot událostí v případu.
| Parametry | | expr | number | Výraz hodnoty | |
| Návratová hodnota | číslo |
| Příklady | caseStdDev(Amount) → Směrodatná odchylka v rámci případu |
caseSumIf
(attribute, condition) Sečte hodnoty pouze u událostí, které splňují podmínku.
| Parametry | | attribute | number | Atribut k sečtení | | condition | boolean | Podmínka pro filtrování | |
| Návratová hodnota | číslo |
| Příklady | caseSumIf(Amount, Status == "Approved") → Součet hodnot Amount, pokud je Status Approved |
caseAvgIf
(attribute, condition) Vypočítá průměr pouze z hodnot událostí, které splňují podmínku.
| Parametry | | attribute | number | Atribut pro výpočet průměru | | condition | boolean | Podmínka pro filtrování | |
| Návratová hodnota | číslo |
| Příklady | caseAvgIf(Duration, Activity == "Review") → Průměrná doba trvání aktivit Review |
caseCountIf
(condition) Spočítá události v aktuálním případu, které splňují podmínku.
| Parametry | | condition | boolean | Podmínka pro počítání | |
| Návratová hodnota | číslo |
| Příklady | caseCountIf(Status == "Error") → Počet chybových událostí v případu |
caseMinIf
(attribute, condition) Vrátí nejnižší hodnotu z událostí, které splňují podmínku.
| Parametry | | attribute | number | Atribut, jehož nejnižší hodnotu vrátit | | condition | boolean | Podmínka pro filtrování | |
| Návratová hodnota | číslo |
| Příklady | caseMinIf(Timestamp, Activity == "Start") → Časové razítko první aktivity Start |
caseMaxIf
(attribute, condition) Vrátí nejvyšší hodnotu z událostí, které splňují podmínku.
| Parametry | | attribute | number | Atribut, jehož nejvyšší hodnotu vrátit | | condition | boolean | Podmínka pro filtrování | |
| Návratová hodnota | číslo |
| Příklady | caseMaxIf(Timestamp, Activity == "End") → Časové razítko poslední aktivity End |
Průběžné agregace
Průběžné agregace počítají kumulativní hodnoty až po aktuální událost včetně. Při chronologickém procházení událostí případu se průběžná hodnota aktualizuje.
Hodí se například pro:
- Sledování průběžných součtů
- Určení pořadí události
- Výpočet klouzavých průměrů
Příklady průběžných agregací
-
Kumulativní součty: sledujte, jak se hodnota v průběhu případu postupně sčítá:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Událost | Částka | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Pořadí události: zjistěte, na kterém místě posloupnosti případu se událost nachází:
caseRunningCount() // 1, 2, 3, 4...
-
Klouzavý průměr: vypočítejte průměr až po aktuální bod:
caseRunningAvg(Duration) // Average duration so far
-
Logika založená na pořadí:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Vypočítá průběžný součet až po aktuální událost včetně.
| Parametry | | attribute | number | Atribut k sečtení | |
| Návratová hodnota | číslo |
| Příklady | caseRunningSum(ItemAmount) → Průběžný součet po každé události |
caseRunningCount
() Vrátí pořadí události v případu, počínaje číslem 1.
| Návratová hodnota | číslo |
| Příklady | caseRunningCount() → Pořadí události: 1, 2, 3, ... |
caseRunningAvg
(attribute) Vypočítá průběžný průměr až po aktuální událost včetně.
| Parametry | | attribute | number | Atribut pro výpočet průměru | |
| Návratová hodnota | číslo |
| Příklady | caseRunningAvg(Duration) → Průměrná doba trvání do aktuální události |
caseRunningMin
(expr) Vypočítá průběžné minimum až po aktuální událost.
| Parametry | | expr | number | Výraz hodnoty | |
| Návratová hodnota | číslo |
| Příklady | caseRunningMin(Amount) → Průběžné minimum hodnoty Amount |
caseRunningMax
(expr) Vypočítá průběžné maximum až po aktuální událost.
| Parametry | | expr | number | Výraz hodnoty | |
| Návratová hodnota | číslo |
| Příklady | caseRunningMax(Amount) → Průběžné maximum hodnoty Amount |
Statistické funkce
Statistické funkce pro analýzu rozložení hodnot v rámci případu.
-
Percentily: zjistěte, jak si hodnota stojí v porovnání s ostatními hodnotami v případu. Percentil zadejte jako zlomek od 0 do 1. Hodnota 0.9 označuje 90. percentil:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Rozptyl: změřte, jak moc jsou hodnoty rozptýlené:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Vypočítá percentil atributu v aktuálním případě.
| Parametry | | attribute | number | Atribut k analýze | | percentile | number | Percentil jako zlomek od 0 do 1 (0.9 = 90. percentil) | |
| Návratová hodnota | číslo |
| Příklady | casePercentile(Duration, 0.9) → Doba trvání na 90. percentilu v případu |
caseVariance
(attribute) Vypočítá rozptyl atributu v aktuálním případě.
| Parametry | | attribute | number | Atribut k analýze | |
| Návratová hodnota | číslo |
| Příklady | caseVariance(ProcessingTime) → Rozptyl dob zpracování v případu |
Související témata