Inferência Causal

IV

Prof. Carlos Trucíos
ctrucios@unicamp.br

Instituto de Matemática, Estatística e Computação Científica (IMECC),
Universidade Estadual de Campinas (UNICAMP).

Introdução

Introdução

  • Confusão: variáveis de confusão não mensuradas geram estimadores viesados do efeito causal.
  • Para identificar o efeito causal de \(D\) sob \(Y\) (com variáveis de confusão não medidas), precisamos de uma variável \(Z\) que satisfaça as seguintes caracteristicas:

Introdução

Exemplo 1

Angrist e Krueger (1991) estudaram como a escolaridade (em anos) impacta nos salários. Eles utilizaram o trimestre de nascimento como variável instrumental. Esta IV é válida pois é trimestre de nascimento é pseudo-ateatório, afeta os anos de escolaridade (dependendo o trimetre de nascimento, algumas crianças começam a escola com mais ou menos anos) e não parece afetar diretamente os salários.

Exemplo 2

Angrist e Evans (1998) estudaram o efeito do tamanho da família na empregabilidade da mãe. Eles utilizaram a composição sexual dos irmãos como IV. Esta IV é valida por causa da pseudo-aleatorização da composição sexual dos irmãos. Além disso, os pais em os EUA com dois filhos do mesmo sexo têm maior probabilidade de ter um terceiro filho do que aqueles pais com dois filhos de sexo diferente. Também é plausível que a composição sexual dos irmãos não afeta diretamente o emprego e o trabalho da mãe

IV

IV

Seja \(Y\) uma v.a e \(D\) uma v.a (ou vetor aleatório) com segundo momento finito tais que \[Y = D^T \beta + e,\] em que \(\mathbb{E}(D\epsilon) = 0.\)

O coeficiente populacional por MQO é dado por \[\beta = \arg \min_b \mathbb{E}(Y - D^T b)^2 = \mathbb{E}(DD^T)^{-1}\mathbb{E}(DY).\]

O estimador de MQO é dado por \[\hat{\beta} = \Big (\displaystyle \sum_{i = 1}^n D_i D_i^T \Big)^{-1} \sum_{i = 1}^n D_i Y_i\]

IV

\[\begin{align} \hat{\beta} & = \Big (\displaystyle \sum_{i = 1}^n D_i D_i^T \Big)^{-1} \sum_{i = 1}^n D_i Y_i, \\ & = \Big (\displaystyle \sum_{i = 1}^n D_i D_i^T \Big)^{-1} \sum_{i = 1}^n D_i (D_i^T \beta + e_i), \\ & = \beta + \Big ( \displaystyle \sum_{i = 1}^n D_i D_i^T \Big)^{-1} \Big (\sum_{i = 1}^n D_i e_i\Big), \\ & \xrightarrow{p} \beta + \mathbb{E}(DD^T)^{-1} \underbrace{\mathbb{E}(D\epsilon)}_{0}, \\ & = \beta \end{align}\]

\(\hat{\beta}\) converge em probabilidade para \(\beta\)

IV

E se o modelo for da forma \[Y = D^T \beta + e, \quad \text{mas } \quad \mathbb{E}(D\epsilon) \neq 0?\]

Neste caso, teremos que

\[\hat{\beta} \xrightarrow{p} \beta + \mathbb{E}(DD^T)^{-1} \mathbb{E}(D\epsilon) \neq \beta\]

Isto muda completamente o modelo anterior e o estimador deixa de ter boas propriedades.

Definição

Quando \(\mathbb{E}(De) = 0\) dizemos que \(D\) é exógena e quando \(\mathbb{E}(De) \neq 0\) dizemos que \(D\) é endógena.
⚠️ (esta definição não é única em econometria) ⚠️

IV

Quando \(D\) é endógena, \(\hat{\beta}\) é inconsistente para \(\beta\). Assim, se quisermos um estimador consistente precisamos utilizar informação adicional, surgindo assim o modelo de variáveis instrumentais (IV).

Definição: Modelos linear de IV

\[Y = D^T \beta + e, \quad com \quad \mathbb{E}(Z \epsilon) = 0\]

  • O modelo de IV permite que \(\mathbb{E}(De) \neq 0\) mas precisa que \(\mathbb{E}(Z \epsilon) = 0\)
  • \(\mathbb{E}(e) = 0\) está implícita e permite incluir intercepto no modelo.
  • A suposição de que \(Z\) e \(\epsilon\) devem ser não correlacionados não ajuda muito por si só (afinal, qualquer perturbação aleatória é também não correlacionada com \(\epsilon\)).
  • Assim, \(Z\) deve também ser correlacionado com \(D\).

IV

IV: Caso identificado

Consideremos o caso em que \(Z\) e \(D\) tem a mesma dimensão e \(\mathbb{E}(Z D^T)\) tem posto completo.

\[\begin{align} \mathbb{E}(Ze) & = \mathbb{E}(Z[Y - D^T\beta]), \\ & = \mathbb{E}(ZY) - \mathbb{E}(ZD^T)\beta, \\ \beta & = \mathbb{E}(ZD^T)^{-1}\mathbb{E}(ZY). \end{align}\]

