photo of pen on top of notebook

非ガウス性の統計的因果推論

いつか調べるとしていた因果分析ツールですが、統計的因果推論について調べてみることにしました。

LiNGAM

LiNGAMは、Linear Non-Gaussian Acyclic Modelの略称です。観測されたデータに対して、何の事前知識もなしに因果構造を発見する方法で、近年では因果探索(Causal Discovery)と呼ばれているようです。[1]


前提条件

データの事前知識は必要ありませんが、いくつかの仮定を満たす必要があります。

  1. 観測変数が因果順に並んでいること
    • =リストの後方の変数が、前方の変数の原因にはならない
    • =再帰構造にならない
    • =因果グラフは、Directed Acyclic Graphs(DAG)になる
  2. ある変数 x_jは、それより前方の変数 x_i 線形関数で表される
    •  x_j = \sum_{k(i)<k(j)} b_{ij}x_i + e_i + c_i
    • e_iは、撹乱、誤差、あるいはノイズ
    • c_iは、任意定数
    • k(i)は、I番目の変数の因果順序の位置
  3. 撹乱e_iの特性
    • ゼロ分散ではない非ガウス分布に従う連続値乱数
    • 互いに独立: p(e_1,e_2,\cdots)=\prod_{i}p(e_i)

これらの仮定は、観測されていな交絡因子(cofounders)が無いこと(因果的十分性)を暗黙に仮定しています。


方程式

2番目の線形関数であるという仮定は、次のようなベクトル行列形式で書くことができます。

 \mathrm{\bf x} = \mathrm{\bf Bx}+\mathrm{\bf e}

そして、この方程式は連立線形方程式になっているので、次のように解くことができます。

 \mathrm{\bf x} = \left(\mathrm{\bf I}-\mathrm{\bf B}\right)^{-1}\mathrm{\bf e}=\mathrm{\bf Ae}

これは、「解法アルゴリズムの選び方」で説明した通り、解を線型結合(線形関数)に無理やり置き換えたことで、因果関係を連立線形方程式問題に置き換えたと見ることができます。

ここで、行列Bは、因果順の仮定により、対角成分ゼロの下三角行列になります。そのため、行列IBは、対角成分1の下三角行列にになります。これは、LU分解の行列Lと同じ形です。そして、この形の行列の場合、ガウスの消去法で必ず解を求めることができます。逆行列Aも、うまく順序を入れ替えると、対角成分がある下三角行列になります。


解法

さて、問題 \mathrm{\bf x} = \mathrm{\bf Ae}は、観測データxが既知で、混合行列Aと撹乱eが未知の場合、線形の独立成分分析(Independent Component Analysis : ICA)の問題に等しくなります。この問題は、十分に多い観測データxがあると、混合行列Aを推定できることが示されています。ここで、独立成分とは、誤差eのことです。

ただし、ICAは因果関係にとって不都合な点が2つあります。それは次のような点です。

  • ICAでは独立成分の順序は任意だが、因果関係では因果順に並んでいなければならない(仮定1)
  • ICAでは行列Aを適切にスケーリングするが、因果関係では対角成分が1に固定されていなければならない

そのため、因果関係を推定するには、ICAを計算する→規格化する→因果順に置換する、という手順が必要です。


アルゴリズム

以上により、仮定1〜3の下では、次のような因果発見アルゴリズムを構築できます。

LiNGAMアルゴリズム

  1. データ行列X(m×n)を、ICAによりX=ASと分解し、W=A^{-1}とする。(m:成分数、n:サンプル数、m<<n、S:撹乱行列(m×n)、A:混合行列(m×m))
  2. Wの成分を並べ替え、非ゼロ対角成分を持つW’を作成する。(ゼロ割防止)
  3. W’の各行をその行の対角成分で割り、対角成分を1にする。(規格化)
  4. B’=IW’を計算する。
  5. B=PB’P^Tが下三角行列となるような置換行列Pを見つけるため、f\left(\mathrm{\bf P}\right)=\sum_{i\ge j}B_{ij}^2を最小化する。(因果順)

