Everything is from page 58-59 of Mostly Harmless Econometrics (Angrist & Pischke, 2009)
Assume the following causal constant effects model:
Potential outcomes of person $i$ as a function of $s$ are given by
$f_i(s)=\alpha+\rho s + \eta_i$
assume (w.l.o.g, due to the presence of $\alpha$) $E[\eta_i]=0$
Hence we observe outcome:
$y_i=\alpha+\rho s_i +\eta_i$
The conditional independence assumption is assumed to hold. So:
$s_i \perp f(s_i)|X_i$
$X_i$ is a vector of observables.
Then the authors make the following argument:
We can write $\eta_i=X_i'\gamma+\nu_i$ Where $\gamma$ are regression coefficients so $cov(X_i, \nu_i)=0$ by construction.
Then they assume $E[\eta_i|X_i]=X_i' \gamma$ or in other words $E[\nu_i|X_i]=0$. This seems like a very strong parametric assumption on the form of $\eta_i$. Using this assumption they show that in this case the model $y_i=\alpha+\rho s_i + X_i' \gamma +\nu_i$ is a regression and in particular $\rho$ is identified and can be estimated by OLS, including these covariates. I understand all this.
Commonly however, it is claimed by people that if CIA holds, then $\rho$ is identified and can be estimated by OLS, including these covariates. A weaker claim, since it is not assumed that $E[\nu_i | X_i]=0$. Can this be proved?
My own workings
Iff $\rho$ is regression coefficient in model of form
$y_i=\alpha+\rho s_i +\beta' X_i+e_i$ (1.1)
(I assume full rank assumption holds, sucht that there exist unique set of $\alpha$ and coefficients on $s_i$ and $X_i$ that make it regression). Then it must hold that there exist $\alpha, \beta$ such that
(i) $cov(X_i, e_i)=0$ ($e_i$ is a function of coefficients)
(ii) $cov(s_i, e_i)=0$
We assume instead of the linear specification of the CEF (condtional expectation function) of $\eta_i$ the following:
$\eta_i=f(X_i)+u_i$ with $E[u_i | X_i]=0$.
Then we can rewrite equation (1.1) as
$y_i=\alpha+\rho s_i +\beta' X_i+[u_i+f(X_i)-X_i'\beta]$ (1.1)
Then it is straightforward to see that for identification we must have
$cov(s_i, f(X_i)-X_i' \beta)=0$
$cov(X_i'\beta, f(x_i))=Var(X_i' \beta)$
I don't see how the CIA is sufficient here.
Simulation
I have ran a simulation in R with $f$ linear, quadratic, sine and logarithm for the case $X_i \in \mathbb{R}$. This suggests that indeed the CIA is sufficient for identification of $\rho$ via OLS:
library(tidyverse)
##params
alpha=1
rho=1
###initialize data
nspecific=4
nsims=10^4
n=10^3
#matrix for results
results=matrix(data=NA, nrow=nsims, ncol=nspecific)
#grid for graphs
par(mfrow=c(1,nspecific))
#specs in string
specifications=c("X^2", "log(|X|)", "aX", "sin(X)")
for (spec in c(1:nspecific)){
for (i in c(1:nsims)){
#s is influenced by X in the same direction
X=rnorm(n, 10, 4)
s=rnorm(n, X)
Z=as.data.frame(cbind(X,s))
#X also influences earnings. NOTE: in absence of this, the endogeneity of s
#would not be a problem.
#X influences earnings in some nonlinear way.
nu=rnorm(n)
if (spec==1){
eta=X^2+nu
}
if (spec==2){
eta=log(abs(X))+nu
}
if (spec==3){
eta=X+nu
}
if (spec==4){
eta=sin(X)+nu
}
y=alpha+rho*s+eta
#OLS identifies rho?
reg=lm(y~Z$X+Z$s)
results[i, spec]=reg$coefficients[3]
}
hist(results[, spec], col = "blue",main = specifications[spec])
abline(v = rho, col="red")
}
This produces histograms of sampling distribution for OLS estimate for $\rho$:
I will check back later, since I am writing in a hurry. I am very curious though. Thank you.
Addendum: CIA insufficient?
I run the same simulation as above, but with different specifications. To be precise:
$$y_i=\alpha+s_i + \eta_i$$
with
$$\eta_i=X_i^2+\nu_i, \qquad \nu_i \sim N(0,1), X_i \sim Poisson(10)$$
Furthermore
$$s_i \sim Bin(X_i^2, 0.5)$$
##investigate the failure of CEF X^2
library(tidyverse)
##params
alpha=1
rho=1
###initialize data
nspecific=1
nsims=10^4
n=10^3
#matrix for results
results=matrix(data=NA, nrow=nsims, ncol=nspecific)
regressions=list()
#grid for graphs
par(mfrow=c(1,nspecific))
#specs in string
specifications=c("X^2")
for (spec in c(1:nspecific)){
for (i in c(1:nsims)){
#s is influenced by X in the same direction
X=rpois(n, 10)
#s=rnorm(n, sin(X), X^2)
s=rbinom(n, X^2, 0.5)
Z=as.data.frame(cbind(X,s))
#X also influences earnings. NOTE: in absence of this, the endogeneity of s
#would not be a problem.
#X influences earnings in some nonlinear way.
nu=rnorm(n)
if (spec==1){
eta=X^2+nu
}
if (spec==2){
eta=log(abs(X+1))+nu
}
if (spec==3){
eta=X+nu
}
if (spec==4){
eta=sin(X)+nu
}
y=alpha+rho*s+eta
#OLS identifies rho?
reg=lm(y~Z$X+Z$s)
results[i, spec]=reg$coefficients[3]
regressions[[i]]=reg
if (i%%100==0){
print(summary(reg))
}
}
hist(results[, spec], col = "blue",main = specifications[spec], xlim = c(0.9, 2.6))
abline(v = rho, col="red")
}
Now OLS seems (very) inconsistent. Even though CIA is satisfied, it seems to me.
As an informal test of conditional independence I fix a range of $X$ values and generate $s_i$ and $\eta_i$ conditional on $X_i=x$. PLotting seems to indicate CIA is satisfied.
fix_X=c(1:max(X))
#fix_X=sample(fix_X, 20, replace = FALSE)
trials=10^3
number_cols=7
par(mfrow=c(4, number_cols), mar=c(2,2,2,2))
for (x in fix_X){
for (i in trials){
nu=rnorm(trials)
eta=x^2+nu
s=s=rbinom(trials, x^2, 0.5)
}
#Chi squared test
plot(eta,s, xlim = c(min(eta), max(eta)), main = paste("X=",x))
}
$\eta$ on the horizontal axis, $s$ on the vertical axis" />
I am curious what the right conclusion is here. In particular
(i) Maybe my approach is faulty and CIA is in fact sufficient to identify linear constant causal effects. In this case I am happy to be corrected.
(ii) Maybe I stumbled upon an unnatural specification in which CIA is insufficient. But in most applications CIA is sufficient. In this case I am curious for sources that show this robustness.