StatModeling Memorandum

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

条件付き独立と有向分離を用いた統計モデルの妥当性チェック

この記事では条件付き独立と有向分離を使い、作成したモデルが背景知識と齟齬がないかチェックする方法を紹介します。以下の本の4章と5.3.1項を参考にしています。

Modeling and Reasoning with Bayesian Networks

僕が持っているのは上の一版なのですが、新しい二版が出ているみたいです。

Modeling and Reasoning with Bayesian Networks

Modeling and Reasoning with Bayesian Networks

  • 作者:Darwiche, Adnan
  • 発売日: 2014/08/07
  • メディア: ペーパーバック
以降では単にグラフと言えばDAG(閉路を持たない有向グラフ)を指すことにします。

条件付き独立とは

以降では確率変数の集合を太文字で \textbf{X},\textbf{Y},\textbf{Z}のように太文字で表します。確率変数が1つの場合は X,Y,Zのように表します。

条件付き独立とは「 \textbf{Z}の値が与えられると、 \textbf{X} \textbf{Y}と独立になる」ことを指します。 I(\textbf{X},\textbf{Z},\textbf{Y})で表現します。「\textbf{Z}が与えられると、\textbf{Y}の情報は\textbf{X}を推測する上でヒントにならない。」と表現することもできます。

「確率変数 \textbf{X} \textbf{Y}が独立」とは P(\textbf{x},\textbf{y})=P(\textbf{x}) P(\textbf{y})を意味するのでした。条件付き独立は以下を意味します。

  P(\textbf{x},\textbf{y}|\textbf{z}) = P(\textbf{x}|\textbf{z}) P(\textbf{y}|\textbf{z})

両辺を P(\textbf{y}|\textbf{z})で割ることで、以下の形で表現することもできます( P(\textbf{y},\textbf{z}) \neq 0とします)。

  P(\textbf{x}|\textbf{y},\textbf{z}) = P(\textbf{x}|\textbf{z})

あるグラフィカルモデル Gが与えられると、たちどころに各ノード Xについて  I(X, Parents(X), Non\_Descendants(X))が成り立ちます。ここで Parents(X) Xの親で、 Xへ直接矢印が向いているノードの集合です。Descendants(X)Xの子孫、すなわち Xから矢印の向きに沿ってたどりつけるノードの集合です。したがって Non\_Descendants(X)は子孫以外の集合です(ただし Parents(X)は除く)。

それでは上記以外の条件付き独立はグラフィカルモデル Gに含まれていないのでしょうか。いいえ、次に挙げる性質で他の条件付き独立を導くことができます。

条件付き独立の諸性質

ここでは4つだけ取り上げます。

性質の名前 解釈
対称
symmetry
 I(\textbf{X},\textbf{Z},\textbf{Y}) = I(\textbf{Y},\textbf{Z},\textbf{X})  \textbf{z}が与えられた場合、\textbf{y}の情報が\textbf{x}のヒントにならなければ、\textbf{x}の情報もまた\textbf{y}のヒントにならない。その逆も然り。
分解
decomposition
 I(\textbf{X},\textbf{Z},\textbf{Y} \cup \textbf{W})ならば
  I(\textbf{X},\textbf{Z},\textbf{Y})かつ
  I(\textbf{X},\textbf{Z},\textbf{W})
\{\textbf{y},\textbf{w}\}の情報が\textbf{x}のヒントにならなければ、その一部である\textbf{y}\textbf{w}\textbf{x}のヒントにならない。
弱結合
weak union
 I(\textbf{X},\textbf{Z},\textbf{Y} \cup \textbf{W})ならば
  I(\textbf{X},\textbf{Z} \cup \textbf{W},\textbf{Y})かつ
  I(\textbf{X},\textbf{Z} \cup \textbf{Y},\textbf{W})
\{\textbf{y},\textbf{w}\}の情報が\textbf{x}のヒントにならなければ、その一部である\textbf{w}が与えられても残りの\textbf{y}の情報はヒントにならない。\textbf{y}を与えた場合も同様。
縮約
contraction
 I(\textbf{X},\textbf{Z},\textbf{Y})かつ
 I(\textbf{X},\textbf{Z} \cup \textbf{Y},\textbf{W})ならば
  I(\textbf{X},\textbf{Z},\textbf{Y} \cup \textbf{W})
関連のない \textbf{y}が与えられたあとで\textbf{w}の情報が\textbf{x}のヒントにならなければ、はじめからそれらを合わせた\{\textbf{y},\textbf{w}\}の情報もヒントにならない。

備考

  • 合成(composition)

以下の「合成(composition)」は一般に成り立たない。縮約(contraction)との違いに注目。

  I(\textbf{X},\textbf{Z},\textbf{Y})かつ I(\textbf{X},\textbf{Z},\textbf{W})ならば I(\textbf{X},\textbf{Z},\textbf{Y} \cup \textbf{W})

  • 分解(decomposition)から導かれること

