因果推論

【因果推論】d分離(d-separation)の概念

【因果推論】d分離(d-separation)の概念
naoki-hn

確率的グラフィカルモデルの重要な概念である d 分離(d-separation)について解説します。d 分離は、グラフ構造に関する概念ですが因果推論でも重要な概念です。

d 分離(d-separation)とは?

d 分離の概要

因果推論では、変数間の関係を因果ダイアグラム(Causal Diagram)、特に有効非巡回グラフ(DAG: Directed Acyclic Graph)を用いて表現することが一般的です。因果ダイアグラムについては「因果ダイアグラムの概要」を参考にしてください。

グラフにおける d 分離(d-separation)とは、2 つのノード(変数)の集合 X と Y の間の統計的依存関係が遮断されることを意味します。つまり、d 分離が成り立つとき、適切な確率分布のもとで X と Y は独立となります。ただし、全ての確率分布で成り立つわけではなく、特にベイジアンネットワークの仮定(DAG に沿った因果構造をもつ確率分布)では、d 分離であれば統計的独立が保証されます。

なお、d 分離は因果推論に特化した概念ではなく、グラフィカルモデル全般において使用される統計的独立性の判断基準です。例えば、ベイジアンネットワークや機械学習における確率的モデリングの分野でも重要な役割を果たします。

因果推論の分野では、d 分離を用いることで観測データに基づく推論の際に、どの変数をコントロールするべきか判断するのに役立ちます。この記事では、d 分離の概要について紹介します。

d 分離の定式化

d 分離の説明していくにあたってまずは一般的な考え方として表現します。

ノードの集合として X、Y、Z があるとします。より簡単にはノード 1 つで考えることですが、集合を 1 つと考える場合と思っていただければと思います。このとき、X と Y を結ぶすべてのパスが Z によってブロックされるとき X と Y は Z によって d 分離されていると言います。

例えば、例として以下のようなグラフが考えられます。上の図は複数ノードから成り立っており、集合 X、Y、Z に分類することができます。下の図は各集合が 1 つのノードで成り立っている場合の例です。

d分離のイメージ図

これらのグラフが与えられたときにパスがブロックされて d 分離されるかの判断基準について以降で説明していきます。

チェーン、フォーク、コライダーとの関連性

因果推論の因果ダイアグラムにおいて重要な構造としてチェーン、フォーク、コライダーという構造があります。これらの構造については「チェーン、フォーク、コライダーの構造と特徴」を参考にしてください。

これらの構造と d 分離の関係は以下のように整理できます。X と Y の関係性において Z に条件付けるかどうかで d 分離(パスがブロック)されるかが判断できます。

構造構造関係性
チェーン構造X → Z → Y[Z に条件付けない場合]
X から Y へのパスは開いており、X と Y は Z を介して関連を持つ可能性があります。Z は媒介因子と呼ばれます。

[Z に条件付ける場合]
X と Y のパスは閉じ、X と Y は条件付き独立(d 分離)となります。
フォーク構造X ← Z → Y[Z に条件付けない場合]
X と Y は Z を介して関連を持つ可能性があります。Z は交絡因子と呼ばれ、Z によって X とY の間に相関が生じることがあります。

[Z に条件付ける場合]
X と Y の間の依存関係が取り除かれて、条件付き独立(d 分離)となります。
コライダー構造X → Z ← Y[Z に条件付けない場合]
X と Y は統計的に独立(d 分離)しています。

[Z に条件付ける場合]
Z に条件付けると、X と Y の間に見せかけの相関が生じます。これをコライダー・バイアスと言います。

【補足】「条件付ける」と「コントロールする」の違い

因果推論の勉強をしていると「条件付ける」という言葉や「コントロールする」という言葉が出てきます。これらについては、使われ方によってほぼ同じ意味で使われることがありますが、厳密にはニュアンスが少し異なります。

条件付ける(Conditioning)

「条件付ける」という言葉は、統計的な意味合いが強い場合で使用されます。確率分布の条件を設定することを指していて条件付確率 P(X, Y | Z) のように表されます。

あるノード(変数)の情報を得ることにより確率分布が変わるイメージです。例えば、ある病気の診断 Z を知ったうえで、遺伝子 X と生活習慣 Y の関係を考えるような場合、Z に条件付けると言います。

コントロール(Controlling)

「コントロールする」という言葉は、因果推論の文脈で使われることが多いです。「ある変数の影響を取り除く」ことを意図します。

実際のデータ分析では、回帰モデルの説明変数として対象変数を入れることをコントロールすると表現します。例えば、年収 Z をコントロール(年収帯を固定するなど)することで、教育水準 X と健康状態 Y の関係性を見極めるような場合です。

どのように使うべきか

まとめてみると「条件付ける」と「コントロールする」という表現は以下のように使い分けることが適切です。

  • d 分離の文脈:「条件付ける」という表現が適切
  • 因果推論の文脈:「コントロールする」という表現が適切

まとめ

確率的グラフィカルモデルの重要な概念である d 分離(d-separation)について解説しました。d 分離は因果推論に特化した概念ではなく、グラフィカルモデル全般において使用される統計的独立性の判断基準ですが、この記事では因果推論に絡めつつ説明をしました。

d 分離を判断するためには、チェーン、フォーク、コライダーといったグラフにおける重要な構造に紐づけて調べる必要があります。d 分離を用いることで観測データに基づく推論の際に、どの変数をコントロールするべきか判断するのに役立ちます。d 分離についてぜひ学んで理解を深めてみてください。

あわせて読みたい
【Python Tech】プログラミングガイド
【Python Tech】プログラミングガイド
ABOUT ME
ホッシー
ホッシー
システムエンジニア
はじめまして。当サイトをご覧いただきありがとうございます。 私は製造業のメーカーで、DX推進や業務システムの設計・開発・導入を担当しているシステムエンジニアです。これまでに転職も経験しており、以前は大手電機メーカーでシステム開発に携わっていました。

プログラミング言語はこれまでC、C++、JAVA等を扱ってきましたが、最近では特に機械学習等の分析でも注目されているPythonについてとても興味をもって取り組んでいます。これまでの経験をもとに、Pythonに興味を持つ方のお役に立てるような情報を発信していきたいと思います。どうぞよろしくお願いいたします。

※キャラクターデザイン:ゼイルン様
記事URLをコピーしました