- このセクションで使っている R packages

library(DT)
library(gapminder)
library(gghighlight)
library(ggrepel)
library(tidyverse)
library(stargazer)

このセクションで理解すること✔ RCT(ランダム化比較試験)とは何か?
✔ 「ランダム化」する理由は?
✔ 「ランダム化」によって何が解決できるのか?
✔ どうやって「ランダム化」するのか?

1. RCT(ランダム化比較試験)とは何か?

1.1 RCT: Randomized Controlled Trial

  • 無作為化比較試験は、次の2つを同時に満たす処置の割り付け法
    (出典:Imbens and Rubin 2015: p.40)
  1. 「確率的であること」
  2. 「実験者が制御する関数によって実行されること」
  • 通院と健康状態の例 (Angrist and Pischke 2009) を使い、RCT を考える

  • 確認したいこと:「病院行く」→「健康になる」

  • 「通院(病院に行ったこと)」と「健康状態」の関係

  • データからわかる事実:

  • 通院しなかった人の方が健康(健康状態の平均値: 3.21 < 3.93
    → 常識と反する結果!

  • なぜ通院すると健康でなくなるのか?

  • ここで想定する因果関係は「通院する」→「健康になる」

  • なぜ通院すると不健康になるのか?

【考えられる理由】:
(1) 病人から病気が感染してしまう
(2) 医療ミスのせいで健康を害する・・・等々

  • 「想定する因果関係以外の変数」として「そもそもどういう人が通院するのか」を考える
  • 「通院するかどうか」ということは本人が選べる
    → セルフセレクション (self-selection)
    → 「病院に行く」のは「もともと健康状態が悪い人」
    → もともと健康状態の良い人は「病院には行かない」はず

まとめ調査・観察データを単純比較しても因果効果はわからない

その理由 → セレクションバイアスがあるから

・ セレクションバイアスがあると正しい因果効果が推定できない

1.2 平均独立と因果効果 (ATE)

変数 変数名 詳細
目的変数 Y : 健康状態 (1 = 最悪 〜 5 = 最良)
説明変数 D : 1 = 通院する、0 = 通院しない
交絡変数 h_hidden : もともとの健康状態 (1 = 最悪、2 = 悪い、3 = 普通、4 = 良い、5 = 最良)
  • 私たちが観察できることは 2 つだけ (\(E[Y_i(1) |D = 1] と E[Y_i(0) |D = 0]\) )
  • つまり「通院する集団」と「通院しない集団」の体調の平均値の差
  • これら観察できる 2 つの体調の平均値(期待値)の差を単純比較してみる \[E[Y_i(1) | D = 1] ー E[Y_i(0) | D = 0]\]
  • ここでわかること
     →「通院した集団」と「通院しなかった集団」における体調の平均値の差
  • しかし、この平均値の差には二種類のセレクションバイアスが含まれている 
  • 「通院する集団」に含まれているバイアス
  • 「そもそも通院するのは、もともと体調が悪い人々」
     → 通院する集団の中では、通院の効果が過小評価される
  • 「通院しない集団」に含まれているバイアス
  • 「もともと体調が良い人々は、そもそも通院しない」
     → 通院しない集団の中では、通院の効果が過大評価される
  • 以上を図にまとめると次のようになる

  • ここからわかること
    「通院する集団」に関して
  • もしセレクションバイアスの値が 0 なら → ATT を計算できる
    「通院しない集団」に関して
  • もしセレクションバイアスの値が 0 なら →  ATC を計算できる
  • もし「通院する集団」と「通院しない集団」のセレクションバイアスの値がどちらも 0 なら

→ 群間比較で因果効果 (ATE) を推定できる

  • 上の状況をフォーマルに表すと次のようになる

→ 赤色のセレクションバイアスが 0 であれば、ATT が計算できるということ
→ 青色のセレクションバイアスが 0 であれば、ATC が計算できるということ
→ 赤色と青色のセレクションバイアスが両方 0 であれば、ATE が計算できる

\[E[Y_i(0)|D=1] - E[Y_i(0)|D=0]: 仮定1 → ATT が計算可能\]

\[E[Y_i(1)|D=1] = E[Y_i(1)|D=0]: 仮定2 → ATC が計算可能\]

  • 上の 2 つの仮定(=平均独立: mean independence)を満たせば、観察できる群間を比較することで因果効果 (ATE) を推定できる (出典:Herman and Robins (2020)chapter 2 and 3)

  • 平均独立(2つの仮定)が同時に成り立つ時、群間比較で因果効果 (ATE) を求めることができる
    \[E[Y_i|D_i = 1] - E[Y_i|D_i =0]\\ = E[Y_i(1)|D_i = 1] - E[Y_i(0)|D_i = 0]\\ = E[Y_i(1)] - E[Y_i(0)]\\ = ATE\]

  • しかし、平均独立の式に「観察できないもの」 が含まれている

✔ 「通院した集団の人々が、通院しなかった時の体調の期待値」: \(E[Y_i(0)|D = 1]・・・仮定1\)
✔ 「通院しなかった集団の人々が、通院した時の体調の期待値」: \(E[Y_i(1)|D = 0]・・・仮定2\)

→ 仮定 1 が満たされれば ATT が計算できる
→ 仮定 2 が満たされれば ATC が計算できる
→ 仮定 1 と仮定 2 が両方満たされれば ATE が計算できる
→ しかし、調査観察データではセレクションバイアスがあるため、両方の仮定を満たすことは難しい
 → 平均独立はデータから確認できない
   → データによって平均独立を満たす 2 つの仮定を満たすことができない
 → 平均独立を満たすために「仮定すること」よりもっとよい方法がある
 → ランダム化

2. ランダム化とその条件

  • ランダム化 (randomization) ・・・セレクションバイアスを回避する解決策
  • その解決策がランダム化
  • 通院するかどうかをコイントスで決める
    → 例)「表」が出たら「通院する」、「裏」が出たら「通院しない」
    → 通院するかどうかは本人が決められない
    → セレクションバイアスを回避できる
    → 「通院した人」と「通院しなかった人」の健康状態を比較する
    → 通院の因果効果を測定できる

