Na tej stronie

Funkcje agregujące dla spraw

Funkcje agregujące wartości ze wszystkich zdarzeń w tej samej sprawie.

Jak działają agregacje dla spraw

W process mining sprawa oznacza pojedynczą instancję procesu, na przykład zamówienie, zgłoszenie lub ścieżkę klienta. Każda sprawa składa się z wielu zdarzeń, czyli poszczególnych kroków lub działań.

Funkcje agregujące dla spraw obliczają wartości na podstawie wszystkich zdarzeń w danej sprawie i udostępniają wynik przy każdym zdarzeniu. Dzięki temu można:

  • Obliczać łączne wartości dla sprawy, np. całkowitą kwotę zamówienia
  • Wykrywać wzorce w sprawach, np. liczbę zdarzeń związanych z poprawkami
  • Porównywać poszczególne zdarzenia ze statystykami dla całej sprawy

Typowe zastosowania

  • Obliczanie sum dla sprawy:

    caseSum(ItemAmount)           // Total order value
    caseCount()                   // Number of events in case
    caseCountDistinct(Resource)   // Unique resources involved
  • Wyszukiwanie wartości skrajnych:

    caseMin(Timestamp)            // First event time
    caseMax(Timestamp)            // Last event time
    caseMax(Timestamp) - caseMin(Timestamp)   // Total case duration
  • Agregacje warunkowe:

    caseCountIf(Status == "Error")            // Error count
    caseSumIf(Amount, Activity == "Payment")  // Total payments
    caseAvgIf(Duration, Activity == "Review") // Avg review time
  • Porównywanie zdarzenia z całą sprawą:

    Duration / caseAvg(Duration)  // Is this event faster/slower than average?

caseSum

(attribute)

Sumuje wartości atrybutu liczbowego ze wszystkich zdarzeń w bieżącym case.

Parametry
attribute number Atrybut do zsumowania
Zwracana wartość liczba
Przykłady
caseSum(ItemAmount) → Suma wszystkich wartości ItemAmount w case

caseAvg

(attribute)

Oblicza średnią wartość atrybutu liczbowego ze wszystkich zdarzeń w bieżącym case.

Parametry
attribute number Atrybut do uśrednienia
Zwracana wartość liczba
Przykłady
caseAvg(ProcessingTime) → Średni czas przetwarzania na zdarzenie

caseMin

(attribute)

Zwraca najmniejszą wartość atrybutu spośród wszystkich zdarzeń w bieżącym case.

Parametry
attribute number Atrybut, którego najmniejszą wartość zwrócić
Zwracana wartość liczba
Przykłady
caseMin(ItemPrice) → Najniższa cena w case

caseMax

(attribute)

Zwraca największą wartość atrybutu spośród wszystkich zdarzeń w bieżącym case.

Parametry
attribute number Atrybut, którego największą wartość zwrócić
Zwracana wartość liczba
Przykłady
caseMax(ItemPrice) → Najwyższa cena w case

caseCount

()

Zwraca liczbę zdarzeń w bieżącym case.

Zwracana wartość liczba
Przykłady
caseCount() → Liczba zdarzeń w case

caseMedian

(attribute)

Zwraca medianę wartości atrybutu ze wszystkich zdarzeń w bieżącym case.

Parametry
attribute number Atrybut, którego medianę zwrócić
Zwracana wartość liczba
Przykłady
caseMedian(Duration) → Środkowa wartość Duration w case

caseCountDistinct

(attribute)

Zlicza różne wartości atrybutu w bieżącym case.

Parametry
attribute any Atrybut, którego różne wartości zliczyć
Zwracana wartość liczba
Przykłady
caseCountDistinct(Resource) → Liczba unikalnych zasobów w case

caseStdDev

(expr)

Oblicza odchylenie standardowe dla zdarzeń w case.

Parametry
expr number Wyrażenie wartości
Zwracana wartość liczba
Przykłady
caseStdDev(Amount) → Odchylenie standardowe w case

caseSumIf

(attribute, condition)

Sumuje wartości tylko dla zdarzeń spełniających warunek.

Parametry
attribute number Atrybut do zsumowania
condition boolean Warunek filtrowania
Zwracana wartość liczba
Przykłady
caseSumIf(Amount, Status == "Approved") → Suma Amount dla zdarzeń, w których Status ma wartość Approved

caseAvgIf

(attribute, condition)

Oblicza średnią tylko dla zdarzeń spełniających warunek.

Parametry
attribute number Atrybut do uśrednienia
condition boolean Warunek filtrowania
Zwracana wartość liczba
Przykłady
caseAvgIf(Duration, Activity == "Review") → Średni czas trwania działań Review

caseCountIf

(condition)

Zlicza zdarzenia w bieżącym case, które spełniają warunek.

Parametry
condition boolean Warunek zliczania
Zwracana wartość liczba
Przykłady
caseCountIf(Status == "Error") → Liczba zdarzeń z błędem w case

caseMinIf

(attribute, condition)

