Funciones de agregación de casos
Funciones para agregar valores de todos los eventos de un mismo caso.
Cómo funcionan 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 (los pasos o actividades individuales).
Las funciones de agregación de casos calculan valores a partir de todos los eventos de un caso y ponen el resultado a disposición de cada evento. Esto permite:
- Calcular los valores totales de un caso (por ejemplo, el importe total de un pedido)
- Encontrar patrones en los casos (por ejemplo, el número de eventos de retrabajo)
- Comparar eventos individuales con estadísticas del caso
Patrones habituales
-
Calcular los totales del caso:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Encontrar valores 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 un 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 | Atributo que se va a sumar | |
| Devuelve | number |
| Ejemplos | caseSum(ItemAmount) → Suma 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 | Atributo del que se va a calcular el promedio | |
| Devuelve | number |
| Ejemplos | caseAvg(ProcessingTime) → Tiempo de procesamiento promedio por evento |
caseMin
(attribute) Devuelve el valor mínimo del atributo entre todos los eventos del caso actual.
| Parámetros | | attribute | number | Atributo cuyo valor mínimo se va a devolver | |
| Devuelve | number |
| Ejemplos | caseMin(ItemPrice) → Precio más bajo del caso |
caseMax
(attribute) Devuelve el valor máximo del atributo entre todos los eventos del caso actual.
| Parámetros | | attribute | number | Atributo cuyo valor máximo se va a devolver | |
| Devuelve | number |
| Ejemplos | caseMax(ItemPrice) → Precio más alto del caso |
caseCount
() Devuelve el número de eventos del caso actual.
| Devuelve | number |
| Ejemplos | caseCount() → Número de eventos del caso |
caseMedian
(attribute) Devuelve el valor mediano del atributo entre todos los eventos del caso actual.
| Parámetros | | attribute | number | Atributo cuya mediana se va a devolver | |
| Devuelve | number |
| Ejemplos | caseMedian(Duration) → Valor mediano de Duration en el caso |
caseCountDistinct
(attribute) Cuenta los valores distintos de un atributo en el caso actual.
| Parámetros | | attribute | any | Atributo cuyos valores distintos se van a contar | |
| Devuelve | number |
| Ejemplos | caseCountDistinct(Resource) → Número de recursos únicos del caso |
caseStdDev
(expr) Calcula la desviación estándar de los eventos del caso.
| Parámetros | | expr | number | Expresión del valor | |
| Devuelve | number |
| 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 | Atributo que se va a sumar | | condition | boolean | Condición para filtrar | |
| Devuelve | number |
| Ejemplos | caseSumIf(Amount, Status == "Approved") → Suma de Amount cuando Status es Aprobado |
caseAvgIf
(attribute, condition) Calcula el promedio de los valores solo de los eventos que cumplen una condición.
| Parámetros | | attribute | number | Atributo del que se va a calcular el promedio | | condition | boolean | Condición para filtrar | |
| Devuelve | number |
| Ejemplos | caseAvgIf(Duration, Activity == "Review") → Duración promedio de las actividades de revisión |
caseCountIf
(condition) Cuenta los eventos del caso actual que cumplen una condición.
| Parámetros | | condition | boolean | Condición que se contará | |
| Devuelve | number |
| Ejemplos | caseCountIf(Status == "Error") → Número de eventos con errores del caso |
caseMinIf
(attribute, condition) Devuelve el valor mínimo entre los eventos que cumplen una condición.
| Parámetros | | attribute | number | Atributo cuyo valor mínimo se va a devolver | | condition | boolean | Condición para filtrar | |
| Devuelve | number |
| Ejemplos | caseMinIf(Timestamp, Activity == "Start") → Marca de tiempo de la primera actividad de inicio |
caseMaxIf
(attribute, condition) Devuelve el valor máximo entre los eventos que cumplen una condición.
| Parámetros | | attribute | number | Atributo cuyo valor máximo se va a devolver | | condition | boolean | Condición para filtrar | |
| Devuelve | number |
| Ejemplos | caseMaxIf(Timestamp, Activity == "End") → Marca de tiempo de la última actividad de fin |
Agregaciones acumuladas
Las agregaciones acumuladas calculan valores acumulados hasta el evento actual, incluido. Al recorrer cronológicamente los eventos de un caso, el valor acumulado se actualiza.
Son útiles para:
- Seguir los totales acumulados (suma acumulada)
- Identificar la posición del evento (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 la ubicación de 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.
| Parámetros | | attribute | number | Atributo que se va a sumar | |
| Devuelve | number |
| Ejemplos | caseRunningSum(ItemAmount) → Suma acumulada en cada evento |
caseRunningCount
() Devuelve la posición del evento en el caso, empezando por 1.
| Devuelve | number |
| Ejemplos | caseRunningCount() → Posición del evento: 1, 2, 3, ... |
caseRunningAvg
(attribute) Calcula el promedio acumulado hasta el evento actual, incluido.
| Parámetros | | attribute | number | Atributo del que se va a calcular el promedio | |
| Devuelve | number |
| 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 | number |
| 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 | number |
| Ejemplos | caseRunningMax(Amount) → Importe máximo acumulado |
Funciones estadísticas
Funciones estadísticas para analizar la distribución de valores dentro de un caso.
-
Percentiles: determine la posición de un valor con respecto a los demás del caso. Indique el percentil como una fracción entre 0 y 1; por ejemplo, 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 | Atributo que se va a analizar | | percentile | number | Percentil expresado como una fracción de 0 a 1 (0.9 = percentil 90) | |
| Devuelve | number |
| Ejemplos | casePercentile(Duration, 0.9) → Duración del percentil 90 del caso |
caseVariance
(attribute) Calcula la varianza de un atributo dentro del caso actual.
| Parámetros | | attribute | number | Atributo que se va a analizar | |
| Devuelve | number |
| Ejemplos | caseVariance(ProcessingTime) → Varianza de los tiempos de procesamiento del caso |
Temas relacionados