2.1 独立と条件独立の関係

  • 潜在的結果のペア \(Y(1)\)\(Y(0)\) を「セットとして」\(\{Y(1), Y(0)\}\) 考える
    処置 \(D\) をランダムに割り付ける(ただし、\(0 < Pr(D_i = 1) < 1\)
  • 処置を割り付ける確率 \(Pr\) は必ずしも 0.5 である必要はない
    → 処置と潜在的結果が独立になる
    =「通院の有無」と「健康状況」は無関係
    → つまり、元々の健康状況次第で通院の有無は決まらない
    → 自動的に平均独立が満たされる
    → 観察される結果の差(「通院した集団」と「しない集団」の健康状況の平均の差)を比較
    → 通院の因果効果 (ATE) を推定できる

  • 「独立」の方が「平均独立」より条件が強い(=厳しい)
満たすべき条件
独立 母集団において 2 群の分布が同じ
平均独立 2 群の期待値が同じであれば、(分散などの)分布は異なっても良い
  • 処置をランダム化すれば、独立が成立する
  • 独立が成立する → 平均独立が成立する

2.2 交換可能性と外生性

  • 交換可能性 (exchangeability) = 独立 (independence)

\[p(Y(0), Y(1) |D=1) = p(Y(0), Y(1)|D=0) \\ = p(Y(0), Y(1))\]

  • \(p(Y(0), Y(1))\)\(Y(0)\)\(Y(1)\) の同時確率

  • 処置群 (D = 1) に割り付けたはずの固体全てに D = 0 を与え

  • 統制群 (D = 0) に割り付けたはずの固体全てに D = 1 を与えても

  • 当初の予定通り処置を与えた場合と同じ結果が得られる
    例)「通院する集団」と「通院しない集団」の構成メンバーをまるっと入れ替えても、同じ結果が得られるということ

  • 処置群と統制群は「群として」は同じ

  • 処置群と統制群を交換しても問題はない

  • 処置群と統制群が交換可能であれば
    → その処置 D は外生変数 (exogenous variable)

