反事実と潜在結果
Counterfactual and Potential Outcomes ・ はんじじつとせんざいけっか
「もし処置しなかったら」という起こらなかった世界との比較で因果効果を定義する考え方
✦ 30秒で試す — 航海効く薬なのに、比べると逆効果に見えることがある薬は、飲んだ人の回復度を何点変えた?予想してみる概要
反事実(counterfactual)とは、「もしあのとき薬を飲まなかったら、どうなっていたか」という、実際には起こらなかった世界のことです。潜在結果モデルは、この反事実を使って因果効果を定義します。ある人が処置を受けた場合の結果を Y(1)、受けなかった場合の結果を Y(0) と書き、その差 Y(1) − Y(0) こそがその人にとっての因果効果である、と考えるのです。処置の前には、どちらの結果も「潜在的に」存在している——だから潜在結果と呼ばれます。
この定義は直観に忠実です。「薬が効いた」と言えるのは、飲んだ世界と飲まなかった世界で結果が違うときだけです。飲まなくても治っていたなら、薬の因果効果はゼロです。潜在結果モデル(整備した統計学者の名からルービン因果モデルとも呼ばれます)は、この日常的な直観をそのまま数学の言葉にしました。
しかし、この定義は同時に因果推論の最大の困難も明らかにします。1人の人について観測できるのは Y(1) か Y(0) のどちらか一方だけで、もう一方は永遠に見えません。これを「因果推論の根本問題」と呼びます。因果効果の推定とは、見えない半分をどんな仮定のもとでなら正当に埋められるか、という問題なのです。
なぜ生まれたか
潜在結果モデル以前の統計学には、「因果効果」を書き表す記法そのものがありませんでした。条件付き確率で書ける「薬を飲んだ人の治癒率」と、本当に知りたい「薬を飲ませた場合の治癒率」は別物です。前者は観察の話(飲んだ人はどうだったか)、後者は介入の話(飲ませたらどうなるか)であり、飲む人と飲まない人の性質が違えば両者は食い違います。ところが従来の確率の言葉では、この2つを区別して書き分けることができず、「相関は因果にあらず」という警告を数式のレベルで表現できなかったのです。
ネイマンが1923年に農事試験の文脈で潜在結果の記法を導入し、ルービンが1970年代にこれを観察研究へ一般化したことで、状況は一変しました。「各対象は処置ごとの潜在結果を持ち、観測されるのはそのうち1つだけ」と定式化すると、因果推論は欠損値の問題——半分が構造的に欠けたデータから平均の差を推定する問題——として扱えるようになります。どんな仮定があれば欠けた半分を埋めてよいのかを数学的に議論できるようになり、無作為化の威力の証明も、観察研究の手法の正当化も、この土台の上で行えるようになりました。「根本問題」という呼び名は、1986年にホランドがこの枠組みを整理した論文で広まったものです。
詳細
見えない半分——因果推論は欠測データ問題
潜在結果の表を書くと、問題の構造が一目で分かります。各人は Y(1) と Y(0) の2つの潜在結果を持ちますが、処置を受けた人は Y(1) だけ、受けなかった人は Y(0) だけが観測され、表の半分は必ず「?」のまま残ります。
個人レベルの因果効果 Y(1) − Y(0) は原理的に観測できませんが、諦める必要はありません。関心を平均処置効果(ATE)——集団全体での Y(1) の平均と Y(0) の平均の差——に切り替えれば、処置群と対照群という別々の人たちの観測値から推定できる可能性が開けます。ただし無条件にはできません。処置群の観測平均が「全員の Y(1) の平均」の代役を務め、対照群の観測平均が「全員の Y(0) の平均」の代役を務められること——つまり「誰が処置を受けたか」が潜在結果と無関係であること——が必要です。
下の体験では、12人全員の Y(0) と Y(1) が見える「神の視点」から出発します。割り付けた瞬間に表の半分が伏せられ、見えている値だけで平均の差を取ることになります。
いまは神の視点です。12人全員について「受けたら Y(1)」「受けなかったら Y(0)」の両方が見え、真の平均効果は ATE = 5.3。「割り付ける」を押して、現実の世界に降りてみましょう。
数値は架空の健康スコア。Y(1)=受けた場合、Y(0)=受けなかった場合。推定 = 受けた人の Y(1) の平均 − 受けなかった人の Y(0) の平均
くじ引きの推定は1回ごとには大きくぶれますが、繰り返すと真の ATE を中心に散らばります。自己選択では、もともと数値の高い人が処置を選ぶため、何度繰り返しても山は右にずれたままです。サンプルを増やせば減る「ばらつき」と、増やしても消えない「偏り」の違いが、ここにはっきり現れています。
無作為化はなぜ効くのか
この条件を満たす最も確実な方法が無作為化です。処置をくじで割り当てれば、割り当ては各人の潜在結果と独立になり、処置群と対照群はどちらも全体の偏りのない縮図になります。だから「処置群の平均 − 対照群の平均」がそのまま ATE の偏りのない推定になる——ランダム化比較試験やA/Bテストの正当性は、潜在結果の言葉でこう証明されます。無作為化とは、欠測を「潜在結果と無関係な欠測」に変える仕掛けなのです。
逆に観察データでは、処置を受けた人と受けなかった人で潜在結果の分布が違うのが普通です(重症な人ほど薬を飲む、など)。このずれこそが交絡の潜在結果モデル的な表現です。このとき使われる中心的な仮定が「条件付き交換可能性(無視できる割り当て)」——測定済みの共変量が同じ人どうしでは、割り当ては潜在結果と独立——であり、傾向スコアによる調整はこの仮定の下で正当化されます。施策の前後比較で共通トレンドを仮定して反事実を描く差の差法も、「対照群の変化が、処置群の『もし施策がなかったら』の変化を代弁する」という反事実の埋め方の一種です。
ATE と ATT——誰にとっての効果か
平均を「誰について」取るかで、因果効果は別の量になります。全員についての平均が ATE、実際に処置を受けた人だけについての平均が**処置群の平均処置効果(ATT)**です。薬が重症者によく効き、しかも実際に服用したのが重症者に偏っていれば、ATT は ATE より大きくなります。政策の評価で「この制度を利用した人にとって効果はあったか」を問うなら ATT、「全員に広げたらどうなるか」を問うなら ATE が答えるべき量です。
この区別は推定手法とも結びついています。処置群の一人ひとりに似た対照者をあてがう傾向スコアマッチングが推定するのは基本的に ATT で、そこから「全員に広げても同じ効果」と言うには、効果が人によって違わないという追加の仮定が要ります。数値を報告するときは、それがどの集団の平均なのかを必ず添えてください。
見えない半分を埋めるための仮定
観察データから ATE や ATT を識別するには、交換可能性のほかにいくつかの前提が要ります。正値性は「どんな共変量の組み合わせの人にも、処置を受ける可能性と受けない可能性の両方がある」という仮定です。ある年齢層が全員処置を受けているなら、その層の Y(0) を代弁できる人がデータに一人もおらず、どんな統計手法でも穴は埋まりません。一致性は「実際に処置 1 を受けた人の観測値は、その人の Y(1) そのものである」という仮定で、当たり前に見えて「処置」の定義が曖昧だと崩れます。「運動した」の中身が散歩からマラソンまでばらばらなら、Y(1) がひとつに定まらないからです。
もうひとつ見落とされがちなのが、「各人の結果は自分の処置だけで決まり、他人の処置に影響されない。処置の中身は全員で同一」という仮定で、SUTVA(安定単位処置値仮定)と呼ばれます。ワクチンのように他人への接種が自分の感染リスクを変える場合や、SNS施策のようにユーザー間で効果が波及する場合はこの前提が崩れ、Y(1)・Y(0) という2値の潜在結果では書き表せなくなります。ネットワーク上のA/Bテストで割り当て単位を個人からクラスタに変えるのは、この波及への実務的な対処です。
実務での使いどころ
潜在結果の考え方は、日々の効果検証の議論を明晰にします。「施策後に数字が上がった」と聞いたら、「施策がなかった世界では数字はどう動いていたか。その反事実を何で代用しているのか」と問い直す。前年同期比なら「昨年の動きが今年の反事実の代役」という仮定を置いていることになり、その仮定の妥当性こそが議論すべき点だと分かります。利用者と非利用者の比較なら「非利用者が利用者の反事実の代役」で、自己選択の偏りをどう扱ったかが問われます。効果検証の設計とは、突き詰めれば「信頼できる反事実の調達方法」の設計です。この一点を掴んでおくと、手法の細部が変わっても本質を見失いません。
試問
12人それぞれについて、処置を受けた場合の健康スコア Y(1) と、受けなかった場合の Y(0) の両方が表に見えています(現実には、その人が選んだ側の値しか観測できません)。ここでは誰が受けるかを、くじに任せずあなたが決めます。行をタップすると、その人が「受ける」側に入ります。
12人全員の Y(0)・Y(1) が見えています。行をタップすると、その人が「受ける」側に入ります(もう一度で戻る)。
数値は架空の健康スコア。Y(1)=受けた場合、Y(0)=受けなかった場合。推定 = 受けた人の Y(1) の平均 − 受けなかった人の Y(0) の平均
