Funções de agregação de casos
Funções para agregar valores de todos os eventos dentro do mesmo caso.
Entendendo as agregações de casos
No Process Mining, um caso representa uma única instância de um processo, como um pedido, um chamado ou uma jornada de cliente. Cada caso contém vários eventos, que são as etapas ou atividades individuais.
As funções de agregação de casos calculam valores em todos os eventos de um caso, disponibilizando o resultado em cada evento. Isso permite que você:
- Calcule valores totais de um caso, como o valor total do pedido
- Encontre padrões dentro dos casos, como a quantidade de eventos de retrabalho
- Compare eventos individuais com estatísticas no nível 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 | O atributo a ser somado | |
| Retorno | número |
| Exemplos | caseSum(ItemAmount) → Total 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 | O atributo cuja média será calculada | |
| Retorno | número |
| Exemplos | caseAvg(ProcessingTime) → Tempo médio de processamento por evento |
caseMin
(attribute) Retorna o valor mínimo de um atributo em todos os eventos do caso atual.
| Parâmetros | | attribute | number | O atributo cujo mínimo você quer obter | |
| Retorno | número |
| Exemplos | caseMin(ItemPrice) → Menor preço no caso |
caseMax
(attribute) Retorna o valor máximo de um atributo em todos os eventos do caso atual.
| Parâmetros | | attribute | number | O atributo cujo máximo você quer obter | |
| Retorno | número |
| Exemplos | caseMax(ItemPrice) → Maior preço no caso |
caseCount
() Retorna o número de eventos no caso atual.
| Retorno | número |
| Exemplos | caseCount() → Número de eventos no caso |
caseMedian
(attribute) Retorna o valor mediano de um atributo em todos os eventos do caso atual.
| Parâmetros | | attribute | number | O atributo cuja mediana você quer obter | |
| 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 | O atributo cujos valores distintos você quer contar | |
| Retorno | número |
| Exemplos | caseCountDistinct(Resource) → Número de recursos únicos no caso |
caseStdDev
(expr) Calcula o desvio padrão entre os eventos do caso.
| Parâmetros | | expr | number | Expressão de 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 | O atributo a ser somado | | condition | boolean | A condição usada no filtro | |
| Retorno | número |
| Exemplos | caseSumIf(Amount, Status == "Approved") → Soma de Amount quando Status é Approved |
caseAvgIf
(attribute, condition) Calcula a média dos valores apenas dos eventos que atendem a uma condição.
| Parâmetros | | attribute | number | O atributo cuja média será calculada | | condition | boolean | A condição usada no filtro | |
| Retorno | número |
| Exemplos | caseAvgIf(Duration, Activity == "Review") → Duração média das atividades Review |
caseCountIf
(condition) Conta os eventos que atendem a uma condição no caso atual.
| Parâmetros | | condition | boolean | A condição a ser contada | |
| Retorno | número |
| Exemplos | caseCountIf(Status == "Error") → Número de eventos de erro no caso |
caseMinIf
(attribute, condition) Retorna o valor mínimo dos eventos que atendem a uma condição.
| Parâmetros | | attribute | number | O atributo cujo mínimo você quer obter | | condition | boolean | A condição usada no filtro | |
| Retorno | número |
| Exemplos | caseMinIf(Timestamp, Activity == "Start") → Timestamp da primeira atividade Start |
caseMaxIf
(attribute, condition) Retorna o valor máximo dos eventos que atendem a uma condição.
| Parâmetros | | attribute | number | O atributo cujo máximo você quer obter | | condition | boolean | A condição usada no filtro | |
| Retorno | número |
| Exemplos | caseMaxIf(Timestamp, Activity == "End") → Timestamp da última atividade End |
Agregações cumulativas
As agregações cumulativas calculam valores acumulados até o evento atual, incluindo-o. À medida que você percorre cronologicamente os eventos de um caso, o valor acumulado é atualizado.
Isso é útil para:
- Acompanhar totais acumulados, como uma soma progressiva
- Identificar a posição do evento, como uma contagem progressiva
- Calcular médias móveis
Padrões de agregação cumulativa
-
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 onde um evento aparece 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 em posição:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Calcula a soma acumulada até o evento atual, incluindo esse evento.
| Parâmetros | | attribute | number | O atributo a ser somado | |
| Retorno | número |
| Exemplos | caseRunningSum(ItemAmount) → Total acumulado em cada evento |
caseRunningCount
() Retorna o número 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 esse evento.
| Parâmetros | | attribute | number | O atributo cuja média será calculada | |
| Retorno | número |
| Exemplos | caseRunningAvg(Duration) → Duração média até este ponto |
caseRunningMin
(expr) Calcula o mínimo acumulado até o evento atual.
| Parâmetros | | expr | number | Expressão de valor | |
| Retorno | número |
| Exemplos | caseRunningMin(Amount) → Valor mínimo acumulado |
caseRunningMax
(expr) Calcula o máximo acumulado até o evento atual.
| Parâmetros | | expr | number | Expressão de valor | |
| Retorno | número |
| Exemplos | caseRunningMax(Amount) → Valor máximo acumulado |
Funções estatísticas
Funções estatísticas para analisar a distribuição dos valores dentro de um caso.
-
Percentis: descubra onde um valor se encontra em relação aos demais no caso. Informe o percentil como uma fração de 0 a 1, de modo que 0.9 represente o percentil 90:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Variância: meça o quanto os valores estão dispersos:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Calcula o percentil de um atributo no caso atual.
| Parâmetros | | attribute | number | O atributo a ser analisado | | percentile | number | O percentil como uma fração de 0 a 1 (0,9 = 90º percentil) | |
| 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 | O atributo a ser analisado | |
| Retorno | número |
| Exemplos | caseVariance(ProcessingTime) → Variância dos tempos de processamento no caso |
Tópicos relacionados