In questa pagina

Funzioni di aggregazione per caso

Funzioni per aggregare i valori di tutti gli eventi appartenenti allo stesso caso.

Comprendere le aggregazioni per caso

Nel Process Mining, un caso rappresenta una singola istanza di un processo, ad esempio un ordine, un ticket o il percorso di un cliente. Ogni caso contiene più eventi, ovvero i singoli passaggi o le singole attività.

Le funzioni di aggregazione per caso calcolano i valori di tutti gli eventi di un caso, rendendo il risultato disponibile per ogni evento. Ciò consente di:

  • Calcolare i valori totali di un caso, ad esempio l’importo totale di un ordine
  • Individuare pattern all’interno dei casi, ad esempio il numero di eventi di rilavorazione
  • Confrontare i singoli eventi con le statistiche a livello di caso

Pattern comuni

  • Calcolo dei totali del caso:

    caseSum(ItemAmount)           // Total order value
    caseCount()                   // Number of events in case
    caseCountDistinct(Resource)   // Unique resources involved
  • Individuazione dei valori estremi:

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

    caseCountIf(Status == "Error")            // Error count
    caseSumIf(Amount, Activity == "Payment")  // Total payments
    caseAvgIf(Duration, Activity == "Review") // Avg review time
  • Confronto tra evento e caso:

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

caseSum

(attribute)

Somma un Attributo numerico di tutti gli eventi del caso corrente.

Parametri
attribute number L'attributo da sommare
Valore restituito numero
Esempi
caseSum(ItemAmount) Totale di tutti i valori ItemAmount nel caso

caseAvg

(attribute)

Calcola la media di un Attributo numerico di tutti gli eventi del caso corrente.

Parametri
attribute number L'attributo di cui calcolare la media
Valore restituito numero
Esempi
caseAvg(ProcessingTime) Tempo medio di elaborazione per evento

caseMin

(attribute)

Restituisce il valore minimo di un Attributo di tutti gli eventi del caso corrente.

Parametri
attribute number L'attributo di cui si desidera ottenere il minimo
Valore restituito numero
Esempi
caseMin(ItemPrice) Prezzo più basso nel caso

caseMax

(attribute)

Restituisce il valore massimo di un Attributo di tutti gli eventi del caso corrente.

Parametri
attribute number L'attributo di cui si desidera ottenere il massimo
Valore restituito numero
Esempi
caseMax(ItemPrice) Prezzo più alto nel caso

caseCount

()

Restituisce il numero di eventi nel caso corrente.

Valore restituito numero
Esempi
caseCount() Numero di eventi nel caso

caseMedian

(attribute)

Restituisce la mediana di un Attributo di tutti gli eventi del caso corrente.

Parametri
attribute number L'attributo di cui si desidera ottenere la mediana
Valore restituito numero
Esempi
caseMedian(Duration) Valore mediano della Duration nel caso

caseCountDistinct

(attribute)

Conta i valori distinti di un attributo nel caso corrente.

Parametri
attribute any L'attributo di cui si desidera contare i valori distinti
Valore restituito numero
Esempi
caseCountDistinct(Resource) Numero di risorse univoche nel caso

caseStdDev

(expr)

Calcola la deviazione standard tra gli eventi del caso.

Parametri
expr number Espressione del valore
Valore restituito numero
Esempi
caseStdDev(Amount) Deviazione standard nel caso

caseSumIf

(attribute, condition)

Somma i valori solo per gli eventi che soddisfano una condizione.

Parametri
attribute number L'attributo da sommare
condition boolean La condizione da utilizzare per il filtro
Valore restituito numero
Esempi
caseSumIf(Amount, Status == "Approved") Somma di Amount quando Status è Approved

caseAvgIf

(attribute, condition)

Calcola la media dei valori solo per gli eventi che soddisfano una condizione.

Parametri
attribute number L'attributo di cui calcolare la media
condition boolean La condizione da utilizzare per il filtro
Valore restituito numero
Esempi
caseAvgIf(Duration, Activity == "Review") Durata media delle attività Review

caseCountIf

(condition)

Conta gli eventi che soddisfano una condizione nel caso corrente.

Parametri
condition boolean La condizione da conteggiare
Valore restituito numero
Esempi
caseCountIf(Status == "Error") Numero di eventi con errore nel caso

