<p>Everything is from page 58-59 of <em>Mostly Harmless Econometrics</em> (Angrist &amp; Pischke, 2009)</p>
<p>Assume the following causal constant effects model:</p>
<p>Potential outcomes of person <span class="math-container">$i$</span> as a function of <span class="math-container">$s$</span> are given by</p>
<p><span class="math-container">$f_i(s)=\alpha+\rho s + \eta_i$</span></p>
<p>assume (w.l.o.g, due to the presence of <span class="math-container">$\alpha$</span>) <span class="math-container">$E[\eta_i]=0$</span></p>
<p>Hence we observe outcome:</p>
<p><span class="math-container">$y_i=\alpha+\rho s_i +\eta_i$</span></p>
<p>The conditional independence assumption is assumed to hold. So:</p>
<p><span class="math-container">$s_i \perp f(s_i)|X_i$</span></p>
<p><span class="math-container">$X_i$</span> is a vector of observables.</p>
<p>Then the authors make the following argument:</p>
<p>We can write <span class="math-container">$\eta_i=X_i'\gamma+\nu_i$</span>
Where <span class="math-container">$\gamma$</span> are regression coefficients so <span class="math-container">$cov(X_i, \nu_i)=0$</span> by construction.</p>
<p>Then they assume <span class="math-container">$E[\eta_i|X_i]=X_i' \gamma$</span> or in other words <span class="math-container">$E[\nu_i|X_i]=0$</span>. This seems like a very strong parametric assumption on the form of <span class="math-container">$\eta_i$</span>. Using this assumption they show that in this case the model <span class="math-container">$y_i=\alpha+\rho s_i + X_i' \gamma +\nu_i$</span> is a regression and in particular <span class="math-container">$\rho$</span> is identified and can be estimated by OLS, including these covariates. I understand all this.</p>
<p>Commonly however, it is claimed by people that if CIA holds, then <span class="math-container">$\rho$</span> is identified and can be estimated by OLS, including these covariates. A weaker claim, since it is not assumed that <span class="math-container">$E[\nu_i | X_i]=0$</span>. Can this be proved?</p>
<p><strong>My own workings</strong></p>
<p>Iff <span class="math-container">$\rho$</span> is regression coefficient in model of form</p>
<p><span class="math-container">$y_i=\alpha+\rho s_i +\beta' X_i+e_i$</span> (1.1)</p>
<p>(I assume full rank assumption holds, sucht that there exist unique set of <span class="math-container">$\alpha$</span> and coefficients on <span class="math-container">$s_i$</span> and <span class="math-container">$X_i$</span> that make it regression). Then it must hold that there exist <span class="math-container">$\alpha, \beta$</span> such that</p>
<p>(i) <span class="math-container">$cov(X_i, e_i)=0$</span> (<span class="math-container">$e_i$</span> is a function of coefficients)</p>
<p>(ii) <span class="math-container">$cov(s_i, e_i)=0$</span></p>
<p>We assume instead of the linear specification of the CEF (condtional expectation function) of <span class="math-container">$\eta_i$</span> the following:</p>
<p><span class="math-container">$\eta_i=f(X_i)+u_i$</span> with <span class="math-container">$E[u_i | X_i]=0$</span>.</p>
<p>Then we can rewrite equation (1.1) as</p>
<p><span class="math-container">$y_i=\alpha+\rho s_i +\beta' X_i+[u_i+f(X_i)-X_i'\beta]$</span> (1.1)</p>
<p>Then it is straightforward to see that for identification we must have</p>
<ol>
<li><p><span class="math-container">$cov(s_i, f(X_i)-X_i' \beta)=0$</span></p>
</li>
<li><p><span class="math-container">$cov(X_i'\beta, f(x_i))=Var(X_i' \beta)$</span></p>
</li>
</ol>
<p>I don't see how the CIA is sufficient here.</p>
<p><strong>Simulation</strong></p>
<p>I have ran a simulation in R with <span class="math-container">$f$</span> linear, quadratic, sine and logarithm for the case <span class="math-container">$X_i \in \mathbb{R}$</span>. This suggests that indeed the CIA is sufficient for identification of <span class="math-container">$\rho$</span> via OLS:</p>
<pre><code>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(&quot;X^2&quot;, &quot;log(|X|)&quot;, &quot;aX&quot;, &quot;sin(X)&quot;)
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 = &quot;blue&quot;,main = specifications[spec])
  abline(v = rho, col=&quot;red&quot;)
}
</code></pre>
<p>This produces histograms of sampling distribution for OLS estimate for <span class="math-container">$\rho$</span>:</p>
<p><a href="https://i.sstatic.net/rtxFJ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/rtxFJ.png" alt="enter image description here" /></a></p>
<p>I will check back later, since I am writing in a hurry. I am very curious though. Thank you.</p>
<p><strong>Addendum: CIA insufficient?</strong></p>
<p>I run the same simulation as above, but with different specifications. To be precise:</p>
<p><span class="math-container">$$y_i=\alpha+s_i + \eta_i$$</span></p>
<p>with</p>
<p><span class="math-container">$$\eta_i=X_i^2+\nu_i, \qquad \nu_i \sim N(0,1), X_i \sim Poisson(10)$$</span></p>
<p>Furthermore</p>
<p><span class="math-container">$$s_i \sim Bin(X_i^2, 0.5)$$</span></p>
<pre><code>##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(&quot;X^2&quot;)
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<span class="math-container">$X+Z$</span>s)
    results[i, spec]=reg$coefficients[3]
    regressions[[i]]=reg
    if (i%%100==0){
      print(summary(reg))
    }
    
    
  }
  hist(results[, spec], col = &quot;blue&quot;,main = specifications[spec], xlim = c(0.9, 2.6))
  abline(v = rho, col=&quot;red&quot;)
}



</code></pre>
<p><a href="https://i.sstatic.net/6ZnIf.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/6ZnIf.png" alt="enter image description here" /></a></p>
<p>Now OLS seems (very) inconsistent. Even though CIA is satisfied, it seems to me.</p>
<p>As an informal test of conditional independence I fix a range of <span class="math-container">$X$</span> values and generate <span class="math-container">$s_i$</span> and <span class="math-container">$\eta_i$</span> conditional on <span class="math-container">$X_i=x$</span>. PLotting seems to indicate CIA is satisfied.</p>
<pre><code>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(&quot;X=&quot;,x))
  
}

</code></pre>
<p><a href="https://i.sstatic.net/iTr7Z.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/iTr7Z.png" alt="<span class="math-container">$\eta$</span> on the horizontal axis, <span class="math-container">$s$</span> on the vertical axis" /></a></p>
<p>I am curious what the right conclusion is here. In particular</p>
<p>(i) Maybe my approach is faulty and CIA <em>is</em> in fact sufficient to identify linear constant causal effects. In this case I am happy to be corrected.</p>
<p>(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.</p>

CC BY-SA 4.0
2022-11-03T16:09:33.007Z
What do you mean if it can be supported? If I am not mistaken they actually have proof in the book
csilvia
CC BY-SA 4.0
2022-11-04T08:19:19.137Z
I mean proved @csilvia. I cannot find the proof
user18214
<econometrics><treatment-effect>
Sufficiency of CIA for identification in constant effects linear model
user18214
# Sufficiency of CIA for identification in constant effects linear model

(Asked by: username_0 on 2022-11-03)

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.

**Tags:** econometrics, treatment-effect

> **Comments:**
> **username_1**: What do you mean if it can be supported? If I am not mistaken they actually have proof in the book  
> **username_0**: I mean proved @username_1. I cannot find the proof  

---

## 0 answers

