Funções de agregação por caso
Funções para agregar valores de todos os eventos de um mesmo caso.
Entenda as agregações por caso
Em Process Mining, um caso representa uma única instância de um processo (por exemplo, um pedido, um chamado ou a jornada de um cliente). Cada caso contém vários eventos (as etapas ou atividades individuais).
As funções de agregação por caso calculam valores de todos os eventos de um caso e disponibilizam o resultado em cada evento. Assim, você pode:
- Calcular o valor total de um caso (por exemplo, o valor total de um pedido)
- Encontrar padrões nos casos (por exemplo, contar eventos de retrabalho)
- Comparar eventos individuais com estatísticas do caso
Padrões comuns
-
Calcular totais do caso:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Encontrar extremos:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Agregações condicionais:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Comparar evento com caso:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Soma um atributo numérico de todos os eventos do caso atual.
| Parâmetros | | attribute | number | Atributo a somar | |
| Retorno | número |
| Exemplos | caseSum(ItemAmount) → Soma de todos os valores de ItemAmount no caso |
caseAvg
(attribute) Calcula a média de um atributo numérico de todos os eventos do caso atual.
| Parâmetros | | attribute | number | Atributo para calcular a média | |
| Retorno | número |
| Exemplos | caseAvg(ProcessingTime) → Tempo médio de processamento por evento |
caseMin
(attribute) Retorna o menor valor do atributo entre todos os eventos do caso atual.
| Parâmetros | | attribute | number | Atributo cujo menor valor será retornado | |
| Retorno | número |
| Exemplos | caseMin(ItemPrice) → Menor preço no caso |
caseMax
(attribute) Retorna o maior valor do atributo entre todos os eventos do caso atual.
| Parâmetros | | attribute | number | Atributo cujo maior valor será retornado | |
| Retorno | número |
| Exemplos | caseMax(ItemPrice) → Maior preço no caso |
caseCount
() Retorna a quantidade de eventos no caso atual.
| Retorno | número |
| Exemplos | caseCount() → Quantidade de eventos no caso |
caseMedian
(attribute) Retorna o valor mediano do atributo entre todos os eventos do caso atual.
| Parâmetros | | attribute | number | Atributo cuja mediana será retornada | |
| Retorno | número |
| Exemplos | caseMedian(Duration) → Valor mediano de Duration no caso |
caseCountDistinct
(attribute) Conta os valores distintos de um atributo no caso atual.
| Parâmetros | | attribute | any | Atributo cujos valores distintos serão contados | |
| Retorno | número |
| Exemplos | caseCountDistinct(Resource) → Quantidade de recursos únicos no caso |
caseStdDev
(expr) Calcula o desvio padrão entre os eventos do caso.
| Parâmetros | | expr | number | Expressão do valor | |
| Retorno | número |
| Exemplos | caseStdDev(Amount) → Desvio padrão no caso |
caseSumIf
(attribute, condition) Soma os valores apenas dos eventos que atendem a uma condição.
| Parâmetros | | attribute | number | Atributo a somar | | condition | boolean | Condição de filtro | |
| Retorno | número |
| Exemplos | caseSumIf(Amount, Status == "Approved") → Soma de Amount quando Status é Aprovado |
caseAvgIf
(attribute, condition) Calcula a média apenas dos valores de eventos que atendem a uma condição.
| Parâmetros | | attribute | number | Atributo para calcular a média | | condition | boolean | Condição de filtro | |
| Retorno | número |
| Exemplos | caseAvgIf(Duration, Activity == "Review") → Duração média das atividades de Review |
caseCountIf
(condition) Conta os eventos do caso atual que atendem a uma condição.
| Parâmetros | | condition | boolean | Condição para contar | |
| Retorno | número |
| Exemplos | caseCountIf(Status == "Error") → Quantidade de eventos com erro no caso |
caseMinIf
(attribute, condition) Retorna o menor valor entre os eventos que atendem a uma condição.
| Parâmetros | | attribute | number | Atributo cujo menor valor será retornado | | condition | boolean | Condição de filtro | |
| Retorno | número |
| Exemplos | caseMinIf(Timestamp, Activity == "Start") → Data e hora do primeiro evento Start |
caseMaxIf
(attribute, condition) Retorna o maior valor entre os eventos que atendem a uma condição.
| Parâmetros | | attribute | number | Atributo cujo maior valor será retornado | | condition | boolean | Condição de filtro | |
| Retorno | número |
| Exemplos | caseMaxIf(Timestamp, Activity == "End") → Data e hora do último evento End |
Agregações acumuladas
As agregações acumuladas calculam valores cumulativos até o evento atual, incluindo-o. À medida que você percorre os eventos de um caso em ordem cronológica, o valor acumulado é atualizado.
Isso é útil para:
- Acompanhar totais acumulados (soma acumulada)
- Identificar a posição do evento (contagem acumulada)
- Calcular médias móveis
Padrões de agregação acumulada
-
Totais acumulados: acompanhe como um valor se acumula ao longo do caso:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Evento | Valor | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Posição do evento: identifique a posição de um evento na sequência do caso:
caseRunningCount() // 1, 2, 3, 4...
-
Média móvel: calcule a média até o ponto atual:
caseRunningAvg(Duration) // Average duration so far
-
Lógica baseada na posição:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Calcula a soma acumulada até o evento atual, incluindo-o.
| Parâmetros | | attribute | number | Atributo a somar | |
| Retorno | número |
| Exemplos | caseRunningSum(ItemAmount) → Total acumulado em cada evento |
caseRunningCount
() Retorna a posição do evento no caso, começando em 1.
| Retorno | número |
| Exemplos | caseRunningCount() → Posição do evento: 1, 2, 3, ... |
caseRunningAvg
(attribute) Calcula a média acumulada até o evento atual, incluindo-o.
| Parâmetros | | attribute | number | Atributo para calcular a média | |
| Retorno | número |
| Exemplos | caseRunningAvg(Duration) → Duração média acumulada até este ponto |
caseRunningMin
(expr) Calcula o menor valor acumulado até o evento atual.
| Parâmetros | | expr | number | Expressão do valor | |
| Retorno | número |
| Exemplos | caseRunningMin(Amount) → Menor valor acumulado de Amount |
caseRunningMax
(expr) Calcula o maior valor acumulado até o evento atual.
| Parâmetros | | expr | number | Expressão do valor | |
| Retorno | número |
| Exemplos | caseRunningMax(Amount) → Maior valor acumulado de Amount |
Funções estatísticas
Funções estatísticas para analisar a distribuição de valores dentro de um caso.
-
Percentis: descubra a posição de um valor em relação aos demais no caso. Informe o percentil como uma fração de 0 a 1. Por exemplo, 0.9 representa o percentil 90:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Variância: meça a dispersão dos valores:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Calcula o percentil de um atributo no caso atual.
| Parâmetros | | attribute | number | Atributo a analisar | | percentile | number | Percentil como fração de 0 a 1 (0.9 = percentil 90) | |
| Retorno | número |
| Exemplos | casePercentile(Duration, 0.9) → Duração no percentil 90 do caso |
caseVariance
(attribute) Calcula a variância de um atributo no caso atual.
| Parâmetros | | attribute | number | Atributo a analisar | |
| Retorno | número |
| Exemplos | caseVariance(ProcessingTime) → Variância dos tempos de processamento no caso |
Tópicos relacionados