Các hàm tổng hợp giá trị trên mọi sự kiện thuộc cùng một hồ sơ.
Tìm hiểu về hàm tổng hợp theo hồ sơ
Trong process mining, một hồ sơ là một trường hợp cụ thể của quy trình, chẳng hạn một đơn hàng, một yêu cầu hỗ trợ hoặc một hành trình khách hàng. Mỗi hồ sơ gồm nhiều sự kiện, tức các bước hoặc hoạt động riêng lẻ.
Hàm tổng hợp theo hồ sơ tính giá trị trên mọi sự kiện trong một hồ sơ, rồi cung cấp kết quả cho từng sự kiện. Nhờ đó, bạn có thể:
- Tính tổng giá trị của một hồ sơ (ví dụ: tổng giá trị đơn hàng)
- Tìm mẫu trong hồ sơ (ví dụ: số sự kiện làm lại)
- So sánh từng sự kiện với số liệu thống kê cấp hồ sơ
Các mẫu thường dùng
-
Tính tổng theo hồ sơ:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
Tìm giá trị cực trị:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
Tổng hợp có điều kiện:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
So sánh sự kiện với hồ sơ:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) Tính tổng thuộc tính dạng số của mọi sự kiện trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần tính tổng | |
| Giá trị trả về | number |
| Ví dụ | caseSum(ItemAmount) → Tổng tất cả giá trị ItemAmount trong case |
caseAvg
(attribute) Tính giá trị trung bình của thuộc tính dạng số trên mọi sự kiện trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần tính trung bình | |
| Giá trị trả về | number |
| Ví dụ | caseAvg(ProcessingTime) → Thời gian xử lý trung bình mỗi sự kiện |
caseMin
(attribute) Trả về giá trị nhỏ nhất của thuộc tính trên mọi sự kiện trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần lấy giá trị nhỏ nhất | |
| Giá trị trả về | number |
| Ví dụ | caseMin(ItemPrice) → Giá thấp nhất trong case |
caseMax
(attribute) Trả về giá trị lớn nhất của thuộc tính trên mọi sự kiện trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần lấy giá trị lớn nhất | |
| Giá trị trả về | number |
| Ví dụ | caseMax(ItemPrice) → Giá cao nhất trong case |
caseCount
() Trả về số sự kiện trong case hiện tại.
| Giá trị trả về | number |
| Ví dụ | caseCount() → Số sự kiện trong case |
caseMedian
(attribute) Trả về trung vị của thuộc tính trên mọi sự kiện trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần lấy giá trị trung vị | |
| Giá trị trả về | number |
| Ví dụ | caseMedian(Duration) → Giá trị Duration ở giữa trong case |
caseCountDistinct
(attribute) Đếm số giá trị riêng biệt của một thuộc tính trong case hiện tại.
| Tham số | | attribute | any | Thuộc tính cần đếm giá trị riêng biệt | |
| Giá trị trả về | number |
| Ví dụ | caseCountDistinct(Resource) → Số tài nguyên riêng biệt trong case |
caseStdDev
(expr) Tính độ lệch chuẩn của các sự kiện trong case.
| Tham số | | expr | number | Biểu thức giá trị | |
| Giá trị trả về | number |
| Ví dụ | caseStdDev(Amount) → Độ lệch chuẩn trong case |
caseSumIf
(attribute, condition) Chỉ tính tổng giá trị của những sự kiện thỏa mãn điều kiện.
| Tham số | | attribute | number | Thuộc tính cần tính tổng | | condition | boolean | Điều kiện lọc | |
| Giá trị trả về | number |
| Ví dụ | caseSumIf(Amount, Status == "Approved") → Tổng Amount khi Status là Approved |
caseAvgIf
(attribute, condition) Chỉ tính trung bình giá trị của những sự kiện thỏa mãn điều kiện.
| Tham số | | attribute | number | Thuộc tính cần tính trung bình | | condition | boolean | Điều kiện lọc | |
| Giá trị trả về | number |
| Ví dụ | caseAvgIf(Duration, Activity == "Review") → Thời lượng trung bình của các hoạt động Review |
caseCountIf
(condition) Đếm các sự kiện trong case hiện tại thỏa mãn điều kiện.
| Tham số | | condition | boolean | Điều kiện cần đếm | |
| Giá trị trả về | number |
| Ví dụ | caseCountIf(Status == "Error") → Số sự kiện lỗi trong case |
caseMinIf
(attribute, condition) Trả về giá trị nhỏ nhất trong số các sự kiện thỏa mãn điều kiện.
| Tham số | | attribute | number | Thuộc tính cần lấy giá trị nhỏ nhất | | condition | boolean | Điều kiện lọc | |
| Giá trị trả về | number |
| Ví dụ | caseMinIf(Timestamp, Activity == "Start") → Dấu thời gian của hoạt động Start đầu tiên |
caseMaxIf
(attribute, condition) Trả về giá trị lớn nhất trong số các sự kiện thỏa mãn điều kiện.
| Tham số | | attribute | number | Thuộc tính cần lấy giá trị lớn nhất | | condition | boolean | Điều kiện lọc | |
| Giá trị trả về | number |
| Ví dụ | caseMaxIf(Timestamp, Activity == "End") → Dấu thời gian của hoạt động End cuối cùng |
Hàm tổng hợp lũy tiến
Hàm tổng hợp lũy tiến tính giá trị tích lũy đến và bao gồm sự kiện hiện tại. Khi bạn lần lượt xem các sự kiện trong hồ sơ theo thứ tự thời gian, giá trị lũy tiến sẽ được cập nhật.
Các hàm này hữu ích để:
- Theo dõi tổng lũy tiến (tổng chạy)
- Xác định vị trí sự kiện (số đếm chạy)
- Tính trung bình trượt
Các mẫu hàm tổng hợp lũy tiến
-
Tổng lũy tiến: Theo dõi giá trị tích lũy trong hồ sơ:
caseRunningSum(ItemAmount) // Cumulative order total at each event
| Sự kiện | Số tiền | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
Vị trí sự kiện: Xác định vị trí của sự kiện trong chuỗi hồ sơ:
caseRunningCount() // 1, 2, 3, 4...
-
Trung bình trượt: Tính giá trị trung bình đến thời điểm hiện tại:
caseRunningAvg(Duration) // Average duration so far
-
Logic dựa trên vị trí:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) Tính tổng lũy tiến đến và bao gồm sự kiện hiện tại.
| Tham số | | attribute | number | Thuộc tính cần tính tổng | |
| Giá trị trả về | number |
| Ví dụ | caseRunningSum(ItemAmount) → Tổng lũy tiến tại mỗi sự kiện |
caseRunningCount
() Trả về số thứ tự của sự kiện trong case, bắt đầu từ 1.
| Giá trị trả về | number |
| Ví dụ | caseRunningCount() → Vị trí sự kiện: 1, 2, 3, ... |
caseRunningAvg
(attribute) Tính trung bình lũy tiến đến và bao gồm sự kiện hiện tại.
| Tham số | | attribute | number | Thuộc tính cần tính trung bình | |
| Giá trị trả về | number |
| Ví dụ | caseRunningAvg(Duration) → Thời lượng trung bình tính đến thời điểm này |
caseRunningMin
(expr) Tính giá trị nhỏ nhất lũy tiến đến sự kiện hiện tại.
| Tham số | | expr | number | Biểu thức giá trị | |
| Giá trị trả về | number |
| Ví dụ | caseRunningMin(Amount) → Giá trị Amount nhỏ nhất tính đến hiện tại |
caseRunningMax
(expr) Tính giá trị lớn nhất lũy tiến đến sự kiện hiện tại.
| Tham số | | expr | number | Biểu thức giá trị | |
| Giá trị trả về | number |
| Ví dụ | caseRunningMax(Amount) → Giá trị Amount lớn nhất tính đến hiện tại |
Hàm thống kê
Các hàm thống kê dùng để phân tích phân bố giá trị trong một hồ sơ.
-
Phân vị: Xác định vị trí của một giá trị so với các giá trị khác trong hồ sơ. Truyền phân vị dưới dạng số từ 0 đến 1. Ví dụ, 0.9 là phân vị thứ 90:
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
Phương sai: Đo mức độ phân tán của các giá trị:
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) Tính phân vị của một thuộc tính trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần phân tích | | percentile | number | Phân vị dưới dạng số từ 0 đến 1 (0.9 = phân vị thứ 90) | |
| Giá trị trả về | number |
| Ví dụ | casePercentile(Duration, 0.9) → Thời lượng ở phân vị thứ 90 trong case |
caseVariance
(attribute) Tính phương sai của một thuộc tính trong case hiện tại.
| Tham số | | attribute | number | Thuộc tính cần phân tích | |
| Giá trị trả về | number |
| Ví dụ | caseVariance(ProcessingTime) → Phương sai thời gian xử lý trong case |
Chủ đề liên quan