読者です 読者をやめる 読者になる 読者になる

Gerber and Green(2012) Field Experiment, Ch.4

勉強会のメモの続き.実験で共変量をどう使うかについての章である.

4.1. Using Covariates to Rescale Outcomes

共変量とはPotential Outcome(以下PO)を予測すると考えられる観察された変数であり,処置の割り当てに影響を受けないと仮定される.つまり共変量とは基本的に処置の前に決定しているpre-treatment variableである.以下の議論では共変量がこの仮定を満たすとする.割り当て確率が等しいとき共変量について以下が成り立つ.
{ \displaystyle E[X_i]=E[X_i|D_i=1]=E[X_i|D_i=0] }
{ \displaystyle X_i }がプレテストスコアで{ \displaystyle Y_i }が処置後のポストテストスコアだとするとDID推定量は,
{ \displaystyle 
E(\widehat{ATE})=E[Y_i-X_i|D_i=1]-E[Y_i-X_i|D_i=0] \\
=E[Y_i|D_i=1]-E[X_i|D_i=1]-E[Y_i|D_i=0]+E[X_i|D_i=0] \\
=E[Y_i(1)]-E[Y_i(0)]
}
となる.ランダム割り当てがなされていればDIM(Differences-in-means)推定量{ \displaystyle E[Y_i(1)]-E[Y_i(0)] }とDID推定量はともに不偏推定量となるが,小標本の場合に両者は異なる推定値となる(証明略).結論を述べると,DID推定量の標本分散がDIM推定量の標本分散より小さくなるのは,共変量とPOの関連が強い時である.フォーマルには,
{ \displaystyle 
\frac{Cov(Y_i(0), X_i)}{Var(X_i)}+\frac{Cov(Y_i(1), X)}{Var(X_i)} > 1
}
と書ける.つまり実際にフィールド実験を行う際には,a)サンプルサイズを大きくする,b)共変量の情報を集める,が予算制約下でのトレードオフとなっている.共変量を集めることによって生じうる深刻な問題としては,共変量を集めること自体が対象者の処置への反応の仕方を変えてしまい,それによってアウトカムも変化してしまうことであり,これでは除外制約等を満たさない.ここでは共変量を利用することでうまくいったケースについてMuralidharan and Sundararaman(JPE 2011)の結果を再現してみよう.アウトカムは学校の平均テストスコア,処置は教員へのボーナス,共変量は事前の平均テストスコアである.POがわかっているとして,Y_i(0)をX_iに回帰した時のR^2は0.87となり関連が強いことがわかる.その上で,10万回の実験シミュレーションを行ってみると以下のような結果となる.
f:id:analyticalsociology:20160325150723p:plain
DIDEの方がATEの標準誤差が小さいことがわかるだろう.DIMとDIDの平均ATEともに4.0で同じだが,標準誤差は4.77と1.53でありDIDの方が約68%(1-(1.53/4.77))小さい.ちなみにDIMでDIDと同程度に標準誤差を小さくするためにはサンプルサイズを40から392に大きくする必要がある(1/(1-0.68)^2).このRスクリプトは以下.

# clear workspace
rm(list = ls())

# Load in library to read stata files
library(foreign)

# Load in Data from website
teacherout <- read.dta("http://hdl.handle.net/10079/wwpzgz8")

# Or load in Data as a .csv file from website
#teacherout <- read.csv(file="http://hdl.handle.net/10079/1ns1rzk",head=TRUE,sep=",")

# Attach Data
attach(teacherout)

## Reproduce Figure 4.1
# Create space to draw Figure 4.1
par(family="Gill Sans MT",font.main=1)
layout(matrix(c(1,2),2,1,byrow=TRUE))

# Graph the top part of Figure 4.1
hist(diffinmean,xlim=c(-10,20),freq=FALSE,ylim=c(0,.25),main="Sampling Distributions",xlab="Difference-in-Means")
lines(density(diffinmean))

# Graph the bottom part of Figure 4.1
hist(diffinchangemeans,xlim=c(-10,20),freq=FALSE,ylim=c(0,.25),main=NULL,xlab="Difference-in-Differences")
lines(density(diffinchangemeans))

# Detach data so can reload data with identical variable names in examples below.
detach(teacherout)

4.2. Adjusting Covariates Using Regression