O estimador MQO é dado por

\[\hat{\beta}_{IV} = \Big (\displaystyle \sum_{i = 1}^n Z_i D_i^T \Big)^{-1} \sum_{i = 1}^n Z_i Y_i\]

IV: Caso identificado

Exemplo

Consideremos o modelo com intercepto e \(D \in \mathbb{R}\). \[Y = \alpha + \beta D + \epsilon,\] em que \(\mathbb{E}(\epsilon) = 0\) e \(\mathbb{C}ov(\epsilon, Z) = 0\).

Neste modelo,

\[\mathbb{C}ov(Z, Y) = \beta \mathbb{C}ov(Z, D)\]

\[\beta = \dfrac{\mathbb{C}ov(Z, D)}{\mathbb{C}ov(Z, Y)} = \dfrac{\mathbb{C}ov(Z, D) / \mathbb{V}(Z)}{\mathbb{C}ov(Z, Y) / \mathbb{V}(Z)}\]

Que é equivalente ao coeficiente associado a \(Z\) na regressão por MQO de \(Y\) e \(D\) sob \(Z\).

IV: Caso sobreidentificado

  • O caso anterior é util quando \(Z\) e \(D\) tem a mesma dimensão (caso identificado).
  • Se \(Z\) tiver dimensão menor do que \(D\), \(\beta\) tem infinitas soluções.
  • Este caso é conhecido como subidentificado, refere-se a quando \(\beta\) não é unicamente identificado (não será discutido aqui)
  • Para garantirmos identificabiblidade, precisamos que a dimensão de \(Z\) seja, pelo menos, igual à dimensão de \(D\).
  • Quando \(Z\) tem dimensão maior do que \(D\), temos formas alternativas de determinar \(\beta\) a partir da relação \[\mathbb{E}(ZY) = \mathbb{E}(ZD^T)\beta.\]
  • Este caso é conhecido sobre sobreidentificado e nestes casos utilizamos MQ2E.

IV: Caso sobreidentificado

MQ2E

Para o obter o estimador através do método de minimos quadrados em 2 estágios, é preciso ajustar dois modelos de regressão:

  1. Ajustar por MQO a regressão de \(D\) sob \(Z\) e obter os valores ajustados \(\hat{D}\)
  2. Ajustar por MQO a regressão de \(Y\) sob \(\hat{D}\) e obter o coeficiente \(\hat{\beta}_{MQ2E}\).

\[\begin{align} \hat{\beta}_{MQ2E} & = \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big)^{-1} \sum_{i = 1}^n \hat{D}_i Y_i, \\ & = \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big)^{-1} \sum_{i = 1}^n \hat{D}_i (D_i^T \beta + \epsilon_i), \\ & = \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big)^{-1} \sum_{i = 1}^n \hat{D}_i D_i^T \beta + \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big)^{-1} \sum_{i = 1}^n \hat{D}_i \epsilon_i), \\ \end{align}\]

IV: Caso sobreidentificado

Da primeira regressão temos que \(D_i = \hat{D}_i + \tilde{D}_i\), tal que \[\displaystyle \sum_{i = 1}^n \hat{D}_i \tilde{D}_i^T = 0\]

Então, \[\sum_{i = 1}^n \hat{D}_i D_i^T = \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T.\]

\[\hat{\beta}_{MQ2E} = \beta + \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big)^{-1} \sum_{i = 1}^n \hat{D}_i \epsilon_i\]

IV: Caso sobreidentificado

Da primeira regressão temos que \[\hat{D}_i = \hat{\Gamma}^T Z_i.\]

\[\begin{align} \hat{\beta}_{MQ2E} & = \beta + \Big (\hat{\Gamma}^T \big ( n^{-1}\displaystyle \sum_{i = 1}^n Z_i Z_i^T\big) \hat{\Gamma} \Big)^{-1} \hat{\Gamma}^T \underbrace{n^{-1}\sum_{i = 1}^n Z_i \epsilon_i}_{\xrightarrow{p} \mathbb{E}(Z\epsilon)} \xrightarrow{p} \beta \\ \end{align}\]

Cuja variância é dada por

\[\hat{V}_{MQ2E} = \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big )^{-1} \Big (\sum_{i = 1}^n \hat{\varepsilon}_i^2 \hat{D}_i \hat{D}_i^T \Big ) \Big (\sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big )^{-1},\] em que \(\hat{\varepsilon}_i = Y_i - \hat{\beta}_{MQ2E}D_i\)

IV: Caso sobreidentificado

Ou seja,

\[\hat{V}_{MQ2E} = \Big ( \displaystyle \sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big )^{-1} \Big (\sum_{i = 1}^n \hat{\varepsilon}_i^2 \hat{D}_i \hat{D}_i^T \Big ) \Big (\sum_{i = 1}^n \hat{D}_i \hat{D}_i^T \Big )^{-1},\]

é igual ao estimador EHW da variância mas substituindo \(\hat{\varepsilon}_i = Y_i - \hat{\beta}_{MQ2E}\hat{D}_i\) por \(\hat{\varepsilon}_i = Y_i - \hat{\beta}_{MQ2E}D_i\).