ステップ5の最適化問題の目的関数f(P)は、下三角行列B対角成分および上三角成分はゼロにならないといけないことに由来します。各成分を二乗することで正負成分の打ち消しを防ぎ、二乗和f(P)=0の時の置換行列Pを探索する最適化問題にしています。(参考記事

アルゴリズムのより詳細な説明は、参考文献1をご覧ください。


DirectLiNGAM

現在では、上記のICAを使ったLiNGAMではなく、DirectLiNGAMの方がデフォルトになっているようです。

ICAを使ったLiNGAMには、2つの問題点がありました。[2]

  • ICAアルゴリズムで行われる最適化が、パラメータの設定のよっては収束しない。または、収束するパラメータを見つけることが難しい。
  • 置換アルゴリズムがスケール不変ではなく、スケールによっておかしな因果順が推定されてしまう。しかし、本来、因果順はスケールに依存しないはずである。

これらを解決するために、DirectLiNGAMではICAを使わずに因果探索を行います。


アプローチ

DirectLiNGAMの計算アプローチは、下図のように、補題1・補題2・系1の3つの矢印をたどることで計算されます。

LiNGAMでは入力データx_iについて因果探索を行いましたが、DirectLiNGAMでは入力データの残差r_i^{(j)}について因果探索を行う点が大きく異なります。

DirectLiNGAMのアプローチでは、ICAは、入力データから残差への変換に置き換えられます。


理論

補題1は、次のようなものです。

補題1

インプットデータ\mathrm{\bf x}が、厳密にLiNGAM条件(3つの前提とデータの有限性)を満たすとする。x_ix_jについて回帰された残差をr_i^{(j)}=x_i-\displaystyle\frac{\mathrm{cov}(x_i,x_j)}{\mathrm{var}(x_j)}x_j,\ \left(i\neq j\right)と書くことにする。このとき、x_jが、全ての残差r_i^{(j)} (i = 1,2,\cdots,j-1,j+1,\cdots)と独立であれば、x_jは外生変数である。

Shimizu, S., et. al (2011)

外生変数とは、因果の連鎖の出発点になる変数のことで、出力の矢印しかない変数のことです。言い換えると、入力データの中には説明変数となるデータが存在しない変数のことで、入力されたどのデータにも従属しない変数(=独立変数)となります。

補題1は、あるデータx_jが、それ以外のデータとの回帰残差r_i^{(j)}が全て独立なら、独立変数であることを示しています。ただし、重要なのは逆の場合で、データx_jと残差r_i^{(j)}非独立の場合、x_i\rightarrow x_jという従属関係があることになります。

この非独立性が成立するには、撹乱e_i非ガウス性(ガウス分布にならないこと)が必要です。これは、Darmois-Skitovitchの定理に依拠しています。

Darmois-Skitovitchの定理

ランダムな独立変数s_i, (i=1,2,\cdots,q)の線型結合によって、2つのランダムな変数y_1, y_2を、 y_1=\displaystyle\sum_{i=1}^q\alpha_i s_i,\quad y_2=\displaystyle\sum_{i=1}^q\beta_i s_iと定義する。このとき、y_1,\ y_2が独立ならば、\alpha_j\beta_j\neq 0となる全ての変数s_jはガウス分布となる。

Shimizu, S., et. al (2011)

この定理は、逆に解釈すると、変数y_1,\ y_2が非独立ならば変数s_jは非ガウス分布になることを示しています。ここで、y_1,\ y_2,\ s_jが、x_j,\ r_i^{(j)},\ e_lとなれば、非独立性のために撹乱の非ガウス性が必要なことを示すことができます。

証明方針は、外生変数はx_i=e_iと撹乱そのものになることを使って、(1)全ての従属関係を代入すれば任意の変数はx_j=f(\mathrm{\bf e})と撹乱のみで表示できること、(2)このように外生変数のみで表示された変数を代入すれば残差もr_i^{(j)}=g(\mathrm{\bf e})と撹乱のみで表示できること、(3)この二つにDarmois-Skitovitchの定理を適用することで、非独立なら非ガウスを示すことができます。

詳しい証明は、参考文献2をご覧ください。


補題2とその系1は、次のようなものです。

補題2

インプットデータ\mathrm{\bf x}が、厳密にLiNGAM条件(3つの前提とデータの有限性)を満たすとする。さらに、x_jは外生変数だとする。ここで、x_j, (i\neq j)で回帰された(p-1)個のx_iの残差r_i^{(j)}を集めた(p-1)次元の残差ベクトルを\mathrm{\bf r}^{(j)}と書くことにする。このとき、残差ベクトル\mathrm{\bf r}^{(j)}は、\mathrm{\bf r}^{(j)}=\mathrm{\bf B}^{(j)}\mathrm{\bf r}^{(j)}+\mathrm{\bf e}^{(j)}を満たす。ここで、\mathrm{\bf B}^{(j)}は行と列の同時並べ替えで厳密に下三角になるように並べ替えられる行列で、\mathrm{\bf e}^{(j)}の要素は非ガウス分布かつ互いに独立である。

Shimizu, S., et. al (2011)

系1

インプットデータ\mathrm{\bf x}が、厳密にLiNGAM条件(3つの前提とデータの有限性)を満たすとする。さらに、x_jは外生変数だとする。残差r_i^{(j)}の因果順序をk_{r^{(j)}}(i)と書き、外生変数x_iの因果順序をk(i)と書くことにする。このとき、残差r_i^{(j)}の因果順序は、変数x_iの因果順序は同じになる。すなわち、k_{r^{(j)}}(l)< k_{r^{(j)}}(m) \Leftrightarrow k(l)< k(m)となる。

Shimizu, S., et. al (2011)

直観的には、データxがLiNGAM型の方程式x=Bx+eを満たす場合、データの線型結合である回帰残差rもr=Br+eを満たすことは想像できると思います。

ですが、補題2と系1の証明はいまいち理解できませんでした。もし、理解できる方がいたら教えていただけると助かります。


アルゴリズム

これらを踏まえると、次のようなアルゴリズムを組むことができます。

DirectLiNGAMアルゴリズム

  1. 初期化
    • p次元乱数ベクトル\mathrm{\bf x}
    • 添字集合U=\{1,2,\cdots,p\}
    • p×n次元乱数行列\mathrm{\bf X}
    • 空のカーネル添字集合K=\{\phi\}
    • 外生変数の固定添字m:=1
  2. For j=1…p-1:
    1. Kに含まれずUに含まれるの添字iについて、x_jに対してx_iを最小二乗法で回帰計算し、残差ベクトル\mathrm{\bf r}^{(j)}を作る。
    2. 同様に、データ行列\mathrm{\bf X}から残差行列\mathrm{\bf R}^{(j)}を作成する。
    3. 残差ベクトル\mathrm{\bf r}^{(j)}に最も独立したデータx_mを探索する。
    4. 独立データの添字mを、Kに追加する。
    5. \mathrm{\bf x}=\mathrm{\bf r}^{(m)}\mathrm{\bf X}=\mathrm{\bf R}^{(m)}
  3. 残ったデータの添字をKに追加する。(Kは添字が因果順序に並んでいる)
  4. Kの順序で下三角行列Bを構成し、元のデータ\mathrm{\bf x}\mathrm{\bf X}を最小二乗法や最尤法で回帰して、行列Bの要素を計算する。

まとめ

LiNGAMとは、Linear Non-Gaussian Acyclic Modelの略称で、次の3つの前提を持つ因果探索アルゴリズムです。

  1. 因果グラフの非循環性(DAG性)
  2. 因果の線形性
  3. 撹乱(誤差)の非ガウス性

上記の条件を持つとき、独立成分分析(ICA)と行列Bを下三角行列へ置換することで、因果グラフを推定できます。

また、DirectLiNGAMとは、最小二乗法による回帰の残差空間に問題を置き換えて、ICAを使わずにLiNGAMと同じ因果を導出する方法です。

LiNGAMの弱点は、3つの前提にあります。この前提から、次の2つの限界があることが分かります。

  • 例えば、入手したデータに循環がないことを予め知ることはできないかもしれません。その場合、LiNGAMによって得られた因果が正しいことは保証できません。
  • 原因と結果が線形の関係にはならないかもしれません。例えば、ある一定値までは増加し、それを超えると減少に転じる逆U字型の関係は、線形では表せません。

このような限界はあるものの、事前知識なしでデータだけを使って因果探索を行う方法は少ないので、まずは使ってみると良いのではないでしょうか。

参考文献

  1. Shimizu, S., Hoyer, P. O., Hyvärinen, A., Kerminen, A., & Jordan, M. (2006). A linear non-Gaussian acyclic model for causal discovery. Journal of Machine Learning Research7(10).
  2. Shimizu, S., Inazumi, T., Sogawa, Y., Hyvärinen, A., Kawahara, Y., Washio, T., … & Bollen, K. (2011). DirectLiNGAM: A direct method for learning a linear non-Gaussian structural equation model. The Journal of Machine Learning Research12, 1225-1248.

コメントを残す