En esta página

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