2016年2月9日火曜日

超シンプルな BN:AgentRisk 登場

確率の Chain Rule」からの続き。

Norman Fenton, Martin Neil 著 "Risk Assessment and Decision Analysis with Bayesian Networks" の "第 From Bayes' Theorem to Bayesian Networks" をもとにした。

以下は本書図 6.1 で、"Train strike(列車ストライキ)" と "Norman lateNorman 遅刻)" の関係。
なんてことはない図だが、本書では "regression model(回帰モデル)" と記されている。これも立派な "Baysian Network" のモデルで、相関関係を定義する重要なもの。詳細は本書に譲るが、このシンプルなモデルは感覚的に理解できる。

過去のデータから「列車ストライキが起こる確率」は算出される。例えば

 表 6.1:列車ストライキの確率
 False  0.9
 True   0.1

そして、列車ストライキが原因で「Norman が遅刻する確率」も、経験的に算出できる。

 表 6.2:「列車ストライキの確率」のもとで「Norman が遅刻する確率」
    Train strike False  True
 False            0.9   0.2
 True             0.1   0.8

表 6.2 は「Two-way 確率テーブル」で条件付き確率の一覧。

T: 列車ストライキ、N: Norman 遅刻 として「Norman が遅刻する確率」は表 6.1, 6.2 から

  P(N = True) = P(N = True | T = True)P(T = True)
                        + P(N = True | T = False)P(T = False)
                     = 0.8 × 0.1 + 0.1 × 0.9
                     = 0.17

17 % が「Norman が遅刻する確率」。

Norman が遅刻した場合、列車ストライキの確率」は、Bayes' rule から以下のように求まる。

 P(T = True|N = True) = {P(N = True | T = True)P(T = True)} / P(N = True)
    = (0.8 × 0.1) / 0.17
    = 0.47059

算出前(Norman が遅刻する前)は、10 % であった「列車ストライキの確率」が、47 %に更新された。

ここまでは、今まで何度も取り上げてきた「算出方法」。以下から、本書の特徴でもある AgentRisk を使った分析を行う。


AgentRisk
左が 17 % の「Norman 遅刻の確率」、右が「Norman が遅刻した場合、列車ストライキの確率」47 % 。

AgentRisk では、事象の相関関係の定義に、表 6.1, 6.2 のような確率テーブル値を入力して、Bayes' rule の算出は自動的に行われる。今回のような単純な相関関係では、手計算やスクリプトで算出できるが、複雑な関係の場合はこのようなソフトウェアは不可欠だろう。

最後に、過去に何度も行った「乳がん検診で陽性と診断された場合、実際に乳がんであるある確率」を AgentRisk で求める。事前の乳がん率と検診精度の確率テーブルは以下の通り。

  乳がん率
 False  0.992
 True   0.008

 検診精度
    Cancer False  True
 False     0.93   0.1
 True      0.07   0.9

次が AgentRisk の結果で、左が確率更新前、右が確率更新後。
右図で、"Screening(検診)" に陽性(True)を設定して、"Cancer(乳がんである確率)"  9 % を得ている、これは実際の計算と同じ結果

前回は算出しなかった

「陰性と診断された場合、乳がんである確率」

は、左のように Screening = False(陰性)として、0.1% 未満の確率という結果を得られる。

複数要因の BN モデル」に続く。

0 件のコメント:

コメントを投稿