この記事はノバセル Advent Calendar 14日目です。
こんにちは。ノバセルでデータサイエンティストをしている石井です。
因果探索手法であるDirectLiNGAMの概略を、自身の備忘録としてライトに書き留めます。
はじめに
なぜDirectLiNGAMを選んだのか
時系列データや未観測共通原因に対して強くはないなど幾つかの理由で実務利用できる場面は少ないと感じるDirectLiNGAMですが、ノンパラメトリックアプローチな因果探索手法であるLiNGAM系統の考え方を垣間見る上では扱いやすい1手法と考えたためです。
※ 未観測共通原因: 2つ以上の変数の間で未観測だが、これらの変数に影響を与える共通原因
※ ノンパラメトリックアプローチ: 関数形や分布には仮定を置かないアプローチ
本記事で触れること
本記事では、「因果探索の1手法であるDirectLiNGAMが、どのようなプロセスで因果関係を推定するのか」に焦点を当てています。
プロセスを理解するために、DirectLiNGAMでの分析を実行可能なPythonパッケージであるlingamを取り上げ、当該パッケージでの推定プロセスを3部構成で要約する形を取りました。
本記事で触れないこと
- 変数同士が線形関係
- 未観測共通原因がない (潜在的な交絡因子がないとも言える)
といった分析時に受ける制約の詳細について本記事では触れません。
また、「数あるLiNGAM手法の中でのDirectLiNGAMの立ち位置」「分析結果の解釈」「実務利用における諸注意」についても本記事では触れません。
ここでは参考資料としてDirectLiNGAMの研究論文を置くに留めます。
本論
3部構成でプロセスの要約を試みます。
1. 事前準備
2. 因果順序推定
3. 因果効果推定
1. 事前準備
先ずは因果関係について把握している情報を整理します。
例えば、変数Aの増加により変数Bが増加する因果関係が明白である場合、当該情報を以降の推定プロセスで考慮することが可能であり、そのような情報を事前情報行列として整理します。
▼ 事前情報行列の例
行の変数が原因、列の変数が結果にそれぞれ対応する事前情報行列を作成します。
購買 | X UGC | 指名検索 | |
---|---|---|---|
購買 | -1 | 1 | 0 |
X UGC | 1 | -1 | 1 |
指名検索 | 1 | 1 | -1 |
※ UGC: ユーザー生成コンテンツ (Xのユーザー投稿など)
- 「0」: 行変数から列変数への有向経路 (因果関係)は存在しない。
- 「1」: 行変数から列変数への有向経路 (因果関係)が存在する。
- 「-1」: 上記の2つ (0または1)のいずれであるかを判断するための事前情報がない。
上の行列は例えば、指名検索から購買への因果関係が存在することを表します。
参考: lingam 利用方法
2. 因果順序推定
先ずは事前情報行列に基づき、因果関係が決定されている変数ペアを抽出します。
例)
- 指名検索 → 購買
- 指名検索 → X UGC
しかし、これらは2変数間での因果順序であり、全変数間での因果順序は未だ不明瞭です。
換言すれば、記載の例のみからは下記2つの因果順序が考えられ、つまり全変数間での因果順序を定量的に定めることは困難です。
- 指名検索 → 購買 → X UGC
- 指名検索 → X UGC → 購買
では全変数間での因果順序を定量的にどのように定めるのか。
ここで、情報量の観点を取り入れます。
アプローチとしては、処理対象の変数が尽きるまで以下の処理を繰り返し、全変数間での因果順序を推定します。
- 2変数(= 当該変数と他変数群の全組み合わせ)間での”相互情報量を最大エントロピー近似した値”の差分の合計を計算
- 合計値が最大の変数、つまり非ガウス性の差が最も大きい変数を選択
- 選択された変数を因果の始点側に並べ、当該変数を除外
参考: lingam ソースコード
3. 因果効果推定
- プロセス2で推定された因果順序
- Adaptive Lasso
※ Adaptive Lasso: 回帰分析において正則化を行う1手法であり、重要でない変数の効果係数をゼロに縮小させる
これらを活用することで因果効果の推定を試みています。
各変数を目的変数、目的変数よりも因果順序が後ろの変数を説明変数としてAdaptive Lassoを適用し、推定結果が因果効果として扱われます。
▼ イメージ図
参考: lingam ソースコード
以上がDirectLiNGAM (lingam)因果関係推定プロセスの概略です。
おわりに
理論の領域で確立された技術だとしても、現実の事象を十分に表現できるかは往々にして別の話だと考えています。
もしも、変数間に因果の循環がないことを絶対の仮定とする確立された技術があった場合に、当該技術では「指名検索 → X UGC (興味関心投稿) → 購買 → X UGC (レビュー投稿) → 指名検索」のような関係を推定できず、誤った意思決定に繋がることも想定されます。
魅力的な技術が多い昨今だからこそ、手段専攻になりすぎず、目的や障壁などを鑑みた手段を選定できる分析チームでありたい想いです。
参考資料まとめ
- Pythonパッケージ: lingam
- 研究論文: DirectLiNGAM: A Direct Method for Learning a Linear Non-Gaussian Structural Equation Model
- 2021年度知能情報学専攻コロキウム 発表スライド: セミパラメトリックアプローチによる因果探索