Anatomia de regressão intrigante | R-bloggers

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Considere um modelo de regressão com a seguinte estrutura causal:



A variável x1 afeta y direta e indiretamente via x2. O código R a seguir implementa o modelo e simula um conjunto de dados correspondente.

set.seed(1)
n = 10000
beta1 = 1; beta2=1
x1 = rnorm(n,,1)
x2 = x1+rnorm(n,,1)
y = beta1*x1 + beta2*x2 + rnorm(n,,1)

Suponha que desejemos estimar consistentemente o efeito linear direto beta1 de x1 em y. Para fazer isso, podemos simplesmente estimar uma regressão linear múltipla, onde adicionamos x2 como uma variável de controle:

## (Intercept)          x1          x2 
## 0.007553765 0.998331323 1.000934100

Mas o que significa intuitivamente adicionar x2 como variável de controle? O teorema de Frisch-Waugh-Lovell implica que obtemos o mesmo estimador para beta1 como na regressão múltipla acima, pelo seguinte procedimento:

# y.tilde is residual of regression 
# y on x2
y.tilde = resid(lm(y~x2))

# x1.tilde is residual of regression 
# x1 on x2
x1.tilde = resid(lm(x1~x2))

# Regression y.tilde on x1.tilde
# we get the same estimate for beta1
# as in the multiple regression with x1 and x2
coef(lm(y.tilde ~ x1.tilde))
##   (Intercept)      x1.tilde 
## -5.104062e-17  9.983313e-01

Portanto, controlar x2 significa que regredimos essencialmente as variações residuais de y e x1 que não pode ser explicado linearmente por x2 um no outro. Até agora, isso parece intuitivo.

O interessante é que se obtém a mesma estimativa para beta1 Também com 1 das duas regressões a seguir abaixo (mas somente a regressão acima também gera erros padrão corretos):

# Approach A
lm(y.tilde ~ x1)
# Approach B
lm(y ~ x1.tilde)

A abordagem A regride a variação residual de y que não pode ser previsto linearmente por x2 em x1. A abordagem B regride y na variação residual de x1 que não pode ser previsto linearmente por x2.

Apenas uma abordagem produz uma estimativa consistente de beta1. Adivinhe qual deles…

Leia Também  Como verificar sua necessidade de seguro?

Vamos checar:

# A: Inconsistent
coef(lm(y.tilde ~ x1))[2]
# B: Consistent
coef(lm(y ~ x1.tilde))[2]

Portanto, apenas a abordagem B funciona. Angrist e Pischke (2009) se referem a ele como anatomia de regressão. Para mim, esse resultado foi um pouco intrigante por muito tempo, porque minha interpretação intuitiva do que significa controlar x2 estava mais de acordo com a abordagem A. Primeiro, quero esclarecer essa intuição e explicar por que a abordagem A não funciona. Depois, quero dar alguma intuição para a abordagem de trabalho B.

Uma intuição para variáveis ​​de controle e por que a abordagem A falha

Eu tenho intuições diferentes para o que controlar x2 significa na regressão linear:

y = beta0 + beta1*x1 + beta2*x2 + eps

Uma das minhas intuições é a seguinte:

“Controlando por x2, subtraímos essencialmente a variação que pode ser explicada linearmente por x2 de y, ou seja, até um erro de estimativa, subtraímos beta2*x2. ”

Essa interpretação sugere que a abordagem A deve funcionar, mas essa abordagem não obtém uma estimativa consistente para beta1. Então a intuição acima está errada? Não completamente, mas a qualificação “até um erro de estimativa” causa problemas para a abordagem A. Considere o código a seguir.

# Modified approach A
y.tilde2 = y - beta2*x2
coef(lm(y.tilde2 ~x1))[2]

É uma versão modificada da abordagem A. Ele calcula a variação residual y.tilde2 subtraindo diretamente beta2*x2 de y. Agora temos um estimador consistente de beta1 ao regredir y.tilde2 em x1.

Mas a abordagem A difere porque subtraímos beta2.hat*x2 de y Onde beta2.hat é estimado na regressão do primeiro estágio:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
# Same result as original approach A
beta2.hat = coef(lm(y~x2))[2]
beta2.hat # inconsistent estimate of beta2
y.tilde = y-beta2.hat*x2
coef(lm(y.tilde ~x1))[2] # inconsistent estimate of beta1