XをあるグラフGのノードとすると、すべての \textbf{W} \subseteq Non\_Descendants(X)に対し、 I(X,Parents(X),\textbf{W})が成り立つ。

  • 弱結合(weak union)から導かれること

XをあるグラフGのノードとすると、任意の \textbf{W} \subseteq Non\_Descendants(X)に対し、 I(X,Parents(X) \cup \textbf{W}, Non\_Descendants(X) \setminus \textbf{W})が成り立つ。

証明

各性質の証明です。興味なければ飛ばしてください。本に載っていなかったので僕が足したものです。間違っていたらすみません。

  • 対称(symmetry)の証明

 P(\textbf{x},\textbf{y}|\textbf{z}) = P(\textbf{x}|\textbf{z}) P(\textbf{y}|\textbf{z}) = P(\textbf{y}|\textbf{z}) P(\textbf{x}|\textbf{z}) = P(\textbf{y},\textbf{x}|\textbf{z})

  • 分解(decomposition)の証明

 P(\textbf{x},\textbf{y}|\textbf{z}) = \sum_{\textbf{w}} P(\textbf{x},\textbf{y},\textbf{w}|\textbf{z}) = \sum_{\textbf{w}} P(\textbf{x}|\textbf{z}) P(\textbf{y},\textbf{w}|\textbf{z}) = P(\textbf{x}|\textbf{z}) P(\textbf{y}|\textbf{z})

2つめの等号で仮定を使っています。

  • 弱結合(weak union)の証明

 P(\textbf{x},\textbf{y}|\textbf{z},\textbf{w}) = \frac{P(\textbf{x},\textbf{y},\textbf{w}|\textbf{z})}{P(\textbf{w}|\textbf{z})} = \frac{P(\textbf{x}|\textbf{z}) P(\textbf{y},\textbf{w}|\textbf{z})}{P(\textbf{w}|\textbf{z})} = P(\textbf{x}|\textbf{z}) P(\textbf{y}|\textbf{z},\textbf{w}) = P(\textbf{x}|\textbf{z},\textbf{w}) P(\textbf{y}|\textbf{z},\textbf{w})

2つめの等号で仮定を使っています。また、仮定に分解(decomposition)を適用するとI(\textbf{X},\textbf{Z},\textbf{W})、すなわち P(\textbf{x}|\textbf{z})=P(\textbf{x}|\textbf{z},\textbf{w})が成り立つので、それを最後の等号で使っています。

  • 縮約(contraction)の証明

 P(\textbf{x},\textbf{y},\textbf{w}|\textbf{z}) = P(\textbf{x},\textbf{w}|\textbf{y},\textbf{z}) P(\textbf{y}|\textbf{z}) = P(\textbf{x}|\textbf{y},\textbf{z}) P(\textbf{w}|\textbf{y},\textbf{z}) P(\textbf{y}|\textbf{z})  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = P(\textbf{x}|\textbf{y},\textbf{z}) P(\textbf{y},\textbf{w}|\textbf{z}) = P(\textbf{x}|\textbf{z}) P(\textbf{y},\textbf{w}|\textbf{z})

2つめの等号で2番目の仮定を使っています。最後の等号で1番目の仮定を使っています。

有向分離とは

グラフィカルモデルが大きくなると、あるノードの集まり \textbf{X} \textbf{Y}の条件付き独立を調べるのは大変になります。もっと簡単かつ効率的に条件付き独立を判定するにはどうすればいいでしょうか。解決策の一つが有向分離(d-separation)です。

交わりを持たない \textbf{X},\textbf{Y},\textbf{Z}があって、あるグラフGにおいて\textbf{X}\textbf{Y}\textbf{Z}によって有向分離(d-separated)されているとは、 \textbf{X} \textbf{Y}をつなぐすべてのパス(矢印の向きは無視してよい)が \textbf{Z}によってブロックされていることを指します。dsep(\textbf{X},\textbf{Z},\textbf{Y})と表記します。

ブロックの前に「バルブが閉まっている」の説明をします。以下の3つの場合にA_1A_2が独立になり、A_1A_2の間のバルブが閉まっていると言います。

  • A_1\rightarrow W\rightarrow A_2というパスの形において、 Wが与えられている場合
  • A_1\leftarrow W\rightarrow A_2というパスの形において、 Wが与えられている場合
  • A_1\rightarrow W\leftarrow A_2というパスの形において、 Wとその子孫が与えられていない場合

「ブロックされている」とはパスのどこかで、少なくとも1つのバルブが閉まっていることです。この定義によると、バルブがそもそもない場合(すなわち直接矢印で X \rightarrow Yとなっている場合)にはブロックされようがありません。

