こんにちは、データサイエンティストの小柳です。 プロセスマイニングという考え方およびツールがあります。 プロセスのイベントログデータを収集し、業務プロセスの実体を可視化、分析する手法です。業務フローが言語化されていない場合や、想定されている業務フローと実際に行われている業務フローに乖離がある場合にこの手法を用いることで実際の業務フローが可視化され、どこを改善するかを検討する材料になるわけです。
しかし、プロセスマイニングで業務フローが見えたとして、その先に何ができるでしょうか。「今年何件受注できそうか」「どの施策がKPI達成に最も寄与するか」——こうした問いに答えるには、可視化の先にある定量的なモデリングと予測が必要です。
本記事では、プロセスマイニングで得られたDAG(有向非巡回グラフ)上の遷移時間をガンマ分布でベイズ推定し、モンテカルロシミュレーションによるKPI達成確率の予測や施策の感度分析まで行う手法を提案します。極めて素朴なアプローチではありますが、応用先やさらなる発展も見込める手法です。読者の皆様がご自身のデータで分析を試みる際の参考になれば幸いです。
- 1. 序文
- 2. 背景と前提
- 3. モデル化の発想
- 4. ベイズ推定
- 5. 欠損データへの対応 — モーメントマッチング
- 6. モンテカルロシミュレーションによるKPI予測
- 7. さらに広がるアウトプット
- 8. 課題と発展
- 9. まとめ
1. 序文
冒頭ではプロセスマイニングを話題にしましたが、何もプロセスマイニングをしたデータのみが対象ではありません。 案件単位で業務が進む会社(SIer、コンサル等)の多くでは以下のようなログが取れるはずです。
| プロジェクトID | タイムスタンプ | ステータス | 担当者 |
|---|---|---|---|
| 1 | 2024/12/15 | アポイント | 佐藤 |
| 1 | 2025/1/1 | プロジェクト提案 | 佐藤 |
| 1 | 2025/2/1 | 受注(X円) | 佐藤 |
| 2 | 2025/1/15 | プロジェクト提案 | 田中 |
| 1 | 2025/2/15 | 開発 | 山田 |
| 2 | 2025/1/15 | 失注 | 田中 |
このようなデータをプロジェクト管理ツールで見たりします。各案件で最新の情報を取れば現在の状況が、プロジェクト単位で推移を見れば過去の状況が見られるわけです。
しかし、今年何件開発案件を得られそうか、今年何件受注できそうか、今年いくらの受注額になりそうかといったKGIになりうる値を予測する際にはこのままでは使いづらいです。
そして課題と改善点の把握にもこのままのデータではあまり役立ちません。月々のアポイント取得数を今の10%増しにしたら、プロジェクト提案から受注への確率を5%上げたら、アポイントメントからプロジェクト提案の期間を1週間早めたら、KGIの達成確率はどうなるのか——そういったKPIの影響を見極めたうえで効率よくKGIを達成できたらうれしいですよね。
今回提案する分析を行うことで、このような示唆出しと分析ができるようになります。
2. 背景と前提
本記事では以下のような前提を置きます。
プロセスのDAG表現: プロセスマイニングや業務分析を通じて、業務フローが有向非巡回グラフ(DAG)として表現されているものとします。各ノードはステータス(アポイント、提案、受注、失注、開発、納品など)を表し、各エッジはステータス間の遷移を表します。
分岐の存在: あるステータスから複数のステータスに遷移する可能性があります。例えば「提案」ステータスからは「受注」と「失注」のどちらかに遷移します。
遷移時間: 各エッジには遷移にかかる時間が付随します。例えば「アポイントから提案まで平均15日」のようなものです。この遷移時間は確率的にばらつきます。
非巡回の仮定: 本記事ではループ(同じステータスへの差し戻し等)は扱いません。これは課題と発展のセクションで議論します。
本記事で用いるデモDAGは以下のような構造です。

