グループ値の設定
概要
グループ値の設定エンリッチメントは、グループごとのケースに対して集計統計量を計算し、その計算された値をグループ内の各ケースに割り当てることで強力なデータ集約を作成します。このエンリッチメントは、共通の属性値を持つケースの合計、平均、件数、その他の統計関数などの集計指標を計算し、そのグループの集計値を新しい属性に各ケース分入れることでプロセスデータを変換します。これにより、各ケースがその所属グループの集合的特性に関する情報を持つ高度なグループベースの分析が可能になります。
このエンリッチメントはプロセスマイニングにおける比較分析やベンチマーキングに不可欠です。各ケースをそのグループ全体のパフォーマンスに関するコンテキスト情報で豊かにし、「この注文の価値は同じ商品カテゴリの平均と比べてどうか」「同じ診断群の他の患者と比べた治療期間」などの洞察を得られます。グループレベルの指標をケースレベルに持ち込むことで、異常値の特定、基準値の設定、個々のプロセスインスタンスがその所属グループにどう関係しているかを理解できます。多様な集計関数をサポートし、フィルタリングされた部分集合で動作可能なため、意味のあるグループを柔軟に定義して分析できます。
主な利用例
- 部門ごとの平均処理時間を計算し各部門の全ケースに割り当てる
- 顧客ごとの注文総額を算出し各注文に顧客の合計支出を入力する
- ベンダーごとのケース数をカウントし、ベンダーの取引量分析のため各ケースに追加する
- 商品カテゴリ内の最大値や最小値を見つけて価格分析に利用する
- 診断群ごとの治療期間中央値を計算し医療のベンチマーキングを行う
- 倉庫別の数量合計を算出して在庫分布の洞察を得る
- 地域ごとの承認平均時間を計算し地理的パフォーマンスを比較する
設定
フィルター(任意): グループ計算に含めるケースを制限するためのフィルターを適用します。フィルター条件に合致するケースのみが集計値の計算に考慮されます。これにより完了ケースのみ、高優先度アイテムのみ、特定期間内の取引のみなど、特定のサブセットでグループ統計量を算出できます。フィルターで除外されたケースには新しい属性値は付与されません。
新しい属性名: 計算されたグループ値を格納するケース属性の名前を指定します。グループ化ロジックと適用された集計関数を示す説明的な名前を選択してください。例:"Avg_Duration_By_Department" や "Total_Orders_Per_Customer"。この名前は一意でなければならず、既存の属性と重複してはいけません。
グループ化する列名: グループを定義するために使用する属性を選択します。同じ値を持つケースがグループとしてまとめられ、集計計算が行われます。部門、ベンダー、商品カテゴリ、顧客ID、地域など任意のカテゴリ属性が選べます。グループ化属性はデータのセグメント分割の基準となります。この列の各ユニーク値がそれぞれ別のグループを作成します。
値の列名: 各グループ内で集計される値の属性を選択します。これは計算の元データです。たとえば部門別平均処理時間の計算なら処理時間の属性になります。この列のデータ型によって利用可能な集計関数が調整されます。数値列は数学的演算が使えますが、テキストや日時列は集計オプションが限られます。
集計関数: 各グループ内の値に適用する統計関数を選びます。使用可能な関数は値列のデータ型によって異なります:
- Sum: グループ内の値を合計する(数値および期間属性のみ)
- Average: グループ値の算術平均を計算する(数値および期間属性)
- Median: グループ値をソートしたときの中央値を求める(数値および期間属性)
- Min: グループ内の最小値を特定する(数値、日付、期間対応)
- Max: グループ内の最大値を特定する(数値、日付、期間対応)
- Count: グループ内の非null値の個数を数える(全データ型対応)
- Distinct Count: グループ内の一意値の個数を数える(全データ型対応)
- Null Count: グループ内の欠損/null値の個数を数える(全データ型対応)
例
例1: 部門別平均処理時間
シナリオ: ローン承認プロセスで各部門の平均処理時間を把握し、パフォーマンス差異を特定して現実的なSLA目標を設定したい。
設定:
- フィルター: Status = "Completed"
- 新しい属性名: Avg_Processing_Hours_By_Dept
- グループ化する列名: Department
- 値の列名: Total_Processing_Hours
- 集計関数: Average
出力: 各ローン申請には、その部門で完了したすべてのローンの平均処理時間を含む "Avg_Processing_Hours_By_Dept" が追加される:
- Commercial Banking部門平均:72.5時間(150件全てに割り当て)
- Retail Banking部門平均:24.3時間(890件全てに割り当て)
- Private Banking部門平均:48.7時間(75件全てに割り当て)
これで各ケースは自身の処理時間と部門の平均時間の両方を示し、即座に比較可能になる。
洞察: ローン担当者は特定の申請が部門平均より長いかを簡単に把握でき、管理者はCommercial Bankingの処理時間が最長であり、プロセス改善やリソース増強が必要であることを理解できる。
例2: 顧客別注文総額
シナリオ: EC事業では高額顧客を特定するため、顧客ごとの全購入注文の合計額を計算し、各注文にその情報を付加したい。
設定:
- フィルター: Order_Status NOT IN ("Cancelled", "Returned")
- 新しい属性名: Customer_Total_Spend
- グループ化する列名: Customer_ID
- 値の列名: Order_Amount
- 集計関数: Sum
出力: 各注文に顧客の累積購入額が含まれるようになる:
- Customer_ID「C10234」: 合計支出$15,750(23注文すべてに付与)
- Customer_ID「C10891」: 合計支出$3,200(8注文すべてに付与)
- Customer_ID「C11567」: 合計支出$45,900(67注文すべてに付与)
洞察: 営業担当は高額顧客からの注文で優先対応が可能になり、マーケティングは一定支出基準のVIP顧客向け特別施策を展開できる。
例3: ベンダー別ケース数による作業負荷分析
シナリオ: 調達部門は各ベンダーが扱う購入注文数を把握して作業負荷分布を理解し、すべてのPOにそのカウントを付加して文脈を補いたい。
設定:
- フィルター: PO_Date >= "2024-01-01"
- 新しい属性名: Vendor_PO_Count
- グループ化する列名: Vendor_Name
- 値の列名: Case_ID
- 集計関数: Count
出力: 各購入注文にそのベンダーの総PO数が表示される:
- ベンダー「TechSupplies Inc」: 145 PO(各POにカウント追加)
- ベンダー「Office Essentials」: 892 PO(各POにカウント追加)
- ベンダー「Industrial Parts Co」: 43 PO(各POにカウント追加)
洞察: 調達は特定ベンダーへの過度な依存(Office Essentialsの892 PO)や、より多くの取引量が可能な未活用ベンダーを識別できる。
例4: 診断別最大治療費用
シナリオ: 病院は診断群ごとの最高治療費用を特定して費用のばらつきを把握し、高額な異例ケースの抽出を目指す。
設定:
- フィルター: Treatment_Complete = "Yes" AND Billing_Finalized = "Yes"
- 新しい属性名: Max_Cost_In_Diagnosis_Group
- グループ化する列名: Primary_Diagnosis_Code
- 値の列名: Total_Treatment_Cost
- 集計関数: Max
出力: 各患者ケースに、その診断群で観測された最大治療費用が含まれる:
- 診断「J18.9」(肺炎): 最大費用$45,000(234件すべてで表示)
- 診断「I21.9」(心筋梗塞): 最大費用$125,000(89件すべてで表示)
- 診断「K35.8」(虫垂炎): 最大費用$32,000(156件すべてで表示)
患者は自身の治療費用が診断群の最大に近いか超えているかを即座に把握可能。
洞察: 医療管理者は最大値に近いケースを検知し、合併症や非効率の可能性を調査すべき事例を特定できる。
例5: 優先度別解決時間の中央値
シナリオ: ITサービスデスクは各優先度レベルでチケット解決時間の中央値を計算し基準値を設定したい。
設定:
- フィルター: Ticket_Status = "Resolved" AND Created_Date >= DateAdd(Today(), -90, "days")
- 新しい属性名: Median_Resolution_Hours_By_Priority
- グループ化する列名: Priority_Level
- 値の列名: Resolution_Duration_Hours
- 集計関数: Median
出力: 各チケットにその優先度レベルの解決時間中央値が示される:
- 優先度1(Critical): 中央値2.5時間(145チケットに割当)
- 優先度2(High): 中央値8.0時間(512チケットに割当)
- 優先度3(Medium): 中央値24.0時間(1,234チケットに割当)
- 優先度4(Low): 中央値72.0時間(2,891チケットに割当)
洞察: サービスデスク管理者は中央値を超えるチケットを即座に特定し、SLA違反やプロセス問題の可能性を検出し対応できる。
出力
グループ値の設定エンリッチメントは、各ケースの属するグループの計算済み集計値を含む新しいケース属性を作成します。同じグループのすべてのケースに同一の計算値が割り当てられ、個別ケースレベルでグループ比較と分析が可能になります。
データ型の判定: 出力属性のデータ型は選択した集計関数と元の列の型に依存します:
- Count系関数(Count, Distinct Count, Null Count)は常に整数値を生成
- Sum, Average, Medianは元の列の型を保持(数値は数値、期間は期間)
- MinとMaxは元の列の正確なデータ型を維持
- TimeSpan列に対してSum, Average, MedianはTimeSpan型を返す
グループ計算の流れ: エンリッチメントはまずグループ化列のすべてのユニーク値を特定し、次に各グループに属するケース(かつ任意のフィルターに合致するもの)のみを対象として集計関数を計算します。最後に計算結果を該当グループのすべてのケースに割り当てます。
Null値の取り扱い: グループ化列にnull値が含まれる場合、nullケースは独立したグループを形成します。値列のnull値の扱いは集計関数に依存し、Countはnullを除外、Null Countはnullを数え、Sum/Average/Medianは計算からnullを除外します。フィルター除外されたケースやグループ化列がnullのケースは新属性を付与されない可能性があります。
連携機能: 新しいグループ値属性はmindzieStudioの他機能とシームレスに統合します。グループ平均を上回る/下回るケースをフィルターで抽出したり、計算式で「グループ総量に対する割合」を導出したり、プロセスマップでグループ統計量に基づく色分けを行ったり、さらなるエンリッチメントで多段階集計を作成できます。属性はあらゆる分析ツールで即利用可能で、強化データセットとしてエクスポートも可能です。
関連項目
- Group Attribute Values - 複数の属性値を組み合わせてカスタムグループを作成
- Categorize Attribute Values - 数値範囲を定義しセグメントラベルを割り当て
- Representative Case Attribute - イベント属性から代表値を選択しケース分析に活用
- Count Boolean Attributes with Value - 特定のブール条件の発生数を属性横断でカウント
- Add - グループ化なしで複数の数値属性を単純加算
このドキュメントは mindzie Studio プロセスマイニングプラットフォームの一部です。