ฟังก์ชันสำหรับรวมค่าจากเหตุการณ์ทั้งหมดภายในเคสเดียวกัน.
ทำความเข้าใจการรวมค่าระดับเคส
ใน process mining เคสหมายถึงกระบวนการหนึ่งรายการ เช่น คำสั่งซื้อหนึ่งรายการ คำร้องขอหนึ่งเรื่อง หรือเส้นทางการใช้บริการของลูกค้าหนึ่งราย แต่ละเคสประกอบด้วยเหตุการณ์หลายรายการ ซึ่งเป็นขั้นตอนหรือกิจกรรมแต่ละรายการ.
ฟังก์ชันรวมค่าระดับเคสจะคำนวณค่าจากทุกเหตุการณ์ในเคส แล้วแสดงผลลัพธ์ไว้ในแต่ละเหตุการณ์ คุณจึงสามารถ:
- คำนวณยอดรวมของเคส (เช่น ยอดรวมคำสั่งซื้อ)
- ค้นหารูปแบบภายในเคส (เช่น จำนวนเหตุการณ์ที่ต้องทำซ้ำ)
- เปรียบเทียบเหตุการณ์แต่ละรายการกับสถิติระดับเคส
รูปแบบที่ใช้บ่อย
-
คำนวณยอดรวมของเคส:
caseSum(ItemAmount) // Total order value
caseCount() // Number of events in case
caseCountDistinct(Resource) // Unique resources involved
-
ค้นหาค่าสูงสุดและต่ำสุด:
caseMin(Timestamp) // First event time
caseMax(Timestamp) // Last event time
caseMax(Timestamp) - caseMin(Timestamp) // Total case duration
-
การรวมค่าแบบมีเงื่อนไข:
caseCountIf(Status == "Error") // Error count
caseSumIf(Amount, Activity == "Payment") // Total payments
caseAvgIf(Duration, Activity == "Review") // Avg review time
-
เปรียบเทียบเหตุการณ์กับเคส:
Duration / caseAvg(Duration) // Is this event faster/slower than average?
caseSum
(attribute) หาผลรวมของแอตทริบิวต์ตัวเลขจากทุกเหตุการณ์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาผลรวม | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseSum(ItemAmount) → ผลรวมของค่า ItemAmount ทั้งหมดในเคส |
caseAvg
(attribute) หาค่าเฉลี่ยของแอตทริบิวต์ตัวเลขจากทุกเหตุการณ์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าเฉลี่ย | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseAvg(ProcessingTime) → เวลาเฉลี่ยที่ใช้ประมวลผลต่อเหตุการณ์ |
caseMin
(attribute) คืนค่าแอตทริบิวต์ต่ำสุดจากทุกเหตุการณ์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าต่ำสุด | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseMin(ItemPrice) → ราคาต่ำสุดในเคส |
caseMax
(attribute) คืนค่าแอตทริบิวต์สูงสุดจากทุกเหตุการณ์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าสูงสุด | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseMax(ItemPrice) → ราคาสูงสุดในเคส |
caseCount
() คืนจำนวนเหตุการณ์ในเคสปัจจุบัน.
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseCount() → จำนวนเหตุการณ์ในเคส |
caseMedian
(attribute) คืนค่ามัธยฐานของแอตทริบิวต์จากทุกเหตุการณ์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่ามัธยฐาน | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseMedian(Duration) → ค่ากึ่งกลางของ Duration ในเคส |
caseCountDistinct
(attribute) นับจำนวนค่าที่ไม่ซ้ำกันของแอตทริบิวต์ในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | any | แอตทริบิวต์ที่ต้องการนับค่าไม่ซ้ำ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseCountDistinct(Resource) → จำนวนทรัพยากรที่ไม่ซ้ำกันในเคส |
caseStdDev
(expr) คำนวณส่วนเบี่ยงเบนมาตรฐานของเหตุการณ์ในเคส.
| พารามิเตอร์ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseStdDev(Amount) → ส่วนเบี่ยงเบนมาตรฐานภายในเคส |
caseSumIf
(attribute, condition) หาผลรวมเฉพาะค่าของเหตุการณ์ที่ตรงตามเงื่อนไข.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาผลรวม | | condition | boolean | เงื่อนไขที่ใช้กรอง | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseSumIf(Amount, Status == "Approved") → ผลรวม Amount เมื่อ Status เป็น Approved |
caseAvgIf
(attribute, condition) หาค่าเฉลี่ยเฉพาะค่าของเหตุการณ์ที่ตรงตามเงื่อนไข.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าเฉลี่ย | | condition | boolean | เงื่อนไขที่ใช้กรอง | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseAvgIf(Duration, Activity == "Review") → ระยะเวลาเฉลี่ยของกิจกรรม Review |
caseCountIf
(condition) นับเหตุการณ์ในเคสปัจจุบันที่ตรงตามเงื่อนไข.
| พารามิเตอร์ | | condition | boolean | เงื่อนไขที่ใช้ในการนับ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseCountIf(Status == "Error") → จำนวนเหตุการณ์ Error ในเคส |
caseMinIf
(attribute, condition) คืนค่าต่ำสุดจากเหตุการณ์ที่ตรงตามเงื่อนไข.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าต่ำสุด | | condition | boolean | เงื่อนไขที่ใช้กรอง | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseMinIf(Timestamp, Activity == "Start") → การประทับเวลาของกิจกรรม Start แรก |
caseMaxIf
(attribute, condition) คืนค่าสูงสุดจากเหตุการณ์ที่ตรงตามเงื่อนไข.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าสูงสุด | | condition | boolean | เงื่อนไขที่ใช้กรอง | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseMaxIf(Timestamp, Activity == "End") → การประทับเวลาของกิจกรรม End ล่าสุด |
การรวมค่าแบบสะสม
การรวมค่าแบบสะสมจะคำนวณค่าสะสมจนถึงเหตุการณ์ปัจจุบัน รวมเหตุการณ์นั้นด้วย เมื่อไล่ดูเหตุการณ์ในเคสตามลำดับเวลา ค่าสะสมจะเปลี่ยนแปลงไปตามลำดับ.
เหมาะสำหรับ:
- ติดตามยอดสะสม (ผลรวมสะสม)
- ระบุตำแหน่งของเหตุการณ์ (จำนวนสะสม)
- คำนวณค่าเฉลี่ยเคลื่อนที่
รูปแบบการรวมค่าแบบสะสม
-
ยอดรวมสะสม: ติดตามการสะสมของค่าตลอดทั้งเคส
caseRunningSum(ItemAmount) // Cumulative order total at each event
| เหตุการณ์ | จำนวนเงิน | caseRunningSum(Amount) |
| 1 | 100 | 100 |
| 2 | 50 | 150 |
| 3 | 75 | 225 |
-
ตำแหน่งเหตุการณ์: ระบุตำแหน่งของเหตุการณ์ในลำดับของเคส
caseRunningCount() // 1, 2, 3, 4...
-
ค่าเฉลี่ยเคลื่อนที่: คำนวณค่าเฉลี่ยจนถึงจุดปัจจุบัน
caseRunningAvg(Duration) // Average duration so far
-
ตรรกะตามตำแหน่ง:
if(caseRunningCount() == 1, "First",
if(caseRunningCount() == caseCount(), "Last", "Middle")
)
caseRunningSum
(attribute) คำนวณผลรวมสะสมจนถึงและรวมเหตุการณ์ปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาผลรวม | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseRunningSum(ItemAmount) → ผลรวมสะสมในแต่ละเหตุการณ์ |
caseRunningCount
() คืนลำดับเหตุการณ์ในเคส โดยเริ่มนับจาก 1.
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseRunningCount() → ลำดับเหตุการณ์: 1, 2, 3, ... |
caseRunningAvg
(attribute) คำนวณค่าเฉลี่ยสะสมจนถึงและรวมเหตุการณ์ปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการหาค่าเฉลี่ย | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseRunningAvg(Duration) → ระยะเวลาเฉลี่ยสะสมจนถึงจุดนี้ |
caseRunningMin
(expr) คำนวณค่าต่ำสุดสะสมจนถึงเหตุการณ์ปัจจุบัน.
| พารามิเตอร์ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseRunningMin(Amount) → จำนวนเงินต่ำสุดสะสม |
caseRunningMax
(expr) คำนวณค่าสูงสุดสะสมจนถึงเหตุการณ์ปัจจุบัน.
| พารามิเตอร์ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseRunningMax(Amount) → จำนวนเงินสูงสุดสะสม |
ฟังก์ชันทางสถิติ
ฟังก์ชันทางสถิติสำหรับวิเคราะห์การกระจายของค่าภายในเคส.
-
เปอร์เซ็นไทล์: ดูว่าค่าอยู่ในตำแหน่งใดเมื่อเทียบกับค่าอื่นในเคส ระบุเปอร์เซ็นไทล์เป็นเศษส่วนตั้งแต่0 ถึง 1เช่น 0.9หมายถึงเปอร์เซ็นไทล์ที่ 90
casePercentile(Duration, 0.5) // Median duration in this case
casePercentile(Duration, 0.9) // 90th percentile
-
ความแปรปรวน: วัดการกระจายของค่า
caseVariance(Amount) // Variation within this case
casePercentile
(attribute, percentile) คำนวณเปอร์เซ็นไทล์ของแอตทริบิวต์ภายในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการวิเคราะห์ | | percentile | number | เปอร์เซ็นไทล์ในรูปเศษส่วนตั้งแต่ 0 ถึง 1 (0.9 = เปอร์เซ็นไทล์ที่ 90) | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | casePercentile(Duration, 0.9) → ระยะเวลาที่เปอร์เซ็นไทล์ 90 ของเคส |
caseVariance
(attribute) คำนวณความแปรปรวนของแอตทริบิวต์ภายในเคสปัจจุบัน.
| พารามิเตอร์ | | attribute | number | แอตทริบิวต์ที่ต้องการวิเคราะห์ | |
| ค่าที่ส่งกลับ | ตัวเลข |
| ตัวอย่าง | caseVariance(ProcessingTime) → ความแปรปรวนของเวลาประมวลผลในเคส |
หัวข้อที่เกี่ยวข้อง