このDAGでは、案件はまず「アポイント」として発生し、「提案」を経て「受注」または「失注」に分岐します。受注した案件は「開発」を経て「納品」に至ります。
3. モデル化の発想
3.1 指数分布と再生性の限界
各エッジの遷移時間を確率的にモデリングすることを考えます。最も素朴に思いつくのは指数分布でしょう。指数分布の確率密度関数は以下の通りです。
指数分布はパラメータが の1つだけであり、シンプルで扱いやすいです。実際、プロセスの遷移を連続時間マルコフ連鎖としてモデリングする場合、遷移時間は自然に指数分布に従います。遷移行列(遷移率行列)を定義すれば各ステータスの滞在時間が指数分布で表されるため、理論的に整合性のあるモデルが構築できるのです。
しかし、指数分布には無記憶性と呼ばれる性質があります。
これは「すでに 日経過しているという条件のもとでさらに
日以上かかる確率は、最初から
日以上かかる確率と等しい」ことを意味します。連続時間マルコフ連鎖ではこの性質が理論の根幹を支えていますが、業務プロセスの遷移時間のモデリングとしては不自然です。
例えば、アポイントから提案まで「すでに2週間経っているのにまだ提案に至っていない案件」は、「今日アポイントを取ったばかりの案件」とは状況が異なるはずです。2週間経っても提案に至らない案件は、何か障害があるか、そもそも遷移しにくい案件である可能性があります。指数分布の無記憶性はこうした直感に反します。
もう1つの問題として、指数分布は で最大値を取り、単調に減少する形状しか表現できません。実際の遷移時間は「しばらくしてからピークが来る」ような山型の分布になることが多いですが、指数分布ではこれを表現できません。

3.2 ガンマ分布の選択
そこで、指数分布を一般化したガンマ分布を採用します。ガンマ分布の確率密度関数は以下の通りです。
ここで は形状パラメータ、
は率(rate)パラメータです。ガンマ分布の期待値と分散は以下の通りです。
ガンマ分布の重要な性質として、 のとき指数分布に退化します。つまり指数分布はガンマ分布の特殊ケースです。
の場合、分布は
で値が0になり、途中でピークを持つ山型の形状になります。
が大きくなるほどピークが右に移動し、分布の裾も長くなります。これにより「しばらく経ってから遷移が起こりやすくなる」ような現実のパターンを自然に表現できます。

再生性は失われますが、代わりに2パラメータによる豊かな表現力を得ることができます。遷移時間の平均だけでなく、分布の形状(ばらつきの大きさ、ピークの位置)まで柔軟にモデリングできるのがガンマ分布の利点です。
3.3 分岐のモデリング
次に、分岐(あるノードから複数の遷移先がある場合)のモデリングを考えます。
2分岐の場合(例: 提案→受注 or 失注)は、ベルヌーイ分布を使います。遷移先を とすると、
ここで は受注に遷移する確率です。
3分岐以上の場合(例: 審査→承認/条件付承認/却下)は、 の多項分布、すなわちカテゴリカル分布を使います。
エッジごとの遷移時間はそれぞれ独立したガンマ分布でモデリングします。つまり、各ノード では「どこに行くか」と「どれくらいかかるか」の2つを同時にモデリングすることになります。

