Até agora nossa estatégia para assegurar a premissa de independência condicional dos resultados potenciais com relação ao tratamento foi controlar por variáveis de confusão, \((y_{0i},y_{1i}) \perp T_{i} \mid X_{i}\). Com a aleatorização ou experimentos controlados essa premissa era diretamente assegurada, pois a natureza aleatória do tratamento garante a independência. Com dados observacionais isso só ocorre com a inclusão das variáveis omitidas garantindo o balanceamento e a sobreposição destas variáveis nos grupos tratado e controle.
O que acontece quando não podemos controlar por variáveis omitidas? Vamos supor, usando o exemplo em Angrist e Pischke, que estamos interessados no efeito da escolaridade na renda. Variáveis que podem influir tanto na escolaridade quanto na renda são o ambiente familiar, as abilidades inatas, a motivação pessoal etc. Essas variáveis não são facilmente mensuradas, mas sabemos que elas podem afetar substantivamente nossa conclusão sobre o efeito da escolaridade na renda. Como podemos lidar com isso?
Uma estratégia é substituirmos a escolaridade por uma variável fortemente correlacionada com ela, mas que seja independente da abilidade, motivação e ambiente familiar. Ao mesmo tempo, essa variável só deve impactar a renda por meio do seu impacto na escolaridade. Chamamos uma variável com estas características de variável instrumental.
Usando a notação de Angrist e Pischke a relação entre a variável instrumental, o tratamento e a variável de interesse se dá em duas etapas. Primeiro temos a relação entre o tratamento (\(T\)) e a variável instrumental (\(z\))1, o primeiro estágio e, então a regressão da variável de interesse (\(Y\)) no instrumento:
\[ \begin{align} T_{i} &= X'\pi_{10} + \pi_{11}z_{i} + \xi_{1i} \\ Y_{i} &= \alpha'X_{i} + \rho[X'\pi_{10} + \pi_{11}z_{i} + \xi_{1i}] + \eta_{i} \\ &= X_{i}[\alpha + \rho\pi_{10}] + \rho\pi_{11}z_{i} + [\rho\xi_{1i} + \eta_{i}] \\ &= X'\pi_{20} + \pi_{21}z_{i} + \xi_{2i} \end{align} \]
Na última linha da equação \(\pi_{20} = \alpha + \rho\pi_{10}\), \(\eta_{2i} = \rho\xi_{1i} + \eta_{i}\) e \(\pi_{21} = \rho\pi_{11}\), Desta última igualdade resulta que o efeito causal do tratamento é dado por \(\rho = \frac{\pi_{21}}{\pi_{11}}\).
Se rearranjarmos a última linha da equação temos
\[Y_{i} = \alpha'X_{i} + \rho[X'\pi_{10} + \pi_{11}z_{i}] + \xi_{2i}\] O que mostra que o efeito causal de \(T\) em \(Y\) pode ser obtido fazendo a regressão de \(Y_{i}\) em \(X_{i}\) e nos valores ajustados da regressão de \(T_{i}\) em \(X_{i}\) \(z_{i}\). Na prática obtemos os valores ajustados
\[ \hat{T_{i}} = X' \pi_{10} + \pi_{11} z_{i} \] e substituimos na equação
\[Y_{i} = \alpha'X_{i} + \rho \hat{T_{i}} + [\eta_{i} + \rho(T_{i} - \hat{T_{i}})]\] Essa equação é conhecida como 2SLS (two-stage least square) pois envolve a estimativa dos valores preditos \(\hat{t}\) num primeiro estágio e, então, o uso desses valores para obter \(Y_{i}\) num segundo estágio. Em geral, devido ao cálculo dos erros padrão e de outros ajustes (ver Gelman e Hill pg. 224), a estimativa é feita utilizando-se algum agoritmo específico como o ivreg() de Fox, Kleiber e Zeileis (2020)
library(ivreg)
## Registered S3 methods overwritten by 'ivreg':
## method from
## anova.ivreg AER
## hatvalues.ivreg AER
## model.matrix.ivreg AER
## predict.ivreg AER
## print.ivreg AER
## print.summary.ivreg AER
## summary.ivreg AER
## terms.ivreg AER
## update.ivreg AER
## vcov.ivreg AER
##
## Attaching package: 'ivreg'
## The following objects are masked from 'package:AER':
##
## ivreg, ivreg.fit
data("SchoolingReturns", package = "ivreg")
summary(SchoolingReturns[, 1:8])
## wage education experience ethnicity smsa
## Min. : 100.0 Min. : 1.00 Min. : 0.000 other:2307 no : 864
## 1st Qu.: 394.2 1st Qu.:12.00 1st Qu.: 6.000 afam : 703 yes:2146
## Median : 537.5 Median :13.00 Median : 8.000
## Mean : 577.3 Mean :13.26 Mean : 8.856
## 3rd Qu.: 708.8 3rd Qu.:16.00 3rd Qu.:11.000
## Max. :2404.0 Max. :18.00 Max. :23.000
## south age nearcollege
## no :1795 Min. :24.00 no : 957
## yes:1215 1st Qu.:25.00 yes:2053
## Median :28.00
## Mean :28.12
## 3rd Qu.:31.00
## Max. :34.00
m_ols <- lm(log(wage) ~ education + poly(experience, 2) + ethnicity + smsa + south,
data = SchoolingReturns)
summary(m_ols)
##
## Call:
## lm(formula = log(wage) ~ education + poly(experience, 2) + ethnicity +
## smsa + south, data = SchoolingReturns)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.59297 -0.22315 0.01893 0.24223 1.33190
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.259820 0.048871 107.626 < 2e-16 ***
## education 0.074009 0.003505 21.113 < 2e-16 ***
## poly(experience, 2)1 8.931699 0.494804 18.051 < 2e-16 ***
## poly(experience, 2)2 -2.642043 0.374739 -7.050 2.21e-12 ***
## ethnicityafam -0.189632 0.017627 -10.758 < 2e-16 ***
## smsayes 0.161423 0.015573 10.365 < 2e-16 ***
## southyes -0.124862 0.015118 -8.259 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3742 on 3003 degrees of freedom
## Multiple R-squared: 0.2905, Adjusted R-squared: 0.2891
## F-statistic: 204.9 on 6 and 3003 DF, p-value: < 2.2e-16
# Como discutido acima escolaridade (education) é endógena, assim como experiencia (que é função linear de escolaridade)
# Para lidar com isso usamos o instrumento "proximidade" geográfica a uma escola para escolaridade e "idade" para experiencia
m_iv <- ivreg(log(wage) ~ education + poly(experience, 2) + ethnicity + smsa + south |
nearcollege + poly(age, 2) + ethnicity + smsa + south,
data = SchoolingReturns)
summary(m_iv)
##
## Call:
## ivreg(formula = log(wage) ~ education + poly(experience, 2) +
## ethnicity + smsa + south | nearcollege + poly(age, 2) + ethnicity +
## smsa + south, data = SchoolingReturns)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.82400 -0.25248 0.02286 0.26349 1.31561
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.48522 0.67538 6.641 3.68e-11 ***
## education 0.13295 0.05138 2.588 0.009712 **
## poly(experience, 2)1 9.14172 0.56350 16.223 < 2e-16 ***
## poly(experience, 2)2 -0.93810 1.58024 -0.594 0.552797
## ethnicityafam -0.10314 0.07737 -1.333 0.182624
## smsayes 0.10798 0.04974 2.171 0.030010 *
## southyes -0.09818 0.02876 -3.413 0.000651 ***
##
## Diagnostic tests:
## df1 df2 statistic p-value
## Weak instruments (education) 3 3003 8.008 2.58e-05 ***
## Weak instruments (poly(experience, 2)1) 3 3003 1612.707 < 2e-16 ***
## Weak instruments (poly(experience, 2)2) 3 3003 174.166 < 2e-16 ***
## Wu-Hausman 2 3001 0.841 0.432
## Sargan 0 NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4032 on 3003 degrees of freedom
## Multiple R-Squared: 0.1764, Adjusted R-squared: 0.1747
## Wald test: 148.1 on 6 and 3003 DF, p-value: < 2.2e-16
O coeficiente causal encontrado acima, \(\rho\), era constante para todas as observações. Assumir que o efeito é o mesmo para todos é algo um tanto irrealista, algumas unidades podem responder melhor a um tratamento do que outras, por exemplo. Uma maneira de lidar com isso é permitir que o efeito varie com os indivíduos, isto é, agregamos um subscrito à \(\rho_{i}\). Uma consequência disso é que se o efeito é específico a uma determinada população ele pode ter validade interna, mas não ter muita validade externa, isto é, podemos estar seguros de estimar o efeito correto do tratamento em uma amostra, mas podemos fracassar ao utilizar esse efeito para predizer novoso valores. Já enfrentamos isso quando falamos de validação, o trade-off entre viés e variância, MSE treino e MSE teste.
Quando temos efeitos heterogêneos devemos assumir algumas premissas sobre nosso instrumento:
A premissa da independência exige ignorabilidade não só do tratamento, como também do instrumento, o que é um tanto razoável. A premissa da existência do primeiro estágio nos diz que o instrumento deve ter algum efeito sobre o tratamento. Utilizando o exemplo de Gelman e Hill, do efeito de um programa de TV sobre o desempenho escolar de crianças, o tratamento - exposição ao programa - deve ser afetado pelo instrumento - encorajamento a assistir ao programa. Naquele caso 90% dos encorajados assistiam regularmente ao programa contra 55% dos não encorajados. O instrumento, portanto, só afetou 35% dos encorajados, os outrs 55% assistiriam de qualquer maneira.
O efeito do tratamento só se aplica aos que eram afetados pelo instrumento. Isso divide as observações em três grupos:
Os compliers (aderentes) são aqueles com base nos quais podemos identificar o efeito causal. Os always takers e never takers não alteram o resultado potencial seja qual for o tratamento ou instrumento. A restrição de exclusão exige que o tratamento ou instrumento não altere o resultado desses não aderentes (no exemplo de Gelman e Hill o encorajamento não deve alterar o desempenho dos não aderentes). Além disso o efeito do instrumento só pode ter uma direção (monotonicidade). O encorajamento para ver o programa não pode fazer com que o indivíduo sucetível (aderente) deixe de ver o programa.
Com essas premissas justificamos o teorema do LATE (Local Average Treatment Effect). Supondo que o efeito causal é uma dummy (estimador de Wald) podemos expressá-lo como a razão da diferença nos efeitos potenciais esperados com relação ao tratamento e ao instumento
\[ \frac{E[Y_{i} \mid z_{i} = 1] - E[Y_{i} \mid z_{i} = 0]}{E[T_{i} \mid z_{i} = 1] - E[T_{i} \mid z_{i} = 0]} = E[Y_{1i} - Y_{0i} \mid T_{1i} > T_{0i}] \\ = E[\rho_i \mid \pi_{1i} > 0 ] \]
O que mostra que \(\rho_{i}\) é o efeito causal quando o efeito de \(Z_{i}\) em \(T_{i}\) existe e é maior que zero para todos. Mais uma vez, isso quer dizer que estamos estimando o efeito do tratamento apenas nos que foram afetados pelo instrumento, ou o efeito médio do tratamento nos tratados (ATT). Utilizando o estimador de Wald, podemos estimar a proporção de aderentes por meio do coeficiente do instrumento na regressão do tratamento neste instrumento. A regressão da variável de interesse no instrumento nos dá o efeito do tratamento em todos os tratados, o que se chama de intent to treat (ITT). A razão entre esse dois coeficientes é o ATT. Enquanto o ITT nos dá uma ideia do efeito do tratamento levando em conta a possibilidade de não adesão ele só pode ser generalizado se na próxima aplicação do tratamento tivermos o mesmo número de aderentes. Já o ATT nos dá o efeito do tratamento, sem se preocupar com o número de aderentes. Cada uma destas estimativas olha para o mesmo problema de ângulos diferentes.
Voltando à questão da validade interna e validade externa, o ATT nos dá a efetividade de nosso tratamento. No caso das crianças encorajadas a assistir ao programa de TV importa apenas se o desempenho destas crianças melhorou. O ATT, ou o ITT, não nos diz nada sobre o efeito de futuros encorajamentos para assistir a outros programas, não há valor preditivo nestes estimadores. Para poder prever é necessário saber por que o tratamento leva a determinado resultado, isto é, é necessário teoria (ver Angrist e Pischke, pg. 156).
Uma maneira ‘natural’ de lidar com o problema de variáveis omitidas aparece quando estamos lidando com dados em painel. Por enquanto vínhamos trabalhando apenas com dados de corte transversal (cross section), isto é, com uma fatia, um corte, de nossa população de interesse. Outra forma de dados aparece quando observamos as mesmas unidades (em geral indivíduos) durante um período de tempo. Esse tipo de dado demanda certos ajustes para gerar estimadores consistentes e eficientes, mas também gera uma oportunidade para lidar com características individuais que, quando não observadas, podem gerar viés.
Suponha que temos os dados de \(N\) indivíduos em \(T\) períodos de tempo compondo \(N \times T\) observações. Suponha também que queremos estimar um modelo de regressão de \(Y\) em \(k\) variáveis de \(X\), mas existe um componente específico de cada indivíduo que não pode ser controlado por não ser observado. O modelo tem a seguinte forma:
\[ Y_{it} = \alpha + \lambda_{i} + \beta_{1} X_{1it} + \beta_{2} X_{2it} + \beta_{3} X_{3it} + \dots + \beta_{k} X_{kit} + \epsilon_{it}\]
Onde \(\lambda_{i}\) é um componente específico a um indivíduo. Se esse componente, essa característica do indivíduo, for predeterminada, isto é, se ele representa diferenças fixas, duradouras, o modelo acima é um modelo de efeitos fixos. Se essa suposição estiver correta os coeficientes do modelo não apresentarão viés. \(\lambda_{i}\) entra no modelo como uma constante alterando o intercepto para cima ou para baixo e podemos re-expressar o modelo como:
\[\begin{equation*} Y_{it} = \alpha_{i} + \beta_{1} X_{1it} + \beta_{2} X_{2it} + \beta_{3} X_{3it} + \dots + \beta_{k} X_{kit} + \epsilon_{it} \end{equation*}\]
Onde \(\alpha_{i} = \alpha + \lambda_{i}\), uma composição da média entre os grupos de indivíduos (\(\alpha\)) e a média em cada grupo (\(\lambda_{i}\)). Se usarmos uma dummy para captar o efeito fixo podemos usar algumas estratégias para estimar esses modelos eliminando o problema do viés.
Uma estratégia é chamada de primeiras diferenças. Podemos obter dois modelos de regressão usando dois períodos de tempo para o mesmo indivíduo:
\[ \begin{align} Y_{it-1} &= \alpha_{i} + \beta_{1} X_{1it-1} + \beta_{2} X_{2it-1} + \beta_{3} X_{3it-1} + \dots + \beta_{k} X_{kit-1} + \epsilon_{it-1} \\ Y_{it} &= \alpha_{i} + \beta_{1} X_{1it} + \beta_{2} X_{2it} + \beta_{3} X_{3it} + \dots + \beta_{k} X_{kit} + \epsilon_{it} \end{align} \]
Repare que em uma equação temos o subscrito \(t-1\) e na outra \(t\), denotando dois períodos de tempo diferentes, para todas as variáveis exceto \(\alpha_{i}\) que contém o efeito fixo, que, por definição, não muda com o tempo. Se subtraímos as equações obtemos:
\[ \Delta Y_{i} = \beta_{1} \Delta X_{1i} + \beta_{2}\Delta X_{2i} + \beta_{3}\Delta X_{3i} + \dots + \beta_{k}\Delta X_{ki} + \Delta \epsilon_{i}\]
Onde \(\Delta Y_{i} = Y_{it} -Y_{it-1}\), assim como com as outras variáveis. Por estarmos tirando a diferença entre um período e o próximo esse método recebe o nome de primeiras diferenças. Ele resolve o problema do viés de seleção por remover qualquer efeito fixo na subtração, fazendo que os coeficientes não sejam enviesados.
Outro método para estimar modelos de efeito fixo é muito paracido com o das primerias diferenças. No lugar de subtrair um período do próximo subtraímos a média de cada variável:
\[ \overline Y_{i} = \alpha_{i} + \beta_{1}\overline X_{1i} + \beta_{2}\overline X_{2i} + \beta_{3}\overline X_{3i} + \dots + \beta_{k}\overline X_{ki} + \bar \epsilon_{i}\]
Como a média de uma constante é a mesma constante, \(\alpha_{i}\) aparece na equação. Se subtraímos essa equação da equação (1) obtemos:
\[Y_{it} - \overline Y_{i} = \beta_{1}( X_{1it} - \overline X_{1i})+ \beta_{2} (X_{2it} - \overline X_{2i})+ \beta_{3} (X_{3it} - \overline X_{3i}) + \dots + \beta_{k} (X_{kit} - \overline X_{ki}) + (\epsilon_{it} - \bar \epsilon_{i})\]
Mais uma vez eliminamos a variável de confusão e obtemos coeficientes não viesados. Esse é o método do desvio com relação à média. No MQO a estimativa do intercepto é \(\alpha_i = \overline{Y_i} - \beta\overline{X_i}\), portanto a inclusão de um indicador para cada indivíduo no modelo (1) é equivalente ao modelo de desvio com relação à média, tornado um modelo com dummies individuais um modelo não viesado. Toda vez que um modelo com dummies for inexequível, devido ao grande número de parâmetros a serem estimados, ou pelo sobreajuste que a insclusão desses parâmetros possa causar, podemos recorrer ao modelo de desvio da média como alternativa.
Essas mesmas estratégias se aplicam quando temos séries temporais de cortes transversais, ou cros-section, time-series*, em inglês. Neste caso, onde temos grupos de pessoas diferentes observadas no tempo, podemos comparar as médias no interior de cada grupo e remover os efeito idiossincráticos de cada grupo utilizadno os métodos acima.
Além de variáveis não observadas que podem impactar na diferença entre unidades também podemos ter variáveis não observadas que impactam nas diferenças entre os períodos de tempo. Se em algum período houve algo que possa ter afetado tanto o resultado quanto as variáveis explicativas isso gerará viés. Da mesma maneira que a inclusão de dummies individuais resolve o problema de viés nos cortes transversais, a inclusão de dummies para cada período resolve o problema para as séries temporais.
Ao introduzir os efeitos fixos mencionei que seus modelos partem da premissa que eles são constantes. Se relaxamos essa premissa e pensarmos as características individuais que podem gerar viés como uma realização de uma variável aleatória temos o que se chama de efeitos aleatórios (random effects)2. Não podemos mais pensar neles como um componente da constante, mas sim como um componente do erro. O ero se torna então \(\nu_{it} = \lambda_{i} + \epsilon_{it}\), isto é, o erro é composto por uma variável aleatória \(\epsilon_{it}\) que é o resíduo da diferença entre o resultado e o valor pedito no interior do grupo e outra variável aleatória \(\lambda_{i}\) que é o erro entre os grupos. Essa composição de erros faz com que \(\epsilon_{it}\) e \(\epsilon_{is}\)sejam correlacionados, isto é, temos correlação serial e os coeficientes das outras variáveis só não serão enviesados se adotarmos a premissa que \(\lambda_{i}\) é independentedas demais variáveis.
Efeitos fixos no R:
# vamos estimar o modelo FatalityRate = BeerTax + StateFixedEffects + u
#library(AER)
data(Fatalities)
Fatalities$fatal_rate <- Fatalities$fatal / Fatalities$pop * 10000
fatal_fe_lm_mod <- lm(fatal_rate ~ beertax + state - 1, data = Fatalities)
fatal_fe_lm_mod
##
## Call:
## lm(formula = fatal_rate ~ beertax + state - 1, data = Fatalities)
##
## Coefficients:
## beertax stateal stateaz statear stateca stateco statect statede
## -0.6559 3.4776 2.9099 2.8227 1.9682 1.9933 1.6154 2.1700
## statefl statega stateid stateil statein stateia stateks stateky
## 3.2095 4.0022 2.8086 1.5160 2.0161 1.9337 2.2544 2.2601
## statela stateme statemd statema statemi statemn statems statemo
## 2.6305 2.3697 1.7712 1.3679 1.9931 1.5804 3.4486 2.1814
## statemt statene statenv statenh statenj statenm stateny statenc
## 3.1172 1.9555 2.8769 2.2232 1.3719 3.9040 1.2910 3.1872
## statend stateoh stateok stateor statepa stateri statesc statesd
## 1.8542 1.8032 2.9326 2.3096 1.7102 1.2126 4.0348 2.4739
## statetn statetx stateut statevt stateva statewa statewv statewi
## 2.6020 2.5602 2.3137 2.5116 2.1874 1.8181 2.5809 1.7184
## statewy
## 3.2491
# Podemos estimar com o desvio com relação à média
# construímos os dados com os desvios
Fatalities_demeaned <- with(Fatalities,
data.frame(fatal_rate = fatal_rate - ave(fatal_rate, state),
beertax = beertax - ave(beertax, state)))
# estimamos a regressão
summary(lm(fatal_rate ~ beertax - 1, data = Fatalities_demeaned))
##
## Call:
## lm(formula = fatal_rate ~ beertax - 1, data = Fatalities_demeaned)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.58696 -0.08284 -0.00127 0.07955 0.89780
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## beertax -0.6559 0.1739 -3.772 0.000191 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1757 on 335 degrees of freedom
## Multiple R-squared: 0.04074, Adjusted R-squared: 0.03788
## F-statistic: 14.23 on 1 and 335 DF, p-value: 0.0001913
# Podemos também usar um pacote para regressão em dadosde painel como o plm
#library(plm)
# Estimamos um modelo com desvios com relação à média (também conhecidocomo 'within' model)
fatal_fe_mod <- plm(fatal_rate ~ beertax,
data = Fatalities,
index = c("state"),
model = "within")
# Esse pacote permite corrigir autocorrelação serial e heteroscedasticidade e
# obter erros padrões robustos
coeftest(fatal_fe_mod, vcov. = vcovHC, type = "HC1")[1, ]
## Estimate Std. Error t value Pr(>|t|)
## -0.65587372 0.28879819 -2.27104512 0.02388498
# podemos comparar com os erros padrões do uso do lm()
coeftest(fatal_fe_lm_mod, vcov = vcovHC, type = "HC1")[1, ]
## Estimate Std. Error t value Pr(>|t|)
## -0.655873722 0.203279719 -3.226459220 0.001398372
Os dados em painel nos dá a oportunidade de realizar um quase-experimento. Suponha que temos dados de amostras representativas de vários estados durante períodos de tempo. Suponha que alguns estados adotaram uma política em determinado período e outros não. Podemos então criar um grupo de tratamento e outro de controle e compará-los para determinar o impacto da política. A atribuição de cusalidade a este impacto depende das mesmas premissas que vimos acima.
Nosso problema é que os dois conjuntos de estados, os que adotaram a política e os que não adotaram, podem ser bem diferentes. Algumas dessas diferenças são observadas e outras não, isto é, temos heterogeneidades não observadas que podem enviesar nossa estimativa. Além de características individuais hetrogêneas pode haver tendências temporais que podem enviesar os resultados se observamos apenas a mudança ocasionada pela mudança da política nos estados que as adotaram. Isto é, temos que evitar efeitos fixos dos estados e dos períodos que podem estar correlacionados com a adoção da política, o tratamento.
Vamos simplificar as coisas e comparar dois estados, um que adotou a política e outro que não (tratamento e controle), em dois períodos de tempo (antes e depois da adoção da política). Definimos a variável \(P_{st}\) como uma dummy igual a um se o estado \(s\) adotou a política \(P\) no tempo \(t\) ou zero do contrário. Desse modo o impacto da política no estado \(s\) no período \(t\) é dado pelo modelo
\[R_{st} = \alpha + \lambda_s + \lambda_t + \delta P_{st} + \epsilon_{st}\]
Onde \(\lambda_s\) e \(\lambda_t\) são os efeitos fixos de estado e de tempo, respectivamente.
Comparando as mudanças nos resultados no tempo entre os estados nos grupos de tratamento e de controle nos dá o impacto da adoção da política, \(\delta\). Um estimador deste tipo é chamado de diferenças-em-diferenças ou, mais carinhosamente, diff-in-diffs. O quadro abaixo ilustra esta técnica
\[\begin{equation*} \begin{cases} \begin{cases} \text{T - Depois da política } & R_{st} = \alpha + \lambda_s + \lambda_t + \delta \\ \text{T - Antes } & R_{st} = \alpha + \lambda_s \end{cases} & \Delta R^T = \lambda_t + \delta\\ \begin{cases} \text{C - Depois da política } & R_{st} = \alpha + \lambda_t\\ \text{C - Antes } & R_{st} = \alpha \end{cases} & \Delta R^C = \lambda_t \end{cases} \Delta R^T = \delta \end{equation*}\]
Podemos usar uma regressão para obter o efeito da política. No nosso modelo de comparação de dois estados em dois tempos teríamos uma dummy para os estados outra para o tempo e a interação entre as duas nos daria o efeito do tratamento, ou a diferença nas diferenças. No R:
# (fonte: https://bookdown.org/aschmi11/causal_inf/difference-in-differences.html.O exemplo vem de Gertler, Martinez, Premand, Rawlings, and Vermeersch (2016), chapter 8. Data is from The World Bank. The example below is from Stata Example 8. Difference-in-Differences in a Regression Framework, page 22, of the Impct Evaluation Technical Companion.)
library(readstata13)
d <- read.dta13("https://github.com/worldbank/r-econ-visual-library/raw/master/Library/Data/evaluation.dta")
impact_did <- lm(health_expenditures ~ round + eligible + eligible*round, data=d %>%
filter(treatment_locality == 1))
display(impact_did)
## lm(formula = health_expenditures ~ round + eligible + eligible *
## round, data = d %>% filter(treatment_locality == 1))
## coef.est coef.se
## (Intercept) 20.79 0.18
## round 1.51 0.25
## eligible -6.30 0.23
## round:eligible -8.16 0.32
## ---
## n = 9919, k = 4
## residual sd = 7.91, R-Squared = 0.34
impact_did2 <- lm(health_expenditures ~ round*eligible + .,
data = d %>%
filter(treatment_locality == 1) %>%
dplyr::select(health_expenditures, round, eligible, age_hh, age_sp, educ_hh, educ_sp, female_hh, indigenous, hhsize, dirtfloor, bathroom, land, hospital_distance))
display(impact_did2)
## lm(formula = health_expenditures ~ round * eligible + ., data = d %>%
## filter(treatment_locality == 1) %>% dplyr::select(health_expenditures,
## round, eligible, age_hh, age_sp, educ_hh, educ_sp, female_hh,
## indigenous, hhsize, dirtfloor, bathroom, land, hospital_distance))
## coef.est coef.se
## (Intercept) 27.39 0.46
## round 1.45 0.21
## eligible -1.51 0.21
## age_hh 0.08 0.01
## age_sp -0.02 0.01
## educ_hh 0.06 0.03
## educ_sp -0.08 0.03
## female_hh 1.10 0.24
## indigenous -2.31 0.15
## hhsize -1.99 0.03
## dirtfloor -2.30 0.15
## bathroom 0.50 0.14
## land 0.09 0.02
## hospital_distance 0.00 0.00
## round:eligible -8.16 0.27
## ---
## n = 9919, k = 15
## residual sd = 6.54, R-Squared = 0.55
No jargão da inferência causal, as variáveis \(T\) e \(Y\) são chamadas de variáveis endógenas, pois são definidas dentro do sistema de equações. As variáveis \(X_{i}\) e \(z_{i}\) são chamadas de variáveis exógenas.↩
Efeitos aleatórios podem ser estimados com um quase-desvio com relação à média (quasi-demeaning): \((Y_{i,t} - \theta \bar{Y}_i) = (X_{i,t} - \bar{X}_i)' \beta + (\nu_{i,t} - \theta \text{ Var }\nu_i)\)↩