POと回帰の関係を整理してみよう.
{ \displaystyle 
Y_i=Y_i(0)(1-d_i)+Y_i(1)d_i=Y_i(0)+(Y_i(1)-Y_i(0)d_i) \\
=\mu_{Y(0)}+[\mu_{Y(1)}-\mu_{Y(0)}]d_i+Y_i(0)-\mu_{Y(0)}+[(Y_i(1)-\mu_{Y(1)})-(Y_i(0)-\mu_{Y(0)})]d_i \\
=a+bd_i+u_i
}
以上のようにYをdに回帰すればDIMによるATEと同じものを得る.共変量によってアウトカムを調整した場合も同様で,
{ \displaystyle 
Y_i-X_i=Y_i(0)(1-d_i)+Y_i(1)d_i-X_i\\
=a+bd_i+u_i-X_i
}
となる.回帰式の右側に共変量を1つ以上含む場合にも,
{ \displaystyle 
Y_i=Y_i(0)(1-d_i)+Y_i(1)d_i \\
=a+bd_i+cX_i+(u_i-cX_i)
}
cが1に近い時に上式は{ \displaystyle 
=a+bd_i+u_i-X_i
}に近い値となる.
以上は単なる整理だが,実験ではアウトカムと共変量は相関であり因果ではない.ランダム割り当てを伴う実験で共変量を用いるのは,誤差項から共変量を引いてやることでアウトカムの説明されない部分を小さくし標準誤差を小さくするためである.但し問題としては,小標本の場合に回帰調整ではバイアスを持つ可能性があることに注意が必要である.

4.3. Covariate Imbalance and the Detection of Administrative Errors

さて,実験をやったことある人ならば経験済みだろうが,小標本である場合にはランダム割り当てでも処置群と対照群でバランスが取れない=共変量と割り当てに相関が生じることがある.まずやるべきなのは2群のバランスをチェックすることだ.バランスしていない場合には,割り当てを共変量に回帰しF統計量を計算し,p-valueを求めるためにrandomization inferenceをする.偶然でないインバランスであればコントロールしてやれば良い.この点については以下のように著者らがそんな心配するなと回答している.

Sometimes researchers worry that observed imbalance is symptomatic of a broader problem of imbalance among other unobserved factors that affect outcomes. So long as imbalance is solely due to random chance(as opposed to administrative error) and so long as we control for the covariate that is imbalanced, there is no reason to expect imbalance on other covariates or on unmeasured causes of the outcome variable.

4.4. Blocked Randomization and Covariate Adjustment

偶然のインバランスが生じた時に共変量をどう用いるかによってATEの推定値は異なってくることを確認したが,事前にブロックランダマイゼーションという方法もある.実験家の格言としては,

Block what you can, and randomize what you cannot

というものがあるそうだ.準備期間が十分にあるのであれば,複数の共変量についてブロックすることができるが,そうでない場合には先行研究を参考にPOを強く予測する変数を選択すべきである.Block randomizationの場合,Yをdとxに回帰するかYをdに回帰するかに関わらず同じATEを得る.共変量調整を行ったrandomizationの場合,偶然にインバランスして共変量と割り当てが相関する可能性があり,不偏推定量を得てもATEの推定値の標準誤差が大きくなってしまうことがある.これをcollinearity penaltyと呼ぶ.但し大標本では2つの標本分布は近いものとなる.改めてComplete randomizationとblock randomizationの違いをみてみよう.
f:id:analyticalsociology:20160326121651p:plain
POを強く予測する共変量でブロックしたATEが最もばらつきが小さいことがわかる.

4.5. Analysis of Block Randomized Experiments with Treatment Probabilities That Vary by Block

これまではブロックごとの割り当て確率が等しいと仮定してきたが,ブロックごとに割り当て確率が異なる場合は全てをプールしてATEを推定するとバイアスが生じる.この場合,各ブロックごとにATEを推定してそこに当該ブロックにおける割り当て確率をかけてやり,各ブロックから得るこの値を足し合わせてやれば良い.以上を簡単にまとめると,Block randomizationの手順は概ね以下となろう.

  1. どの共変量がPOを強く予測するか確認する→POを共変量に回帰してR^2を確認
  2. 共変量についてブロックランダマイゼーション→RのblockToolsパッケージが便利→処置群と対照群のサンプルサイズを決定→各ブロックで2群のバランスがとれているかチェック
  3. ブロックがATEのばらつきを小さくするのにどの程度うまくいったかの確認→上の図でみたようにcomplete randomizationとblock randomizationの標本分布を比較
  4. block randomizationとblockに用いた共変量で調整した回帰のATE標本分布を比較
  5. ばらつきの小さいものを選ぶ!