このように、遷移確率と遷移時間分布を組み合わせることで、分岐を含むDAG全体を自然にモデリングできます。2分岐もカテゴリカル分布の特殊ケース()として統一的に扱えますが、2分岐の場合はベルヌーイ分布として扱う方が数式が簡潔になります。
4. ベイズ推定
4.1 ガンマ分布パラメータのベイズ推定
あるエッジの遷移時間の観測データ から、ガンマ分布のパラメータをベイズ推定します。
ガンマ分布は形状パラメータ と率パラメータ
で定義されますが、これらに直接事前分布を置くと解釈が難しくなります。実務的には、平均
と分散
に再パラメータ化し、こちらに事前分布を置く方が解釈性が良くなります。
例えば「アポイントから提案までの遷移時間は平均10〜20日程度だろう」「ばらつきは数日〜数十日の範囲だろう」といったドメイン知識を、 と
の事前分布として自然に表現できます。
尤度:
事後分布は解析的には求まらないため、MCMC(マルコフ連鎖モンテカルロ法)で近似します。PyMCなどの確率的プログラミングライブラリを使えば、上記のモデルを記述するだけで事後分布のサンプリングが自動的に行われます。
MCMCの結果として の事後サンプルが得られ、そこから
の事後サンプルも変換により得られます。事後分布を通じてパラメータの不確実性が定量的に表現されるため、後段のモンテカルロシミュレーションにそのまま活用できます。
4.2 遷移確率のベイズ推定
分岐ノードの遷移確率についてもベイズ推定を行います。
2分岐の場合: ベルヌーイ分布の共役事前分布はベータ分布です。
事前分布:
回の遷移のうち
回が遷移先Aだったとすると、
事後分布:
3分岐以上の場合: カテゴリカル分布の共役事前分布はディリクレ分布です。
事前分布:
各遷移先への遷移回数 を観測すると、
事後分布:
ベイズ推定の利点は、サンプルサイズが少ない場合でも事前分布を通じてドメイン知識を反映でき、さらに事後分布としてパラメータの不確実性を定量的に表現できる点です。「受注確率は60%」と点推定するのではなく、「受注確率の95%信用区間は45%〜75%」のように不確実性を含めた報告ができます。
4.3 デモデータによる推定結果
2章で定義したデモDAGに対して、以下の真のパラメータからデータを生成し、ベイズ推定を行った結果を示します。
真のパラメータ:
| エッジ | 遷移時間 |
期待値(日) |
|---|---|---|
| アポイント→提案 | |
15 |
| 提案→受注 | |
40 |
| 提案→失注 | |
13 |
| 受注→開発 | |
7 |
| 開発→納品 | |
100 |
分岐確率: 提案→受注 60%、提案→失注 40%
30件のデモデータから推定を行うと、ガンマ分布は指数分布に比べてデータの分布形状をより適切に捉えます。特に、遷移時間が 付近で低く途中でピークを持つようなエッジ(例: アポイント→提案、提案→受注)では、
のガンマ分布でないとフィットが困難です。
-
MCMCにより の事後分布が得られます。サンプルサイズが十分であれば事後分布は鋭いピークを持ち、推定の不確実性が小さいことを示します。事後分布から
に変換した結果も確認できます。

の事後分布は
となり、事後平均は約0.60、95%信用区間は約[0.42, 0.76]です。

