K_DM Book
用語集
対象者 標準
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

リスクマトリクスで優先対策領域を明確に

中級

06.7.26

リスクマトリクスで優先対策領域を明確に

最終更新 2020-04-18 読了時間 2 分
まとめ
リスクマトリクスは、横軸に発生確率、縦軸に影響度を 5 段階ずつ取り、25 個のセルに 1〜5 の優先度レベルを割り当てて色で塗った表で、個々のリスクをどのセルに置くかで対策の順番を決めるための図です。右上(高確率・致命的)ほど濃い赤、左下(低確率・軽微)ほど薄い黄色になり、色が「今すぐ対処」「監視のみ」の判断に直結します。matplotlib では 5 × 5 の risk_matrix を ax.imshow(cmap="YlOrRd", vmin=1, vmax=5) で塗り、二重ループの ax.text でレベルの数字を重ね、minor ticks に白いグリッドを引いてセルを区切ります。読み終えると、レベル 4 以上のセルだけ文字を白にする工夫を含めてこの表を再現し、自分のリスク一覧を該当セルにマッピングできるようになります。

直感 #

プロジェクトのリスクを 20 件洗い出し、それぞれに「起きやすさ」と「起きたときの被害」を 5 段階で付けたとします。2 つのスコアを掛け算で 1 つの数値にする方法もありますが、確率 1 × 影響 5 と確率 5 × 影響 1 が同じ 5 点になり、「滅多に起きないが致命的」と「よく起きるが軽微」の区別が消えます。リスクマトリクスは 5 × 5 のマス目を用意し、マスごとに優先度レベルをあらかじめ決めて色を塗っておきます。各リスクを該当するマスに置けば、同じ色のマスにあるリスクは同じ扱い、赤いマスは最優先、黄色のマスは監視のみ、と判断がルール化されます。

Python で描く #

次のコードは、優先度レベル 1〜5 を入れた 5 × 5 の行列を imshow で塗り、各セルの中央にレベルの数字を書き、セルの境界に白線を引きます。カラーバーで色とレベルの対応を示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import numpy as np
import matplotlib.pyplot as plt

levels = ["低", "やや低", "中", "やや高", "高"]
impact = ["軽微", "限定的", "中程度", "重大", "致命的"]

risk_matrix = np.array(
    [
        [1, 1, 2, 3, 4],
        [1, 2, 2, 3, 4],
        [2, 2, 3, 4, 4],
        [2, 3, 4, 4, 5],
        [3, 4, 4, 5, 5],
    ]
)

fig, ax = plt.subplots(figsize=(5.8, 5.2))
im = ax.imshow(risk_matrix, cmap="YlOrRd", vmin=1, vmax=5)

ax.set_xticks(range(len(levels)), labels=levels)
ax.set_yticks(range(len(impact)), labels=impact)
ax.set_xlabel("発生確率")
ax.set_ylabel("影響度")
ax.set_title("リスクマトリクス")

for i in range(risk_matrix.shape[0]):
    for j in range(risk_matrix.shape[1]):
        risk = risk_matrix[i, j]
        color = "white" if risk >= 4 else "#0f172a"
        ax.text(j, i, risk, ha="center", va="center", color=color, fontsize=12)

cbar = fig.colorbar(im, ax=ax, fraction=0.046, pad=0.04)
cbar.set_label("優先度レベル", rotation=270, labelpad=15)

ax.set_xticks(np.arange(-0.5, 5, 1), minor=True)
ax.set_yticks(np.arange(-0.5, 5, 1), minor=True)
ax.grid(which="minor", color="white", linewidth=1.5)
ax.tick_params(which="minor", bottom=False, left=False)

fig.tight_layout()

plt.show()

ヒートマップでマトリクス化すると、緊急で対処すべき項目が一目瞭然になりますの図

実行結果の読み方 #

右下の濃い赤(レベル 5)が最優先で、発生確率「高」かつ影響度「重大」以上のセルです。左上の薄い黄色(レベル 1)は確率「低〜やや低」で影響「軽微〜限定的」の組み合わせで、監視だけで済ませる領域です。同じレベル 4 でも「確率 中 × 影響 致命的」と「確率 高 × 影響 中程度」の 2 つがあり、対処の内容(発生を防ぐか、被害を減らすか)は違うので、セルの位置まで見て対策を選びます。実際のリスク項目は、該当セルに ax.text で項目番号を書き込むか、ax.scatter で点を置いて重ねます。

使いどころと落とし穴 #

リスクマトリクスは、リスクアセスメントの結果を経営層や関係者と共有し、対策の優先順位に合意するための標準的な図です。3 × 3 の粗いグリッドでは多くのリスクが同じセルに集まって順位が付けられないので、5 × 5 以上の粒度にしてください。確率と影響の評価は主観に流れやすく、同じリスクでも評価者で 2 段階ずれることがあるため、「過去 1 年に 3 回以上 = 確率 高」のように定量的な基準を先に決めて評価します。定量的なリスク量が手元にあるなら、モンテカルロシミュレーションの結果を散布図で示す方が客観的で、マトリクスは「定性評価を揃えて並べる」場面に向いています。