Zwraca najmniejszą wartość spośród zdarzeń spełniających warunek.

Parametry
attribute number Atrybut, którego najmniejszą wartość zwrócić
condition boolean Warunek filtrowania
Zwracana wartość liczba
Przykłady
caseMinIf(Timestamp, Activity == "Start") → Znacznik czasu pierwszego działania Start

caseMaxIf

(attribute, condition)

Zwraca największą wartość spośród zdarzeń spełniających warunek.

Parametry
attribute number Atrybut, którego największą wartość zwrócić
condition boolean Warunek filtrowania
Zwracana wartość liczba
Przykłady
caseMaxIf(Timestamp, Activity == "End") → Znacznik czasu ostatniego działania End

Agregacje narastające

Agregacje narastające obliczają wartości skumulowane do bieżącego zdarzenia włącznie. W miarę przechodzenia chronologicznie przez zdarzenia w sprawie wartość narastająca jest aktualizowana.

Przydaje się to do:

  • Śledzenia sum narastających
  • Określania pozycji zdarzenia w sekwencji
  • Obliczania średnich kroczących

Przykłady agregacji narastających

  • Sumy narastające: śledzenie zmian wartości w kolejnych etapach sprawy:

    caseRunningSum(ItemAmount)   // Cumulative order total at each event
    Zdarzenie Kwota caseRunningSum(Amount)
    1 100 100
    2 50 150
    3 75 225
  • Pozycja zdarzenia: określanie miejsca zdarzenia w sekwencji sprawy:

    caseRunningCount()   // 1, 2, 3, 4...
  • Średnia krocząca: obliczanie średniej do bieżącego punktu:

    caseRunningAvg(Duration)   // Average duration so far
  • Logika zależna od pozycji:

    if(caseRunningCount() == 1, "First", 
       if(caseRunningCount() == caseCount(), "Last", "Middle")
    )

caseRunningSum

(attribute)

Oblicza sumę narastająco, uwzględniając bieżące zdarzenie.

Parametry
attribute number Atrybut do zsumowania
Zwracana wartość liczba
Przykłady
caseRunningSum(ItemAmount) → Suma narastająca dla każdego zdarzenia

caseRunningCount

()

Zwraca numer zdarzenia w case, zaczynając od 1.

Zwracana wartość liczba
Przykłady
caseRunningCount() → Pozycja zdarzenia: 1, 2, 3, ...

caseRunningAvg

(attribute)

Oblicza średnią narastająco, uwzględniając bieżące zdarzenie.

Parametry
attribute number Atrybut do uśrednienia
Zwracana wartość liczba
Przykłady
caseRunningAvg(Duration) → Średni czas trwania do tego momentu

caseRunningMin

(expr)

Oblicza najmniejszą wartość narastająco do bieżącego zdarzenia.

Parametry
expr number Wyrażenie wartości
Zwracana wartość liczba
Przykłady
caseRunningMin(Amount) → Najmniejsza wartość Amount do tego momentu

caseRunningMax

(expr)

Oblicza największą wartość narastająco do bieżącego zdarzenia.

Parametry
expr number Wyrażenie wartości
Zwracana wartość liczba
Przykłady
caseRunningMax(Amount) → Największa wartość Amount do tego momentu

Funkcje statystyczne

Funkcje statystyczne służą do analizy rozkładu wartości w obrębie sprawy.

  • Percentyle: określają położenie wartości względem pozostałych wartości w sprawie. Percentyl należy podać jako ułamek z zakresu od 0 do 1, więc 0.9 oznacza 90. percentyl:

    casePercentile(Duration, 0.5)   // Median duration in this case
    casePercentile(Duration, 0.9)   // 90th percentile
  • Wariancja: określa rozproszenie wartości:

    caseVariance(Amount)           // Variation within this case

casePercentile

(attribute, percentile)

Oblicza percentyl wartości atrybutu w bieżącej sprawie.

Parametry
attribute number Analizowany atrybut
percentile number Percentyl jako ułamek od 0 do 1 (0.9 = 90. percentyl)
Zwracana wartość liczba
Przykłady
casePercentile(Duration, 0.9) → 90. percentyl czasu trwania w sprawie

caseVariance

(attribute)

Oblicza wariancję wartości atrybutu w bieżącej sprawie.

Parametry
attribute number Analizowany atrybut
Zwracana wartość liczba
Przykłady
caseVariance(ProcessingTime) → Wariancja czasów przetwarzania w sprawie

Powiązane tematy

Projektuj lepsze procesy. Buduj spójną architekturę. Zachowaj kontrolę.

Uzyskaj dostęp od razu, bez karty kredytowej i czekania. Przedstaw sposób działania organizacji w postaci przejrzystych, powiązanych modeli procesów.

Buduj architekturę procesów, określaj właścicieli i mechanizmy kontroli oraz uzgadniaj role i zakresy odpowiedzialności na każdym poziomie.

Rozpocznij okres próbny i stwórz solidną podstawę do nadzorowania, zarządzania i ciągłego doskonalenia procesów.