この部分の説明と証明はPRML下の8.2節が分かりやすいです。

実際の dsep(\textbf{X},\textbf{Z},\textbf{Y})かどうかの判定方法は以下の手順で行うのが簡便です。

  1.  \textbf{X} \cup \textbf{Y} \cup \textbf{Z}に含まれない葉ノード(矢印が出ていないノード)を取り除く。葉ノードへ入る矢印も除く。グラフが変わらなくなるまでこのステップを繰り返し適用する。
  2.  \textbf{Z}から出ている矢印を取り除く。
  3.  \textbf{X} \textbf{Y}をつなぐパス(矢印の向きは無視してよい)が存在しなければ dsep(\textbf{X},\textbf{Z},\textbf{Y})

そして有向分離と条件付き独立は以下の定理で結びつきます。

 dsep(\textbf{X},\textbf{Z},\textbf{Y}) ならば  I(\textbf{X},\textbf{Z},\textbf{Y})

なお、無向グラフではA_1 - W - A_2というパスの形において、 Wが与えられている場合がブロックとなります。つながっているかどうかだけ見ればよいので簡単です。

有向分離の練習

本のFig4.12から引用です。以下のDAGを考えます。

f:id:StatModeling:20201106182234p:plain

  • 例1

上のDAGにおいて、 \textbf{X}=\{A,S\} \textbf{Y}=\{X,D\} \textbf{Z}=\{B,P\}によって有向分離されているか考えます。

f:id:StatModeling:20201106182237p:plain

データが与えられた確率変数は黒丸に白文字で書くのが慣例なのでそうしています。それでは実際に手順を適用してみましょう。判定方法の手順1によりDを取り除きます。手順2によりP \rightarrow Xの矢印を除きます。すると、\textbf{X}\textbf{Y}をつなぐパスはありませんので dsep(\textbf{X},\textbf{Z},\textbf{Y})と判定できます。

  • 例2

上のDAGにおいて、 \textbf{X}=\{T,C\} \textbf{Y}=\{B\} \textbf{Z}=\{S,X\}によって有向分離されているか考えます。

f:id:StatModeling:20201106182241p:plain

同様に判定方法の手順1によりDを取り除きます。手順2によりS \rightarrow CS \rightarrow Bの矢印を除きます。すると、\textbf{X}\textbf{Y}をつなぐパスはありませんので dsep(\textbf{X},\textbf{Z},\textbf{Y})と判定できます。

作成したモデルが背景知識と齟齬がないかチェックする例

本のFig5.9からの引用です。病気の診断をするモデルを2つ考えます。

1つめは以下のようなDAGです。モデル1としましょう。

f:id:StatModeling:20201106182246p:plain

2つめは以下のようなDAGです。モデル2としましょう。

f:id:StatModeling:20201106182250p:plain

モデル1がよいのかモデル2がよいのか考えています。いろいろな判断基準があると思いますが、ここでは背景知識とも言える「条件付き独立」と照らし合わせて考えてみます。

  • 「風邪を引いている」と分かっているとします。モデル1では「熱があるか」と「喉が痛いか」は有向分離になりません。「熱があるか」分かれば(恐らく扁桃炎の可能性がアップして)「喉が痛いか」かどうかのヒントになり得ます。一方、モデル2では「コンディション」が分かっているとすると、「熱があるか」と「喉が痛いか」は有向分離となり、条件付き独立になります。
  • モデル1では何もわかっていない状態においても、「体が痛い」と「扁桃炎」、「体が痛い」と「風邪」はそれぞれ有向分離となっており、条件付き独立となります。従って「体が痛い」という情報は「扁桃炎か」どうか「風邪か」どうかのヒントになりません。モデル2では有向分離していないので、「体が痛い」という情報は(インフルエンザの可能性を高め)「扁桃炎」および「風邪」があるかどうかのヒントになり得ます(恐らくこれらの可能性を減らすでしょう)。
  • モデル1では何もわかっていない状態においても、「熱があるか」と「風邪か」は有向分離となっており、条件付き独立となります。従って「熱がない」という情報は「風邪か」どうかのヒントになりません。モデル2では有向分離していないので、「熱がない」という情報は恐らく「風邪である」可能性を高めるでしょう。

このように条件付き独立と有向分離の考え方は背景知識と照らし合わせて統計モデリングに活用することができます。

その他の参考文献

グラフィカルモデルには上記以外にも無向グラフ、I-MAP、Perfect MAP、ネットワーク構造推定などさまざまなトピックがあります。詳しく知りたい読者は上記で挙げた二冊の本を参照してください。

因果推論の身近な話やバックドア基準については上記で挙げた本には載ってませんので、岩波DS3を読むとよいと思います。他の話も分かりやすく、実験者や研究者にオススメです。

岩波データサイエンス Vol.3

岩波データサイエンス Vol.3

  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)