潜在的変数の組 \(\{Y(0), Y(1)\}\) と独立な処置 D は外生性をもつ

2.3 ランダム化は何回実行すべき?

  • 1 度だけ RCT を実行しても、独立性は保証されない
    例)コイントスをして「通院する集団」と「通院しない集団」を決めても
    → 不健康な人ばかり「通院する」に割り当てられ
    → 健康な人は「通院しない」に割り当てられることが偶然に起こりうる
    → この場合、処置群と統制群は交換可能ではない
    → しかし、RCT を何度も繰り返す
    → 平均的には 2 群が交換可能になる
    → ランダム化による独立性が満たされる
    ✔ 1、2回だけの実験で群が交換可能である保証はない

  • 大数(たいすう)の法則
    = ランダムな試行が信頼に足る結果を示す保証の一つ

  • 標本のサイズ N が大きくなるほど
    → 標本平均は母集団に近づく

  • 被験者の数(=標本サイズ N)が十分大き
    → 各群の平均値は母平均に十分近いはず

  • ランダム化
    → 2 群の母集団分布と母平均は同じになる

  • 被験者の数が十分大きければ
    → 平均独立は満たされる

  • 十分大きいとは?

  • 必要な標本サイズの大きさは、問題によって異なる

  • 大きな処置効果を識別したい
    → 比較的小さい N のサイズで十分

  • 小さな処置効果を識別したい
    → 比較的大きな N のサイズが必要

  • 検出力分析 (power analysis)
    → 標本サイズを決める

  • 検出力の詳細に関しては次の本の 2 章を参照されたい
    Peter G. Moffatt (2018)『経済学のための実験統計学』勁草書房

2.4 バランスチェック

  • 平均独立をチェックする方法が「バランスチェック」
  • 結果変数と相関がありそうな複数の変数の平均値が、2 群で等しいかどうかチェックする

バランスチェックの問題点:

  1. 測定できない変数のバランスはわからない
    例)もともとの健康状態、個人の本来の能力など

  2. 私たちが知りたいのは「 2 群間で違いがないこと」=「バランスしていること」
    → しかし、検定で積極的に示せるのは「バランスしていないこと(2 群間で違いがあること)」

3. RCT の方法

  • RCT の目的:
  • 各群を交換可能にすること = 処置と潜在的結果の独立性を満たす
    → 各群の特徴を表すような変数の確率分布を同一にする
    → 「観察されている変数」だけでなく「観察されていない変数」の分布も同一にできる
  • 大数の法則を利用 → 平均独立を実現する → 因果効果を推定可能にする

3.1 ベルヌーイ実験

  • Bernoulli trial for each unit
  • 各固体について、ベルヌーイ試行を行って処置するかどうか決める
    例)
  1. コイントス:
    表が出たら「処置」、裏が出たら「統制」
  2. サイコロ:
    1 の目が出たら「処置」、その他の目が出たら「統制」

例)   

  • 男性50人、女性50人の計100人の被験者を「処置群」と「統制群」に割り付けるケース
  • ベルヌーイ実験を使った際のパタン数 \(2^{100}\)を R で計算してみる
2^100
[1] 1.267651e+30

\[2^{100} ≈ 1.27 ・ 10^{30}\]

→ 膨大な数の組み合わせになってしまう

3.2 完全ランダム化実験

  • completely randomized experiment
  • 男性50人、女性50人の計100人の被験者から50人をランダムに「処置群」に割り付ける時のパタン数 \(_{100}C_{50}\)を R で計算してみる
choose(100, 50)
[1] 1.008913e+29

\[_{100}C_{50} ≈ 1.01・10^{29}\]

→ 膨大な数の組み合わせになってしまう

