データに基づく因果推論がどのように行われるのか、詳しく説明していきます。因果の定義、因果推論に必要な条件、RCTの意義などいろいろまとめていたら、例のごとくすごいボリュームになってしまいました。なお、本記事で使われる用語は、「疫学」の因果推論で使われているものが基本です。同じコンセプトでも分野によって呼び方が違うので、その点はご了承ください。
まずは「因果効果」の定義から
そもそも因果関係なんて得体のしれないものを、どうやって統計的に考えることができるのか。そのためには、まず統計の世界でいう「因果」を定義する必要があります。
なにもこれから説明するものが、「因果」の唯一の定義とはいいません。なにをもって因果関係とするかについては、きっと哲学者の間でディープな議論がなされているとおもいます。
しかし、統計とかデータ分析の文脈で語られる因果関係は反事実モデル(Counterfactual Model)と呼ばれる考え方に基づいて定義されるのが一般的です。
反事実モデルについては以下の記事で軽く触れましたが、もう一度丁寧に確認しておきます。この辺り、余裕で理解しているって方も多いと思うので適当に飛ばしてください。
前回と同じくダイエットの例を使います。スポーツジムの会員になったこと(A)で、半年後の体脂肪率(Y)が変わったかどうか、その因果効果を考えたいと思います。
まず個人レベルで、ジム会員になること(A)が体脂肪率(Y)に与える因果効果は次のように定義されます。
ジム会員になったときをA=1,ならなかったときをA=0としましょう。Ya=1は 私がジム会員になった場合の半年後の体脂肪率、Ya=0は私がジムに入らなかった場合の半年後の体脂肪率です。Yの右下*1にaの値が小さく書いてある場合、このような架空の値を考えていることを意味します*2。
例えば、体脂肪率Ya=1が15%、Ya=0が20%だった場合、15-20=-5%がジム会員になったおかげで減った体脂肪率、「因果効果」と考えます。
当然私という人間は一人しかいないので、実際に観測できるのは二つのうち片方のみです。例えば現実に私がジム会員になった場合は、私がジムに入らなかった場合に何がおこったかは知る由もないので、事実に反しているもの、「反事実」ということになります。これが統計的因果推論の基本となる考え方が、反事実モデルと呼ばれる理由です。
このような値を求めるためには、①まずジムに入って、②半年後の体脂肪率を計測、③タイムマシンで半年前に戻り、④ジムに入ろうとしている自分を阻止して、⑤再び半年後に体脂肪率を測定する必要があります。
タイムマシンは存在しませんので、結局こんな値は知ることができません。個人レベルでの因果効果を知ることは不可能、ということです。
次に集団レベルで因果効果を考えてみましょう。1000人の人を集めて、全員がジム会員になった場合の半年後の体脂肪率の平均と全員がジム会員に入らなかった場合の半年後の体脂肪率の平均を比較することになります。集団同士なので、平均を比べます。数式は次の通り。
さきほどと同じように、右下に小さい文字でaの値が書いてあります。つまり、架空の話、反事実モデルで考えているということです。
やはりタイムマシンは存在しないので、こんな値を直接知ることはできそうもありません。ところが個人レベルで因果関係を考えていたときと違って、集団レベルではこの反事実モデルで定義される架空の値を、以下に述べる前提条件の下で現実のデータから求めることができます。
統計的因果推論とは大雑把にいえば、これらの前提を揃えるために研究デザインや統計解析で試行錯誤したり、手元のデータでいえる範囲で前提がどの程度成立しているかを議論したりする営みです。なので、実データから因果効果をいうための前提を知ることは超重要です。
なお、統計で言える因果効果はあくまで集団レベルなので、この点を強調して「平均」因果効果(Average Causal Effect)と呼ばれます。以下、少しだけテクニカルになります。
データから因果効果を求めるための前提条件
前提①:(Mean) Exchangeability
定義
データから因果関係を考えることを可能にする前提のうち、最も重要になってくるのがExchangeabilityです。日本語だと「交換可能性」とでも訳すべきでしょうか。後述するPositivityと合わせて、統計学ではIgnorabilityとも呼ばれています。統計的因果推論の議論のうち、9割以上はExchangeabilityに関する話題だといっても過言ではないでしょう。いわゆる、ランダム化だとか交絡だとか調整だとか傾向スコア云々といった話はすべてここに帰結します。
Exchangeabilityとは次のような条件です。
E[Y|A=a]は条件付き期待値と呼ばれ、ここでは「Aの値がaだった人たちのYの平均」と解釈します。 “|”の右側が“~のとき”という条件を表すので、“A=aのとき”のYの値、すなわちA=aの人たちが実際にとったYの値です。
このままではわかりにくいので少しずつ解読していきましょう。
a=1のときを考えましょう。上記の条件はE[Ya=1│A=1] = E[Ya=1│A=0]となります。再び右下に小さい文字があることに注意すると、E[Ya=1│A=1] は「A=1(ジム会員になった)の人たちが 仮に全員A=1となったときのYの平均」と解釈できます。非常に紛らわしい言い回しですが、実際にA=1である人たちを見ているのだから、仮にA=1だったときに何が起きるかなんて一目瞭然です。その人たちの実際のYの平均を見ればいいだけです。
すなわち言い換えると、E[Ya=1│A=1] = E[Y|A=1]であるということです。ちなみに、この変換では後で説明する"Consistency"という条件が成立することを想定しています。後ほど詳しく。ここで重要なのは、E[Y|A=1]が現実のデータから計算可能であるということです。架空の話だった反事実モデルが、なんとなく現実の世界に降りてきました。
同様に、E[Ya=1│A=0]は「A=0(ジムに入らなかった)の人たちが、仮に全員A=1であったときのYの平均」と解釈できます。
まとめると、E[Ya=1│A=1] = E[Ya=1│A=0]は「A=0の人が、仮に全員A=1だったときに、現実にA=1だった人たちとYの平均が同じ」という意味です。
a=0のときも同様でE[Ya=0│A=1] = E[Ya=0│A=0]は「A=1の人が、仮に全員A=0だったときに、現実にA=0だった人たちとYの平均が同じ」ことを意味します。
このように、現実にA=0だった人たちとA=1だった人たちの間で、Aの値を交換しても結果が同じになることがExchangeabilityという名前の由来です。
なお上記の条件は、厳密にはMean Exchangeabilityと呼ばれます。これ以外にFull Exchangeabilityと呼ばれる条件もありますが、平均因果効果の推定には必要ありません。Mean Exchangeabilityで十分です。*3
交絡との関係性
さて、Exchangeabilityという条件が意味するものはわかりました。問題はこの条件がどのようなときに成立する・しないのか、ということです。
例えば、次のようなシナリオを考えてみましょう。ジムの会員になるにはお金が必要であるため、ジム会員になった人とならなかった人を比較すると、会員の人のほうがお金持ちであったとしましょう。お金があると、ジムに入れるだけでなく普段食べる食事も安価で高カロリーな牛丼やハンバーガーではなく、(少し値が張る)健康的な食事が多いかもしれません。普段から健康的な食事をしている人は体脂肪率が低そうです。
これを図に示すと以下のような状況です。
以前紹介したDAGの考え方を知っている人であれば、一目でこれは「交絡バイアス」が起きている例だと気づくことができると思います。
このような状況では因果関係をデータから正しく求めることができません。なぜ交絡があるといけないのか、Exchangeability条件を使って考えてみます。
Exchangeability、すなわち
という条件はこの例では、
「ジム会員でない(A=0)人が、仮に全員ジム会員(A=1)だったときに、現実にジム会員(A=1)だった人たちと体脂肪率(Y)の平均が同じ」
「ジム会員(A=1)の人が、仮に全員ジム会員でない(A=0)だったときに、現実にジム会員でない(A=0)だった人たちと体脂肪率(Y)の平均が同じ」
ことを意味します。*4
一つ目について、ジム会員でない人(A=0)全員に無料でジムを使える権利を与えたとしましょう(A=1とする介入)。仮に上記のDAGが成立しているとすると、A=0であった人たちはA=1のひとと比べて普段からカロリー高めな食事をしているため、たとえジムに通ったとしても平均すると実際にA=1だった人たち(リッチで健康的な食事をとっている人たち)よりも体脂肪率が高くなりそうです。つまり、Exchangeabilityが成立していません。二つ目についても同様のロジックで成立していないことがわかります。
Exchangeabilityが成立していないので、データから平均因果効果を導くことができません。
ちなみにA=0とA=1で、ある特徴が異なっていたとしても、その特徴がYに影響を与えないものであるならばExchangeabilityが成立します。より正確にいえば、DAG上である要因CからAへ矢印が伸びていたとしても、Cを介したBackdoor pathが開いていなければ交絡因子ではないので問題ないということです。DAGの読み方は以下を参照してください。
ランダム化という魔法
交絡がある場合はExchangeabilityが成立しないことがわかりました。では、どうすればExchangeabilityを得ることができるのでしょうか。
最善かつ最強の方法が、ランダム化・無作為割付(Randomization)と呼ばれるものです。ランダム化とは、平均因果効果を調べたい集団に対して、介入(A)をランダムに割り当てる作業のことです。言い換えると、その集団中の個人iが介入をうけるかどうかは完全にくじ引きで決まるということです。例えば、コインをなげて表が出たらジム会員になれて、裏が出るとなれない、といった具合です。
このとき、なにが起こるか考えてみましょう。ジム会員になるかどうかは完全にランダムに決まっているので、最終的にジム会員に選ばれたグループ(A=1)と選ばれなかったグループ(A=0)は平均的に同質な集団であると考えられます。どういうことかというと、例えばA=1のひとのほうがお金持ちだったり、ということがないわけです。お金持ちのほうがコインを投げて表が出やすい、なんてことはあり得ないので。つまり、上記のようなお金による交絡が生じていません。
同質な集団であるならば、A=1のグループが仮にA=0であったとき、その結果生じるYは現実にA=0の集団で観察されるYと同じであると期待できると思います。すなわち、Exchangeabilityが成立しているということです。
ランダム化の素晴らしいところは、あらゆる交絡要因の影響を除外するところです。コインの表の出やすさに影響する要因は運以外ありえないので、表がでた集団と裏が出た集団が異なる特徴を持つということは考えられにくいのです。DAGでいえば、Aを規定する要因が運だけなので、Aに向かって伸びる矢印が存在しない、ということになります。通常、我々はあらゆる交絡因子のデータをもっていないだけでなく、なにが交絡因子となりうるかという認知すら完璧でないので、未測定・未認知の交絡因子に対しても効力を発揮するランダム化は大変魅力的なわけです。
いくらランダム化が最強といえど、いくつか注意すべき点があります。
【注意点1】サンプルサイズが十分に大きい必要がある
ランダム化が機能するためには、サンプルサイズが十分に大きい必要があります。すなわち、割り付ける人数が少ないとうまくいかない、ということです。例えば男女5人ずつ、10人の集団にランダム割付をしたとします。10人しかいないと偶然によって、A=0では男性のほうが多く、A=1では女性のほうが多い、なんてことがたまたま起きてしまいそうです。A=0とA=1とで性別の比率が異なっているので、仮に性別が交絡因子として考えられる状況のときにはExchangeabilityが成立しておらず、平均因果効果を正しく推定できません。これが100人、1000人となってくるとそのような状況になる可能性は低くなってきます。
【注意点2】あくまでExchangeabilityは平均的に成立が期待されるだけ
たとえ人数が多かったとしても、ランダム割付の結果、偶然A=0の集団とA=1の集団が異なる特徴をもった集団になる可能性があります。もちろん、割り付ける人数が多くなるほどそのような可能性は少なくなるのですが、ゼロにはなりません。
このような理由から、ランダム化はExchangeabilityを絶対に保証するものではありません。したがって、ランダム化によってExchangeabilityが「確率的に成立することが"期待"される」、「平均的(on average)に成立する」といった表現が正確です。
ランダム化したにもかかわらず偶然でExchangeabilityが成立しなかった場合には、共変量の調整によって後述するConditional Exchangeabilityを目指していきます。
【注意点3】介入効果ではなく、割付効果の推定
現実の世界では、割付された介入に従わない人が少なからずいます。例えば薬の効果を調べようとしてランダム化を行ったときに、薬を割付られたのにめんどくさがって薬をきちんと飲まない人がいるかもしれません。このような状況を割付へのnon-complianceと呼びます。薬への割付をA、実際に薬を飲んだかどうかをA'とすると、以下のようなDAGになります。
Aはランダム化されているので、Aに伸びる矢印がないことに注意してください。一方で、A'はランダム化されていないので交絡因子が存在しています。したがって、実際に薬を飲んだかどうか(A')に関する情報をもっていたとしても、A'の平均因果効果を知ることはできません。知ることができるのはAの平均因果効果だけですし、A'は考慮しないのが一般的です。このような分析をIntention-to-treat (ITT)分析と呼びます。
観察データでの因果推論を可能にするConditional Exchangeability
では、ランダム化ができない場合、観察データしかない場合はどうすればいいのでしょうか。このような状況下での因果推論を可能にするためには、Exchangeabilityの定義を少しだけ拡張したConditional Exchangeabilityという条件の成立を目指します。
この条件がほとんどの観察データを使った因果推論の出発点であり、なんとなく回帰分析を使っているような医学研究や社会科学が(多くの場合無自覚に)置いている仮定です。超重要です。
Conditional Exchangeabilityは日本語だと「条件付き交換可能性」といったところでしょうか。数式だと以下のようになります。*5
先ほどまでとの違いは“ | ”の右側にCが増えています。Cは数学的には共変量ベクトルと考えられ、平たい言葉で言うと、YでもAでもない複数の要因の集合です。文字は一つですが、実際には複数の変数を意味しています。
“ | ”の右側のCは「Cで条件づけると(conditional on C)」という意味です。言い換えると、「C(に含まれるすべての要因)が同じ値をとる集団で」という意味です。例えば、Cに性別と年齢が含まれていたとしましょう。この場合「〇〇歳の男性」「〇〇歳の女性」「△△歳の男性」「△△歳の女性」・・・といった具合に分かれた集団それぞれのなかで、Exchangeabilityが成立しているということです。すべての年齢の男女を合わせた集団全体では成立している必要がないので、普通のExchangeabilityよりは条件が緩めなのがポイントです。
さて、このような条件を成立させるCをどうやったら見つけられるのか。
ずばり、DAGを書いてください。
つまり、①平均因果効果を調べたい事柄(例:ジム会員になることと体脂肪率の関係)について自分が知っている知識を総動員して、②DAGを書き、③Backdoor pathを閉じるのに必要な共変量(DAGに基づく交絡因子の定義です)を特定するのです。
以前DAGのルールとして紹介しましたが、交絡因子を”条件付け”することでAとYの因果関係以外の理由から生じる関連をブロックすることができます。条件付けは、層別分析をしてみたり、回帰分析を使って見たり、傾向スコアをつかってみたり、いろいろやり方があります。逆を言えば、回帰分析などを使った分析で因果に言及している際、「交絡因子をすべて特定&条件付けしてConditional Exchangeabilityが成立している」という強い仮定が置かれているということを意識する必要があります。
ここで鋭い人は、「いやいや、そもそも交絡因子Cをすべて特定するなんて無理では」と考えるかもしれません。その点については全くその通りでして、基本的に我々は神様じゃないので、あらゆる交絡因子をすべて認知することはできません。もしかしたら、あれが交絡因子になっているかも、、、なんて考えだすと終わりがありません。つまり、Conditional Exchangeabilityが完璧に成立するということは基本的にありえないということです。問題はこの前提がどの程度もっともらしいと考えられるか。
具体的には、
①考えうる未測定交絡因子としてどのようなものがあるのか、それが結果に与える影響は?
②認知すらしていない未測定交絡因子について、どの程度影響が強いものでないと観測した結果をバイアスで完全に説明することができないか?
などを検討していきます。これを感度分析と呼びます。気になる方は以下の記事を参照ください。
前提②:Consistency
第二の条件はConsistencyというものです。統計学でestimatorがconsistentだ、なんていうあれとは違うものなので誤解なきように。Consistencyとは次のようなものです。
言葉にすると、「A=aだった人が、仮にA=aとする介入をうけたときに取りうるアウトカムYaは、その人たちが実際にとった値Yと等しい」という意味です。当たり前のことを言っているように思えるかもしれませんが、実は奥が深い前提条件です。
いつでも成立しそうな条件ですが、次のようなときには少しやっかいです。肥満(A) が病気のリスク(Y) に与える影響を考えましょう。A=0なら肥満でない、A=1なら肥満とします。
このとき、実際に肥満であった集団(A=1) について考えてみます。E[Y|A=1]は実際の健康リスクの平均、E[Ya=1|A=1]はこの人たちに「肥満になるような介入」をおこなったときの健康リスクの平均です。
ここで「肥満」という現象をよくよく考えてみると、人間が太るには様々な原因があります。ある人は運動不足で、ある人は食べ過ぎで肥満になるわけです。運動不足による肥満と食べ過ぎによる肥満で健康に与える影響が異なる場合、実際に肥満になった理由と介入によって肥満を引き起こすときの方法が違えばE[Ya=1|A=1]とE[Y|A=1]が一致するとは限りません。詳しくは以下の論文が参考になります。
Hernán, Miguel A., and Sarah L. Taubman. "Does obesity shorten life? The importance of well-defined interventions to answer causal questions." International journal of obesity 32.S3 (2008): S8. https://www.nature.com/articles/ijo200882
このようにAに複数の種類が考えられる場合をMultiple versions of treatmentと呼びます。そのようなAのもとでは反事実アウトカムYa=1が一意に定義されないことが問題視されています。統計学の世界で、Stable Unit Treatment Value Assumption(SUTVA)と呼ばれる仮定の一部でもあります。*6
Multiple versions of treatment下でのConsistency条件について、その定義を拡張した論文もあります。
VanderWeele, Tyler J. "Concerning the consistency assumption in causal inference." Epidemiology 20.6 (2009): 880-883. https://journals.lww.com/epidem/Fulltext/2009/11000/Concerning_the_Consistency_Assumption_in_Causal.18.aspx
後で説明しますが、Consistencyは観察データから反事実モデルで定義される因果効果を導くための数式変形に必須の前提です。
前提③:Positivity
最後の条件はPositivityと呼ばれ、「どのAの値をとる確率も0でない」という条件です。確率が0でないということは、正の数、positiveなのでpositivityです。
例えば、A=0とA=1の比較から因果推論をしたいのにA=1の人が一人もいなかったとき、A=1となる確率は0です。同様に全員A=0のときも、A=0の確率が0になります。
このようなPositivityが不成立な状況では、そもそも必要なデータがないので因果効果の推定なんてできるはずもありません。ランダム化比較試験など実験研究でこんなことが起きることはまずないでしょう。
しかし、観察研究ではPositivityが成立しない可能性が少なくありません。ランダム化がされていないので、上記のConditional Exchangeability (すべてのaに対してE[Ya│A=1, C] = E[Ya│A=0, C])を目指して分析をすることになりますが、このときPositivityは各Cの組み合わせごとに成立している必要があります。
Cに含まれる要因の数が増えていくにしたがって、Cの組み合わせのパターンも増えていきます。例えば、2値変数が10個含まれていたとすると、2^10=1024パターンもあります。3000人くらいのデータだと、平均して各組合せに3人弱ずつしか含まれない計算になります。3人だと、当然「3人全員A=1」なんて状況も生じうるので、Positivityの成立が怪しくなってくるということです。
前提条件のもと、データから平均因果効果を導く
反事実モデルという、現実には観測できない値で定義された平均因果効果を、なぜ観測されたデータから導くことができるのか。上記の前提をうまく使うことで説明できます。
Exchangeabilityが成立しているとき(例:ランダム化比較試験)
現実世界で計算可能なのは、実際にA=1だったグループとA=0だったグループの比較。すなわち、E[Y|A=1] - E[Y|A=0]です。ここから、ゴールである平均因果効果E[Ya=1]-E[Ya=0]を導きます。
①Consistencyより
E[Y|A=1] - E[Y|A=0] = E[Ya=1|A=1]-E[Ya=0|A=0]
②ExchangeabilityよりE[Ya│A=1] = E[Ya│A=0]=E[Ya](Aの値と関係なく同じなので、全体でみても同じになる)なので
E[Ya=1|A=1]-E[Ya=0|A=0]=E[Ya=1]-E[Ya=0](AからYへの平均因果効果)
あとはPositivityが成立していれば、実際のデータから計算可能です。いくつかの前提条件のもと、反事実だったものが現実世界のデータで計算できるというトリックです。
Conditional Exchangeabilityが成立しているとき(例:観察研究)
ランダム化ができないときは、Conditional Exchangeabilityを目指します。
Cが同一(C=cとします)の集団内における平均因果効果はE[Ya=1|C=c]-E[Ya=0|C=c]と定義されます。データから見ることができるのは実際にA=1だったグループとA=0だったグループの比較、E[Y|A=1, C=c] - E[Y|A=0, C=c]です。
①Consistencyより
E[Y|A=1, C=c] - E[Y|A=0, C=c]=E[Ya=1|A=1, C=c]-E[Ya=0|A=0, C=c]
②Conditional ExchangeabilityよりE[Ya│A=1, C=c] = E[Ya│A=0, C=c]=E[Ya|C=c]なので
E[Ya=1|A=1, C=c]-E[Ya=0|A=0, C=c] = E[Ya=1|C=c]-E[Ya=0|C=c] (C=cの人たちにおける平均因果効果)
一般的にはC=cの人だけでなく、対象集団全体での平均因果効果(Marginal Causal Effect)に興味があるので、C=cとなる確率をつかった重みづけ平均を計算することも多いです。
もちろんConditional Exchangeabilityが完璧に成立している可能性は極めて低いので、感度分析を用いるなどして、その仮定のもっともらしさを検討する必要があります。
その他の仮定について
(Conditional) Exchangeability, Consistency, Positivityが成立していると、数学的に平均因果効果を導くことができるのですが、実際のデータ分析ではさらにそれ以外にも仮定がおかれています。詳しくは後々別の記事で説明したいと思いますが、次のような仮定があると思います。
1. Measurement error / Misclassificaiton
データが常に正確とは限りません。現実世界ではデータを収集する仮定で誤測定や誤分類が起きます。平均因果効果の推定に与える影響はケースバイケースですが、見過ごすことのできない重要な問題です。
2. Model Specification
Conditional Exchangeabilityを得るためのCの条件付けを、回帰モデルを使って行った場合に問題となります。モデルに頼るということは、アウトカムと説明変数の間に一定の関係(Functional form)を仮定することになります。モデルを誤って設定したときにはモデルの誤設定(Model Misspecificationi)がおき、平均因果効果を正しく推定できません。これも重要な問題なので改めてまとめます。
3. Selection Bias
調査への参加、フォローアップの失敗、欠損値などの問題から生じるバイアスを選択バイアス(Selection Bias)と呼びます。詳しくはこちら。選択バイアスについては、別途仮定をおいたうえで逆確率重みづけ(IPW法)や多重補完法をつかって対応していく必要があります。
まとめ
・統計学における「因果」は反事実モデルに基づいて定義される
・因果効果は個人レベルではわからないが、集団レベルなら考えることができる
・Exchangeability&Consistency&Positivityという3つの前提が成立すれば、データから因果効果を推定できる
・実際のデータ分析ではさらに仮定を置く必要がある
・仮定が完璧に成立することはありえない。どのような仮定を置いているのかを自覚し、それがどの程度成立していると考えうるのかを検討することが大切。
参考資料
今回書いた内容は、ハーバードの因果推論研究者らがまとめた以下の教科書にまとめてあります(無料公開中)
https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/
林岳彦さんのブログ、わかりやすくまとまってます。
*1:右上に書く人もいます。私はどういうわけか右下が好きです。
*2:なぜ小文字になっているのかというと、確率変数(random variable)とそのrealized valueを区別しています。
*3:Full Exchangeabilityは「すべてのaの値に足して、YaとAが独立」というものです。
*4:後述のConsistencyが成立するという前提のもと、このような解釈ができます
*5:厳密には、「すべてのaに対して、同一のCの値をとる集団においてYaとAが独立」がConditional Exchangeabilityの定義ですが、これが成立するときは以下の条件も成立します。Full ExchangeabilityとMean Exchangeabilityの関係と同じですね。
*6:曖昧に定義されたAによって因果推論が困難になることはill-defined interventionの問題と呼ばれ、Consistencyとは密接に関係しながらも別のissueも引き起こします。