IV: exemplo

Consideremos o seguinte modelo:

\[\begin{align} Y_i & = \beta_0 + \beta_1 D_i + \beta_2^T X_i + \epsilon_i, \\ D_i & = \gamma_0 + \gamma_1 Z_1 + \gamma_2^T X_i + \varepsilon_i, \end{align}\] em que \(D\) é endógena, \(Z\) é a IV e \(X\) são outras variáveis (todas exógenas).

Este é um caso especial do visto anteriormente com:

  • \(D = (1, D, X)\)
  • \(Z = (1, Z, X)\)

IV: exemplo

MQ2E

Para o obter o estimador através do método de minimos quadrados em 2 estágios, é preciso ajustar dois modelos de regressão:

  1. Ajustar por MQO a regressão de \(D\) sob \((1, Z, X)\) e obter os valores ajustados \(\hat{D}\)
  2. Ajustar por MQO a regressão de \(Y\) sob \((1, \hat{D}, X)\) e obter o coeficiente \(\hat{\beta}_{MQ2E}\), em particular \(\hat{\beta}_{1, MQ2E}\)

Aplicação

Aplicação

Aplicação

Card (1993) está interessado em estimar o efeito da educação sobre os salários. Os datos estão disponíveis aqui e contém informação de 3010 homens com idades entre 14 e 24 no ano de 1966. Card utiliza como IV (\(Z\)) uma variável binária que recebe o valor de 1 se a pessoa cresceu perto a uma faculdade, \(D\) mede os anos de educação e \(Y\) é o log-salário. Outras covariáveis tais como idade, raça, etc, são também incluidas.

Code
library(car)
library(dplyr)
dados <- read.csv("datasets/card1995.csv")
glimpse(dados)
Rows: 3,010
Columns: 36
$ X        <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18…
$ id       <int> 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 2…
$ nearc2   <int> 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ nearc4   <int> 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ educ     <int> 7, 12, 12, 11, 12, 12, 18, 14, 12, 12, 9, 12, 11, 11, 16, 14,…
$ age      <int> 29, 27, 34, 27, 34, 26, 33, 29, 28, 29, 28, 26, 24, 30, 31, 2…
$ fatheduc <int> NA, 8, 14, 11, 8, 9, 14, 14, 12, 12, 11, 11, 11, 11, NA, 15, …
$ motheduc <int> NA, 8, 12, 12, 7, 12, 14, 14, 12, 12, 12, 6, 6, 6, 8, 12, 8, …
$ weight   <int> 158413, 380166, 367470, 380166, 367470, 380166, 367470, 49663…
$ momdad14 <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1…
$ sinmom14 <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0…
$ step14   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg661   <int> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1…
$ reg662   <int> 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0…
$ reg663   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg664   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg665   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg666   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg667   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg668   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ reg669   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ south66  <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ black    <int> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0…
$ smsa     <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ south    <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1…
$ smsa66   <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ wage     <int> 548, 481, 721, 250, 729, 500, 565, 608, 425, 515, 225, 400, 4…
$ enroll   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ KWW      <int> 15, 35, 42, 25, 34, 38, 41, 46, 32, 34, 29, 34, 22, 27, 43, 3…
$ IQ       <int> NA, 93, 103, 88, 108, 85, 119, 108, 96, 97, 84, 89, 93, 74, 1…
$ married  <int> 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 1, 6, 1, 1…
$ libcrd14 <int> 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1…
$ exper    <int> 16, 9, 16, 10, 16, 8, 9, 9, 10, 11, 13, 8, 7, 13, 9, 4, 16, 9…
$ lwage    <dbl> 6.306275, 6.175867, 6.580639, 5.521461, 6.591674, 6.214608, 6…
$ expersq  <int> 256, 81, 256, 100, 256, 64, 81, 81, 100, 121, 169, 64, 49, 16…
$ region   <int> 661, 661, 661, 662, 662, 662, 662, 662, 662, 662, 669, 662, 6…

Aplicação

Code
Y <- dados$lwage
D <- dados$educ
Z <- dados$nearc4
X <- dados[, c("exper", "expersq", "black", "south", "smsa", "reg661", "reg662", 
               "reg663", "reg664", "reg665", "reg666", "reg667", "reg668", "smsa66")]
X <- as.matrix(X)
Code
D_hat <- lm(D ~ X + Z)$fitted.values
modelo_iv <- lm(Y ~ D_hat + X)
beta_hat <- coef(modelo_iv)[2]
beta_hat
    D_hat 
0.1315038 
Code
modelo_iv$residuals <- Y - cbind(1, D, X) %*% coef(modelo_iv)
V <- sqrt(hccm(modelo_iv, type = "hc0")[2, 2])
Code
cbind(beta_hat, beta_hat - 1.96*V, beta_hat + 1.96*V)
       beta_hat                     
D_hat 0.1315038 0.02566476 0.2373429

Referências

  • Peng Ding (2023). A First Course in Causal Inference. Capítulo 23.