3.3 ブロック別(層別)ランダム化実験

  • stratified randomized experiment

  • あらかじめ決めた各ブロック内で、完全ランダム化実験を行う

  • 全体の平均処置効果 (ATE) は、ブロックサイズに重みにした加重平均
    → 全体に占めるブロックの比率を重みにする

  • 自然科学では分析対象が「均質」(化学における分子や物理における材料など)

  • しかし、社会科学における研究対象である固体は「均質」ではない
    → できるだけ同質的な固体ブロック(あるいは層)を作り
    → ブロック内でランダム化するのが良い

ブロッキング (blocking)

  • ブロッキングすると、推定の精度が高まる
  • ブロッキングしなくても ATE は推定可能
    → しかし、ブロッキングできるならした方が望ましい
  • あらかじめ決めた各ブロック内で、完全ランダム化実験を行う
  • 全体の平均処置効果・・・・ブロックサイズを重みにした加重平均
    → 全体に占めるブロックの比重を重みにする

ブロッキングの一例

  • 男性50人、女性50人の計100人の被験者に処置を割り付けるケース
  • ブロッキングしないで、ランダムに 50人ずつを「処置群」と「統制群」に割り振ってみる
    → 最悪の場合・・・男性50人、女性50人ずつ割り振られる


→ 男女比にばらつきが出る → 性別による差が生じてしまう
→ この状況は交換可能ではない(=グループを入れ替えられない)
→ 平均因果効果 (ATE) を推定できない

✔ 解決方法:

  • まず、性別でブロッキング
    → それぞれのブロック内でランダムに半数を処置群と統制群に割り付ける → ブロックした要素(この場合は性別)に関して、処置群と統制群の違いがなくなる

  • 100人の被験者をまず性別でブロッキング
    → 各ブロック内で半数を「処置群」にランダムに割り付ける時のパタン数を R で計算してみる
choose(50, 25)*choose(50, 25)
[1] 1.597964e+28

\[_{50}C_{25}・_{50}C_{25} = 1.6・10^{28}\]

3.4 ペアごとランダム化実験

  • paired randomized experiment

  • できるだけ同質のペアに分ける
    → 各ペア内でランダムに選んだ一方を「処置群」にする
    → 一つ一つのブロックの大きさが 2
    → 最も似ている個人二人をペアにする
    → 交換可能性が成り立ちやすい

  • 100人の被験者を「ペアごとランダム化実験」で割り付けた時のパタン数を R で計算してみる

  • 100人の被験者の中で50個の同質のペアを作る

  • その50個のペアからランダムに一方を「処置群」に割り当てる訳だから

2^50
[1] 1.1259e+15

3.5 どの方法の因果効果の推定効果が高い?

  • 男性50人、女性50人の計100人の被験者を「処置群」と「統制群」に割り付ける際のパタン数を基準としてランダム化の方法ごとにまとめてみる
ランダム化の方法 パタン数
ベルヌーイ実験 \(2^{100} ≈ 1.27 ・ 10^{30}\)
完全ランダム化実験 \(_{100}C_{50} ≈ 1.01・10^{29}\)
ブロック別(層別)ランダム化実験 \(_{50}C_{25}・_{50}C_{25} = 1.6・10^{28}\)
ペアごとランダム化実験 \(2^{50} ≈ 1.13 ・ 10^{15}\)

・処置の割り付けパタンが最も多いのは「ベルヌーイ実験」
・処置の割り付けパタンが最も少ないのは「ペアごとランダム化実験」
→「ペアごとランダム化実験」による固定効果の推定が最も精度が高い

3.6 まとめ

・RCTとは「処置をランダムに割り付け、平均処置効果を推定する方法」
・RCTを使えば、セレクションバイアスを取り除くことができる
・1回の実験で平均処置効果が正しく推定できるとは限らない]
・標本サイズを大きくすると推定精度を上げることが可能(大数の法則より)
・ランダム化の方法は様々あるが、ブロッキングするのがよい

参考文献