5. 欠損データへの対応 — モーメントマッチング
実務では、すべてのステータス間の遷移時間が記録されているとは限りません。例えば、アポイントから受注までの記録はあるが、間の「提案」ステータスのタイムスタンプが記録されていないケースがあります。このとき、個別のエッジの遷移時間はわからず、端点間の合計時間しか観測できません。
指数分布であれば再生性があるため、合計時間の分布も指数分布です。しかしガンマ分布には再生性がないため、2つの独立なガンマ分布の和は一般にはガンマ分布にならず、本来は畳み込みとして扱う必要があります。
ただし、各エッジの通過時間が独立に分布すると考えてしまえば、期待値と分散を加算することができます。 と
が独立であるとき、
この性質を利用して、合計時間のサンプル平均とサンプル分散からモーメント方程式を立て、各エッジのパラメータを推定する疑似的なモーメントマッチングが可能です。
具体的には、合計時間 の観測データ
が
に従うと考えてしまいます。このときの
は以下を満たします。
モーメントマッチングは厳密なベイズ推定に比べて正確性では劣りますが、完全な遷移履歴が得られない状況でも「それなりの推定」ができるという実用上の大きな利点があります。
試しに次の設定で作成したデータについて推論をしてみます。 - アポイントから納品までの30件のデータが存在 - 著しい欠損が生じており、大抵の場合複数エッジの経過時間のみが記録されている。 - 単体で観測されているエッジが極めて少ない。 - 各エッジにかかる時間は4.3節で使った真のパラメータを使って生成された。
この条件下で生成したデータに対し推論を実施、事後予測分布と実際にエッジ単体で観測されたものを比較したグラフが以下になります。
また、観測できたエッジのみに対してパラメータ推論をした結果および全データを使いモーメントマッチング推定を行った場合の信用区間の対比表が以下となります。
結果を見ると単体で観測されていないエッジに対してもそれなりに推定ができています。また、単エッジの結果がある個所の推定結果を大きく邪魔していないところもメリットと言えます。一方で真のパラメータを包含しない信用区間もあります。従って、単体エッジを使った推論よりも概ね良い結果になると言えます。
6. モンテカルロシミュレーションによるKPI予測
6.1 シミュレーションの枠組み
ここまでで推定した遷移時間分布と遷移確率を用いて、今後のKPI達成確率を予測するモンテカルロシミュレーションを構築します。シミュレーションには以下の3つの要素が必要です。
- 推定済みモデル: 各エッジの遷移時間分布(ガンマ分布)と遷移確率(ベルヌーイ/多項分布)の事後分布
- 現在のパイプライン: 各ステータスに現在何件の案件が滞留しているか(例: アポイント5件、提案中8件、受注済み開発待ち3件)
- 新規流入モデル: 月ごとに何件の新規案件が入口ノード(アポイント)に流入するか(例: 月平均10件のポアソン分布)
シミュレーションの手順は以下の通りです。
- パラメータサンプリング: 各エッジの遷移時間パラメータ
と遷移確率
を事後分布からサンプリングします。これによりパラメータの不確実性がシミュレーションに反映されます
- 既存案件の遷移: 現在パイプラインに滞留中の各案件について、現在のステータスから先の遷移を確率的にサンプリングします。各ノードで遷移先(ベルヌーイ/多項分布)と遷移時間(ガンマ分布)をサンプリングし、期末までに到達するステータスを決定します
- 新規案件の生成: 月ごとに新規案件を流入モデルから生成し、同様にDAG上の遷移をサンプリングします
- KPI集計: 期末時点で各ステータスに到達した案件数をカウントします(例: 受注件数、納品件数)
- 反復: 手順1〜4を多数回(例: 10,000回)繰り返し、KPIの分布を得ます
6.2 KPI達成確率の算出例
例として、「今期末(残り9ヶ月)までに受注ステータスに15件以上到達する」というKPI目標を設定します。
現在のパイプラインには以下の案件があるとします。 - アポイント: 5件 - 提案中: 8件 - 受注済み(開発中): 3件
月間の新規アポイントは平均20件(正規分布)と仮定します。
10,000回のシミュレーションを行い、受注件数の分布を得ると、達成確率を以下のように算出できます。
各KPI目標値に対する達成確率を表にまとめると以下のようになります。
| KPI目標(受注件数) | 達成確率 |
|---|---|
| 8件以上 | 48.6% |
| 10件以上 | 26.6% |
| 12件以上 | 12.9% |
| 15件以上 | 4% |
同様に、受注額を対数正規分布等でモデリングし、モンテカルロシミュレーションに組み込むことで「年間売上X円以上の確率」も算出可能です。
このような方法を用いることで、今年の目標がどれほど難しいかを定量的に測ることが可能になります。
6.3 感度分析
KPIの達成確率に各施策がどの程度寄与するかを定量的に比較するため、感度分析を行います。以下の3つの施策を個別にシミュレーションに反映し、ベースケースとの比較を行います。
- 施策A: 月間アポイント数を10%増加(月平均10件→11件)
- 施策B: 提案→受注の遷移確率を5%向上(60%→65%)
- 施策C: アポイント→提案の遷移時間を1週間短縮(期待値15日→12日)

