因果推論(Causal Inference)は、ある出来事や要因が他の出来事にどのように影響を与えるかを明らかにするための分析手法です。因果推論の重要な概念である因果のはしごについて紹介します。
Contents
因果推論とは
因果推論(Causal Inference)とは、データの中に隠された因果関係を特定して「何が何に影響を与えるのか?」を解明するための手法のことを言います。例えば、マーケティングで「新しいプロモーションを導入する」と「売り上げが増加する」という因果関係を見極める際などに使用されます。
よくデータ分析では相関関係の有無が議論されますが、相関があることと因果があることは全く異なります。この部分を十分に理解しておかないと誤った分析結果を導き出してしまう可能性があるため注意が必要です。
因果推論の核心は、変数への介入がどのように出力に作用するのかや、実際には起こらなかった反事実的なシナリオの出力に対して分析することです。因果関係について理解するための重要な概念として「因果のはしご」という概念があります。
この記事では、因果推論で重要な概念となる「因果のはしご」について概要を紹介します。
※因果推論について歴史を含めて学びたい方は以下の「因果推論の科学「なぜ?」の問いにどう答えるか」がおすすめです。ぜひ読んでみてください。
因果のはしご
「因果のはしご(Ladder of Causation)」は、ジューディア・パールさんが提唱した因果推論の概念モデルです。因果のはしごは、因果推論の中核となる概念で、因果関係を理解する能力を3つの段階に分けて分類しています。このモデルは、因果推論の理論的基盤として広く活用されています。
第1段目:関連(Association)
因果のはしごの第1段目は「関連(association)」です。
この段階は「見ること」「観察すること」に該当しており、環境における規則性に気づくことができるようになります。データ分析でよく出てくる相関や回帰といった分析もデータ間の関連を突き止めるための代表的なものであり、この1段目に該当します。
第2段目:介入(Intervention)
因果のはしごの第2段目は「介入(Intervention)」です。
この段階は「行動すること」に該当しており、環境における条件を意図的に変化させた場合にどのような変化が起こるかを予測できるようになります。データ分析では、複数の変数を使って分析をしますが、その中のうちでとある変数を固定や変化させたときに、分析結果やモデルにどのような変化が起きるかということになります。
この段階は、例えばランダム化比較実験(Randomized Controlled Trial:RCT)のように、特定の要員を意図的に変化させ、その結果の変化を測定する分析が含まれます。
第3段目:反事実(もし、こうしていたらどうなったか?)
はしごの最終段階である第3段目は「反事実(Counterfactual Reasoning)」です。
この段階は「想像すること」に該当しており、環境における条件が実際に起こったものとは異なっていた場合に、結果はどうなっていたかを考える段階です。私たちは、「もし~しなかったら、XXとなっていただろう」ということを予想することができます。この能力は因果関係を理解するうえで非常に重要かつ難しい段階ですが、私たち人間はこの段階に到達しています。
現在のAIはどこにいるのか?
これまで「因果のはしご」と呼ばれる因果関係を理解するための概念を紹介しましたが、現在のAIはその1段目と留まっています。
現状のAIには、回帰・分類・強化学習、ディープラーニング、大規模言語モデル(LLM)など様々あり、これらの技術はデータから相関関係を学び、応答を生成する能力に長けています。人間のように振舞うように感じるため、既に因果のはしごの3段目に到達していると考える方もいるかもしれません。
しかし、これらは観察データに基づいて関連性をモデリングしているだけです。例えばChatGPTは、膨大なデータから得た関連情報をもとに応答しているだけで、介入や反事実を考慮した因果関係の理解には至っていません。
一方で、因果推論の考え方を機械学習に取り込む試みも一部研究で始まっています。このような新たなアプローチを発展させることで、因果のはしごの3段目に到達する可能性があると思っています。AIが因果関係を本質的に理解するためには、さらなる技術革新が必要です。
AI(Artificial Intelligence:人工知能)、機械学習、ディープラーニングといった言葉は、しばしば混同されがちです。AIは人間の知能を模倣する幅広い技術全般を指し、その中にデータから学習・予測を行う機械学習が含まれています。そして、ディープラーニングは機械学習の一分野で、特にニューラルネットワークを深い階層構造で用いる技術です。
これらの用語は指す範囲が異なるため、混同しないよう注意し、それぞれの特徴を理解した上で適切に使いましょう。
因果関係を機械に学ばせるためには?
因果関係を機械に学ばせるためには、因果関係を表現するモデルを明示的に与える必要があります。その中心となるのが「因果ダイアグラム(Causal Diagram)」や「構造的因果モデル(Structual Causal Model:SCM)」です。
因果ダイアグラムは因果関係を視覚的に表現し、通常は有向非巡回グラフ(Directed Acyclic Graph: DAG)として描かれます。一方、SCMはその因果構造を数式やモデルに具体化したものです。これにより、因果推論を数学的に実行可能にします。
因果ダイアグラムを構築するには、データ分析の知識だけではなく、データが存在する領域の「ドメイン知識」が不可欠です。例えば、医療分野では、疾患や治療法、環境要因をよく理解した上で因果ダイアグラムをモデリングする必要があります。
ドメイン知識がなければ、統計的相関と因果関係を区別することは困難です。AIに因果関係を学ばせるには、人間が因果構造を定義し、それをモデルとして提供する必要があります。これにより、AIは介入や反事実といった因果推論を行えるようになります。最終的に、AIと人間の知識を補完的に活用することで、より高度な因果推論の実現が期待できます。
因果ダイアグラムについては「因果ダイアグラムの概要」でまとめているので参考にしてください。
因果推論に役立つPythonパッケージ
因果推論を実践するには適切なツールを使うことが重要です。Pythonには、因果推論に特化した便利なパッケージがいくつか存在しています。これらを活用することで因果ダイアグラムの構築や介入効果の推定、反事実シナリオのシミュレーションを効率的に行うことができます。
代表的なパッケージとして「DoWhy」「EconML」「CausalNex」といったものがあります。これらのパッケージの使い方についてもまた別途まとめてみたいと思います。
まとめ
因果推論の重要な概念である「因果のはしご」について紹介しました。
因果推論は、データ分析をより深く理解し、より正確な意思決定を行うために非常に重要な技術です。現在のAI技術を次の段階に進めるには、因果推論の概念を取り入れていくことが必要不可欠だと思っています。
今回紹介した因果のはしごは、因果推論の中核となる概念で、因果関係を理解する能力を3つの段階に分けて分類したものです。因果推論を学んでいくうえで基盤となる考え方なのでぜひ理解してもらえたらと思います。