O problema com a abordagem A é que não estimamos beta2.hat consistentemente na regressão de y em x2. Em vez disso, desde x1 e x2 estão correlacionados, beta2.hat também captura alguns dos efeitos diretos de x1 em y. Isso significa em y.tilde já removemos parte do efeito de x1 em y que queremos estimar. Portanto, a abordagem A produz um estimador para beta1 isso é tendencioso para 0.

Leia Também  Mapa interativo Covid-19 (usando R com brilhante, folheto e dplyr)

Observação: No cálculo original da abordagem A, também subtraímos a constante estimada da regressão inicial ao calcular y.tilde, mas isso não afeta o coeficiente de inclinação na regressão do segundo estágio.

Curiosamente, em alguns artigos empíricos, é realizada uma abordagem semelhante à abordagem A, ou seja, primeiro calculamos os resíduos de y a partir de uma primeira regressão e depois regride esses resíduos em outro conjunto de variáveis ​​explicativas. Mas o cálculo acima mostra que é preciso ter muito cuidado com essa abordagem, pois ela só funciona se a primeira regressão produzir estimativas consistentes.

Vamos considerar um exemplo em que essa abordagem funcionaria. Considere o seguinte modelo modificado:



Agora temos uma variável adicional z isso afeta x2 mas não está correlacionado com x1.

z = rnorm(n,,1)
x2 = x1+z+rnorm(n,,1)
y = beta1*x1 + beta2*x2 + rnorm(n,,1)

Agora conduzimos uma variação da abordagem A, onde y.tilde3 são os resíduos de uma regressão variável instrumental de y em x2 usando z como instrumento:

library(AER)
reg1 = ivreg(y~x2|z)
coef(reg1)[2] # consistent beta2.hat
y.tilde3 = resid(reg1)
coef(lm(y.tilde3 ~ x1))[2] # consistent beta1.hat

Agora vemos que a regressão y.tilde3 em x1 produz um estimador consistente de beta1.

Por que a abordagem B funciona

Vamos agora discutir por que a abordagem B funciona. Dada a nossa estrutura causal, acho mais intuitivo discutir primeiro por que uma abordagem semelhante funciona para estimar consistentemente beta2.

# x2.tilde is residual from regression
# of x2 on x1
x2.tilde = resid(lm(x2~x1))
# consistent estimate of beta2
coef(lm(y ~ x2.tilde))[2]

Aqui eu tenho a seguinte intuição por que funciona. Intuitivamente, para estimar consistentemente o efeito causal da x2 em y precisamos destilar variação de x2 que não está correlacionado com x1. Se regredimos x2 em x1, os resíduos x2.tilde desta regressão são por construção não correlacionada com x1. Eles descrevem a variação de x2 que não pode ser previsto linearmente por x1. Essa é exatamente a variação de x2 necessário estimar consistentemente beta2.

O procedimento equivalente também trabalha para estimar beta1 consistentemente:

x1.tilde = resid(lm(x1~x2))
coef(lm(y ~ x1.tilde))[2] # consistent

Então, mesmo que x2 não influencia x1 podemos igualmente destilar em x1.tilde a variação relevante em x1 que não está correlacionado com x2. Para a anatomia da regressão, é irrelevante qual direção causal gerou a correlação entre x1 e x2.

Acho incrível que, ao longo de muitos anos, ainda aprenda novas intuições para conceitos econométricos básicos, como a regressão linear múltipla. Atualmente, acho que a introdução de regressão múltipla via teorema de Frisch-Waugh-Lovell e a anatomia da regressão pode ser muito mais útil para construir intuição em um curso empírico aplicado do que cobrir a álgebra matricial. (É claro que é uma história diferente se você quiser provar teoremas econométricos.) Para um exemplo de um curso, você pode conferir o material on-line aberto (vídeos, questionários, exercícios interativos R) do meu curso Análise de Mercado com Econometria e aprendizado de máquina.

Leia Também  avaliando modelos de espaço vetorial com analogias de palavras

Referências

Angrist, Joshua D. e Jörn-Steffen Pischke. 2009. Econometria na maior parte inofensiva: companheiro de um empirista.



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br