| シナリオ | 受注8件以上の達成確率 | ベースとの差 |
|---|---|---|
| ベースケース | 48.7% | — |
| 施策A(アポイント+10%) | 51.6% | +3pt |
| 施策B(受注確率+5%) | 53.7% | +5pt |
| 施策C(遷移時間-1週間) | 88.8% | +40pt |
この結果から、提案時間短縮(施策C)がKPI達成に最も効果的であることがわかります。このような定量的な比較ができることが、本手法の大きな実務的価値です。
シミュレーションの副産物として、各ステータスの平均滞留案件数も得られます。

どのステータスに案件が詰まりがちかを把握することで、ボトルネックの特定と改善施策の優先順位付けに役立ちます。
7. さらに広がるアウトプット
本手法の枠組みは汎用的であり、前章までで示した分析以外にも多くのアウトプットを得ることができます。プロセスマイニング単体ではわからなかった経営判断に直結する情報が、このモデリングを通じて得られるようになります。ほとんど他の場所で言及していますが、ここにまとめておきます。
年間売上予測: 受注額を対数正規分布等でモデリングし、モンテカルロシミュレーションに組み込むことで、受注件数だけでなく売上金額の分布を得ることができます。「年間売上3億円以上の確率は何%か」のような問いに答えられます
ボトルネック特定: シミュレーション中の各ステータスの滞留案件数を時系列で可視化すると、どこに案件が詰まりがちかが一目でわかります。これは感度分析と組み合わせることで、改善施策の優先順位付けに直結します
What-If分析の深掘り: 「担当者を1人増員した場合」「特定エッジの処理プロセスを自動化した場合」など、より細かい粒度での施策評価が可能です。遷移時間のパラメータを変更するだけでシミュレーションできます
現在のパイプラインだけでの目標達成度: 新規流入を0としてシミュレーションを行うことで、現在のパイプラインにある案件だけで到達可能な受注数を予測できます。「あと何件の新規アポイントが必要か」を逆算する際の指標になります
回帰モデルによる拡張: 遷移確率や遷移時間のパラメータに案件属性(案件規模、業種、担当者の経験年数等)を説明変数として回帰モデルを組み込むことで、「大型案件は遷移に時間がかかる」「ベテラン担当者は受注確率が高い」といった属性ごとの遷移特性の違いを捉えることも考えられます
8. 課題と発展
本手法にはいくつかの課題と発展の余地があります。
時間変動: ビジネス環境の変化により遷移パラメータが経時変化する場合、過去のデータをそのまま使うと予測精度が低下します。時間窓を区切った再推定や、オンラインベイズ更新(逐次的にデータを追加して事後分布を更新する)が有効です。
回帰モデルの組み込み: 7章で言及した回帰モデルの詳細な定式化と推定方法は、本記事だけでは紙面が足りません。GLMやベイズ回帰をガンマ分布のパラメータに組み込む方法については、別の機会に取り上げるかもしれません。
9. まとめ
本記事では、プロセスマイニングで業務フローを可視化したあとの「次の一手」として、ガンマ分布によるベイズモデリングとモンテカルロシミュレーションを用いた分析手法を提案しました。
本手法により、以下のことが可能になります。
- 各遷移の時間分布と遷移確率を、不確実性を含めて定量的に把握できます
- 分岐を含むDAGを自然にモデリングできます
- 遷移履歴が欠損している場合でも、モーメントマッチングにより推定が可能です
- モンテカルロシミュレーションにより、KPI達成確率の予測と施策の感度分析ができます
素朴なアプローチではありますが、プロセスマイニングで可視化されたフローに対して「どこをどう改善すればKGI達成に効くのか」を定量的に議論できるようになる点で、実務的な価値があると考えています。
自社のデータサイエンスチームで試してみたい方は、本記事の数式をそのまま実装に落とし込むことができます。ご相談やご質問があれば、お気軽にInsight Edgeまでお問い合わせください。