caseMinIf

(attribute, condition)

Restituisce il valore minimo per gli eventi che soddisfano una condizione.

Parametri
attribute number L'attributo di cui si desidera ottenere il minimo
condition boolean La condizione da utilizzare per il filtro
Valore restituito numero
Esempi
caseMinIf(Timestamp, Activity == "Start") Timestamp della prima attività Start

caseMaxIf

(attribute, condition)

Restituisce il valore massimo per gli eventi che soddisfano una condizione.

Parametri
attribute number L'attributo di cui si desidera ottenere il massimo
condition boolean La condizione da utilizzare per il filtro
Valore restituito numero
Esempi
caseMaxIf(Timestamp, Activity == "End") Timestamp dell'ultima attività End

Aggregazioni cumulative

Le aggregazioni cumulative calcolano i valori cumulativi fino all’evento corrente incluso. Quando percorre cronologicamente gli eventi di un caso, il valore cumulativo si aggiorna.

Sono utili per:

  • Monitorare i totali cumulativi, ovvero la somma progressiva
  • Individuare la posizione dell’evento, ovvero il conteggio progressivo
  • Calcolare medie mobili

Pattern delle aggregazioni cumulative

  • Totali cumulativi: monitori come si accumula un valore nel caso:

    caseRunningSum(ItemAmount)   // Cumulative order total at each event
    Evento Importo caseRunningSum(Importo)
    1 100 100
    2 50 150
    3 75 225
  • Posizione dell’evento: individui la posizione di un evento nella sequenza del caso:

    caseRunningCount()   // 1, 2, 3, 4...
  • Media mobile: calcoli la media fino al punto corrente:

    caseRunningAvg(Duration)   // Average duration so far
  • Logica basata sulla posizione:

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

caseRunningSum

(attribute)

Calcola la somma cumulativa fino all'evento corrente, includendo quest'ultimo.

Parametri
attribute number L'attributo da sommare
Valore restituito numero
Esempi
caseRunningSum(ItemAmount) Totale cumulativo a ogni evento

caseRunningCount

()

Restituisce il numero dell'evento all'interno del caso, a partire da 1.

Valore restituito numero
Esempi
caseRunningCount() Posizione dell'evento: 1, 2, 3, ...

caseRunningAvg

(attribute)

Calcola la media cumulativa fino all'evento corrente, includendo quest'ultimo.

Parametri
attribute number L'attributo di cui calcolare la media
Valore restituito numero
Esempi
caseRunningAvg(Duration) Durata media fino a questo punto

caseRunningMin

(expr)

Calcola il minimo progressivo fino all'evento corrente.

Parametri
expr number Espressione del valore
Valore restituito numero
Esempi
caseRunningMin(Amount) Importo minimo progressivo

caseRunningMax

(expr)

Calcola il massimo progressivo fino all'evento corrente.

Parametri
expr number Espressione del valore
Valore restituito numero
Esempi
caseRunningMax(Amount) Importo massimo progressivo

Funzioni statistiche

Funzioni statistiche per analizzare la distribuzione dei valori all’interno di un caso.

  • Percentili: individui la posizione di un valore rispetto agli altri valori del caso. Indichi il percentile come frazione da 0 a 1, quindi 0.9 corrisponde al 90° percentile:

    casePercentile(Duration, 0.5)   // Median duration in this case
    casePercentile(Duration, 0.9)   // 90th percentile
  • Varianza: misuri quanto sono dispersi i valori:

    caseVariance(Amount)           // Variation within this case

casePercentile

(attribute, percentile)

Calcola il percentile di un attributo all'interno del caso corrente.

Parametri
attribute number L'attributo da analizzare
percentile number Il percentile espresso come frazione da 0 a 1 (0.9 = 90° percentile)
Valore restituito numero
Esempi
casePercentile(Duration, 0.9) Durata al 90° percentile nel caso

caseVariance

(attribute)

Calcola la varianza di un attributo all'interno del caso corrente.

Parametri
attribute number L'attributo da analizzare
Valore restituito numero
Esempi
caseVariance(ProcessingTime) Varianza dei tempi di elaborazione nel caso

Argomenti correlati