Funciones de agregación de casos
Funciones para agregar valores de todos los eventos del mismo caso.
Comprender las agregaciones de casos
En Process Mining, un caso representa una instancia individual de un proceso, por ejemplo, un pedido, un ticket o el recorrido de un cliente. Cada caso contiene varios eventos, es decir, los pasos o actividades individuales.
Las funciones de agregación de casos calculan valores de todos los eventos de un caso y hacen que el resultado esté disponible en cada evento. Esto permite:
- Calcular los valores totales de un caso, por ejemplo, el importe total del pedido
- Encontrar patrones dentro de los casos, por ejemplo, el número de eventos de retrabajo
- Comparar eventos individuales con estadísticas del nivel de caso
Patrones habituales
-
Calcular totales del 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
-
Agregaciones condicionales:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
Comparar el evento con el caso:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Suma un Atributo numérico de todos los eventos del caso actual.
| Parámetros | | attribute | number | El atributo que se sumará | |
| Devuelve | número |
| Ejemplos | caseSum(ItemAmount) → Total de todos los valores de ItemAmount del caso |
caseAvg
(attribute) Calcula el promedio de un Atributo numérico de todos los eventos del caso actual.
| Parámetros | | attribute | number | El atributo cuyo promedio se calculará | |
| Devuelve | número |
| Ejemplos | caseAvg(ProcessingTime) → Tiempo promedio de procesamiento por evento |
caseMin
(attribute) Devuelve el valor mínimo de un Atributo de todos los eventos del caso actual.
| Parámetros | | attribute | number | El atributo cuyo mínimo desea obtener | |
| Devuelve | número |
| Ejemplos | caseMin(ItemPrice) → Precio más bajo del caso |
caseMax
(attribute) Devuelve el valor máximo de un Atributo de todos los eventos del caso actual.
| Parámetros | | attribute | number | El atributo cuyo máximo desea obtener | |
| Devuelve | número |
| Ejemplos | caseMax(ItemPrice) → Precio más alto del caso |
caseCount
() Devuelve el número de eventos del caso actual.
| Devuelve | número |
| Ejemplos | caseCount() → Número de eventos del caso |
caseMedian
(attribute) Devuelve el valor mediano de un Atributo de todos los eventos del caso actual.
| Parámetros | | attribute | number | El atributo cuya mediana desea obtener | |
| Devuelve | número |
| Ejemplos | caseMedian(Duration) → Valor medio de Duration en el caso |
caseCountDistinct
(attribute) Cuenta los valores distintos de un atributo en el caso actual.
| Parámetros | | attribute | any | El atributo cuyos valores distintos desea contar | |
| Devuelve | número |
| Ejemplos | caseCountDistinct(Resource) → Número de recursos únicos en el caso |
caseStdDev
(expr) Calcula la desviación estándar entre los eventos del caso.
| Parámetros | | expr | number | Expresión del valor | |
| Devuelve | número |
| Ejemplos | caseStdDev(Amount) → Desviación estándar dentro del caso |
caseSumIf
(attribute, condition) Suma los valores solo de los eventos que cumplen una condición.
| Parámetros | | attribute | number | El atributo que se sumará | | condition | boolean | La condición por la que se filtrará | |
| Devuelve | número |
| Ejemplos | caseSumIf(Amount, Status == "Approved") → Suma de Amount cuando Status es Approved |
caseAvgIf
(attribute, condition) Calcula el promedio de los valores solo para los eventos que cumplen una condición.
| Parámetros | | attribute | number | El atributo cuyo promedio se calculará | | condition | boolean | La condición por la que se filtrará | |
| Devuelve | número |
| Ejemplos | caseAvgIf(Duration, Activity == "Review") → Duración promedio de las actividades Review |
caseCountIf
(condition) Cuenta los eventos que cumplen una condición en el caso actual.
| Parámetros | | condition | boolean | La condición que se contará | |
| Devuelve | número |
| Ejemplos | caseCountIf(Status == "Error") → Número de eventos con error en el caso |
caseMinIf
(attribute, condition) Devuelve el valor mínimo de los eventos que cumplen una condición.
| Parámetros | | attribute | number | El atributo cuyo mínimo desea obtener | | condition | boolean | La condición por la que se filtrará | |
| Devuelve | número |
| Ejemplos | caseMinIf(Timestamp, Activity == "Start") → Timestamp de la primera actividad Start |
caseMaxIf
(attribute, condition) Devuelve el valor máximo de los eventos que cumplen una condición.
| Parámetros | | attribute | number | El atributo cuyo máximo desea obtener | | condition | boolean | La condición por la que se filtrará | |
| Devuelve | número |
| Ejemplos | caseMaxIf(Timestamp, Activity == "End") → Timestamp de la última actividad End |
Agregaciones acumuladas
Las agregaciones acumuladas calculan valores acumulativos hasta el evento actual, incluido. A medida que recorre cronológicamente los eventos de un caso, el valor acumulado se actualiza.
Esto resulta útil para:
- Seguir totales acumulados, como una suma acumulada
- Identificar la posición del evento, como un recuento acumulado
- Calcular promedios móviles
Patrones de agregación acumulada
-
Totales acumulados: siga cómo se acumula un valor a lo largo del caso:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Evento | Importe | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Posición del evento: identifique dónde se sitúa un evento en la secuencia del caso:
caseRunningCount() // 1, 2, 3, 4...
-
Promedio móvil: calcule el promedio hasta el punto actual:
caseRunningAvg(Duration) // Average duration so far
-
Lógica basada en la posición:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Calcula la suma acumulada hasta el evento actual, incluido este.
| Parámetros | | attribute | number | El atributo que se sumará | |
| Devuelve | número |
| Ejemplos | caseRunningSum(ItemAmount) → Total acumulado en cada evento |
caseRunningCount
() Devuelve el número de evento dentro del caso, empezando por 1.
| Devuelve | número |
| Ejemplos | caseRunningCount() → Posición del evento: 1, 2, 3, ... |
caseRunningAvg
(attribute) Calcula el promedio acumulado hasta el evento actual, incluido este.
| Parámetros | | attribute | number | El atributo cuyo promedio se calculará | |
| Devuelve | número |
| Ejemplos | caseRunningAvg(Duration) → Duración promedio hasta este punto |
caseRunningMin
(expr) Calcula el mínimo acumulado hasta el evento actual.
| Parámetros | | expr | number | Expresión del valor | |
| Devuelve | número |
| Ejemplos | caseRunningMin(Amount) → Importe mínimo acumulado |
caseRunningMax
(expr) Calcula el máximo acumulado hasta el evento actual.
| Parámetros | | expr | number | Expresión del valor | |
| Devuelve | número |
| Ejemplos | caseRunningMax(Amount) → Importe máximo acumulado |
Funciones estadísticas
Funciones estadísticas para analizar la distribución de los valores dentro de un caso.
-
Percentiles: encuentre la posición de un valor con respecto a los demás del caso. Introduzca el percentil como una fracción entre 0 y 1, de modo que 0.9 representa el percentil 90:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Varianza: mida la dispersión de los valores:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Calcula el percentil de un atributo dentro del caso actual.
| Parámetros | | attribute | number | El atributo que se analizará | | percentile | number | El percentil como fracción de 0 a 1 (0.9 = percentil 90) | |
| Devuelve | número |
| Ejemplos | casePercentile(Duration, 0.9) → Duración del percentil 90 en el caso |
caseVariance
(attribute) Calcula la varianza de un atributo dentro del caso actual.
| Parámetros | | attribute | number | El atributo que se analizará | |
| Devuelve | número |
| Ejemplos | caseVariance(ProcessingTime) → Varianza de los tiempos de procesamiento del caso |
Temas relacionados