class: center, middle, inverse, title-slide .title[ # Econometria III ] .subtitle[ ## Dados em Painel ] .author[ ### Rafael Bressan ] .date[ ### Esag 2023-05-15 ] --- layout: true <div class="my-footer"><img src="../../img/logo/UdescEsag.jpeg" style="height: 60px;"/></div> --- # Dados de Cortes Transversais .pull-left[ Até agora, lidamos com dados que se parecem com isso: | Condado | CrimeRate | ProbofArrest | |:-------:|:---------:|:------------:| | 1 | 0.0398849 | 0.289696 | | 3 | 0.0163921 | 0.202899 | | 5 | 0.0093372 | 0.406593 | | 7 | 0.0219159 | 0.431095 | | 9 | 0.0075178 | 0.631579 | ] .pull-right[ * Temos um identificador de unidade (como `Condado` aqui) * Variáveis observáveis em cada unidade * Geralmente chamado de conjunto de dados de **seção transversal** (_cross-section_) * Fornece visualização de um momento instantâneo * Cada linha é uma *observação*, cada coluna uma *variável* ] --- # Dados em Painel .pull-left[ Agora, vamos adicionar um índice de `tempo`: `Ano`. | Condado | Ano | CrimeRate | ProbofArrest | |:-------:|:---:|:---------:|:------------:| | 1 | 81 | 0.0398849 | 0.289696 | | 1 | 82 | 0.0383449 | 0.338111 | | 1 | 83 | 0.0303048 | 0.330449 | | 1 | 84 | 0.0347259 | 0.362525 | | 1 | 85 | 0.0365730 | 0.325395 | | 1 | 86 | 0.0347524 | 0.326062 | | 1 | 87 | 0.0356036 | 0.298270 | | 3 | 81 | 0.0163921 | 0.202899 | | 3 | 82 | 0.0190651 | 0.162218 | ] .pull-right[ * Ao lado do identificador da unidade (`Condado`) temos agora `Ano` * Agora um par (`Condado`, `Ano`) indexa uma observação. * Chamamos isso de conjunto de dados em **painel** ou **longitudinal** * Podemos rastrear unidades *ao longo do tempo*. * **Seções transversais repetidas** quando não são os mesmos indíviduos ] --- # Taxas de Criminalidade e Probabilidade de Prisão * Os dados acima podem ser carregados com ```r data(crime4,package = "wooldridge") ``` * Eles são de [C. Cornwell e W. Trumball (1994), “Estimating the Economic Model of Crime with Panel Data”](https://www.amherst.edu/media/view/121570/original/CornwellTrumbullCrime%2BElasticities.pdf). -- * Uma pergunta aqui: *qual é o tamanho do efeito dissuasor da aplicação da lei*? Se você sabe que é mais provável que seja preso, será menos provável que cometa um crime? -- * Isso é complicado: a criminalidade alta *causa* uma resposta policial mais forte, que atua como um impedimento, ou o crime é baixo porque o impedimento é forte para começar? * Isso às vezes é chamado de uma situação de *modelo de equação simultânea*: a resposta da polícia afeta o crime, mas o crime afeta a resposta da polícia `\begin{align} police &= \alpha_0 + \alpha_1 crime \\ crime &= \beta_0 + \beta_1 police \end{align}` --- # Taxas de Criminalidade e Probabilidade de Prisão .pull-left[ * A maioria da literatura anterior a esse artigo estimava equações simultâneas de dados de corte transversal * Cornwell e Trumball estão preocupados com a **heterogeneidade não observada** entre as jurisdições. * Por quê? O que poderia dar errado? ] .pull-right[ * Vamos escolher 4 condados do nosso conjunto de dados * Vejamos a relação entre taxa de criminalidade vs probabilidade de prisão * Primeiro para todos eles juntos como uma única seção transversal * Em seguida, aproveitando a estrutura do painel (ou seja, cada condado ao longo do tempo). ] --- # Crime vs Prisão em Seção Transversal .left-thin[ 1. Subconjunto de dados para 4 condados 1. plotar taxa de criminalidade versus probabilidade de prisão. ] .right-wide[ <img src="06-panel_pt_files/figure-html/unnamed-chunk-4-1.svg" style="display: block; margin: auto;" /> ] --- # Crime vs Prisão em Seção Transversal ## relacionamento positivo! .pull-left[ * Vemos uma linha inclinada para cima! * Maior probabilidade de prisão está associada a maiores taxas de criminalidade. * Quão forte é o efeito? ```r xsection = lm(crmrte ~ prbarr, css) coef(xsection)[2] # gets slope coef ``` ``` ## prbarr ## 0.06480104 ``` ] -- .pull-right[ * Aumentar a probabilidade de prisão em 0.1 unidade (ou seja, 10 pontos percentuais), aumenta a taxa de criminalidade em 0.00648. * Aumento de 10 p.p. na probabilidade de prisão (por exemplo, `prbarr` passa de 0,2 para 0,3) ... * ... está associado a um aumento na taxa de criminalidade de 0.021 para 0.028, ou 33.33 por cento de aumento na taxa de criminalidade. ] --- # Crime vs Prisão em Seção Transversal ## Ok, mas o que isso *significa*? * Literalmente: condados onde existe maior probabilidade de ser preso também têm maior índice de criminalidade. * Então, isso significa que polícia mais eficiente em prender criminosos e, portanto, a probabilidade de ser preso é mais alta, causa aumento de criminalidade? -- * Do que depende a eficiência da polícia? * O nível de pobreza em um condado importa para isso? * As leis locais? * 🤯 Uau, parece haver muitas coisas deixadas de fora desta imagem simples. --- # Variação Intragrupo e Entre-grupos Você ouvirá frequentemente os termos variação *intra* (_within_) e *entre* (_between_) em contextos de dados de painel. .pull-left[ ## Variação Intra * coisas que mudam *dentro de cada grupo* ao longo do tempo: * aqui dissemos orçamentos policiais * e os níveis de pobreza mudariam dentro de cada grupo e ao longo do tempo. ] .pull-right[ ## Variação Entre * Coisas que são **fixas** para cada grupo ao longo do tempo: * Leis e costumes locais * Direitos Civis * diferem apenas **entre** grupos ] --- # Variação Intragrupo e Entre-grupos .left-wide[ <img src="06-panel_pt_files/figure-html/unnamed-chunk-7-1.svg" style="display: block; margin: auto;" /> ] --- # Apresentando o *Efeito Fixo* .left-wide[ <img src="../../img/photos/crime_rate_dag.png" style="display: block; margin: auto;" /> ] .right-thin[ * Coletamos todos as características invariáveis no tempo e específicas do grupo no fator `Condado`. * Controla todos os fatores que *não* variam ao longo do tempo dentro de cada unidade. * Chamamos `Condado` de **efeito fixo**. ] --- layout: false class: separator, middle # Estimação de Efeitos Fixos --- layout: true <div class="my-footer"><img src="../../img/logo/UdescEsag.jpeg" style="height: 60px;"/></div> --- # Variável Omitida, VI e Dados em Painel Vimos *viés de variável omitida* (OVB). Por exemplo, se o modelo verdadeiro for: $$ y_i = \beta_0 + \beta_1 x_i + c_i + u_i $$ se `\(c_i\)` é não observável e `\(Cov(x_i, c_i)\neq0 \Rightarrow E[v_i|x_i]\neq 0\)` com `\(v_i = u_i + c_i\)` erro composto -- .pull-left[ ## Solução Seção Transversal * onde `\(c_i\)` é variável omitida. **Viés**! 😭 * Encontre IV correlacionado com probabilidade de prisão, mas não condado ] -- .pull-right[ ## Solução Dados em Painel `$$y_{it} = \beta_1 x_{it} + c_i + u_{it},\quad t=1,2,...T$$` * `\(c_i\)`: *efeito fixo individual* ou *heterogeneidade não observada*. * `\(c_i\)`: é fixo ao longo do tempo (eg. costumes locais), mas pode ser correlacionado com `\(x_{it}\)`! ] --- # Regressão com Variável _Dummy_ * Abordagem mais simples: inclua uma variável _dummy_ para cada grupo `\(i\)`. * Isso é literalmente *controlar para o condado* `\(i\)` * Cada `\(i\)` tem seu próprio intercepto `\(c_i\)` --- # Regressão com Variável _Dummy_ `$$y_{it} = \beta_1 x_{it} + c_i + u_{it},\quad t=1,2,...T$$` ```r mod <- list() mod$dummy <- lm(crmrte ~ prbarr + factor(county), data = css) broom::tidy(mod$dummy) ```
term
estimate
std.error
statistic
p.value
(Intercept)
0.0449
0.00456
9.87
9.85e-10
prbarr
-0.0284
0.0136
-2.08
0.0486
factor(county)3
-0.025
0.00254
-9.82
1.07e-09
factor(county)23
-0.0085
0.00166
-5.13
3.41e-05
factor(county)145
-0.0065
0.0016
-4.07
0.00047
--- # Regressão com Variável _Dummy_ .left-wide[ <img src="06-panel_pt_files/figure-html/dummy-1.svg" style="display: block; margin: auto;" /> ] .right-thin[ * *Dentro* de cada condado, relacionamento **negativo**!! * Diferentes interceptos * Coeficiente angular ***único*** `\(\beta\)`. (as linhas são paralelas). * Grupo de referência 1 (intercepto da tabela). ] --- # Primeira Diferença Se tivermos apenas dois períodos, `\(T=2\)`, poderíamos apenas ***diferenciar*** os períodos `$$\begin{align}y_{i1} &= \beta_1 x_{i1} + c_i + u_{i1} \\y_{i2} &= \beta_1 x_{i2} + c_i + u_{i2} \\& \Rightarrow \\ y_{i1}-y_{i2} &= \beta_1 (x_{i1} - x_{i2}) + c_i-c_i + u_{i1}-u_{i2} \\\Delta y_{i} &= \beta_1 \Delta x_{i} + \Delta u_{i}\end{align}$$` E para recuperar o parâmetro de interesse `\(\beta_1\)` rodamos ```r lm(deltay ~ deltax, diff_data) ``` --- # A Transformação Intragrupo (_Within_) .pull-left[ * Com `\(T>2\)` precisamos de uma abordagem diferente * Um conceito importante é a chamada transformação **intragrupo** (*within*) * Então, *controlando a identidade do grupo* e observando apenas a ***variação dentro*** deste grupo ] .pull-right[ * Seja `\(\bar{x}_i\)` a média *ao longo do tempo* dos valores `\(x\)` de `\(i\)`: `$$\bar{x}_i = \frac{1}{T} \sum_{t=1}^T x_{it}$$` 1. para todas as variáveis, calcule sua média no tempo para cada grupo `\(i\)`: `\(\bar{x}_i,\bar{y}_i\)` etc. 1. para cada **observação**, subtraia essa média de tempo do valor real e defina `\(\ddot{x}_{it}=x_{it} - \bar{x}_i\)` e `\(\ddot{y}_{it}=y_{it}-\bar{y}_i\)` 1. Por fim, regresse `\(\ddot{y}_{it}\)` em `\(\ddot{x}_{it}\)` ] --- # A Transformação Intragrupo (_Within_) - Se `\(y_{it} = \beta_1 x_{it} + c_i + u_{it}\)`, então -- $$ `\begin{align*} \bar{y}_i&=\frac{1}{T}\sum_t y_{it}\\ &=\frac{1}{T}\left[ \beta_1\sum_t x_{it}+\sum_t c_{i}+\sum_t u_{it}\right]\\ &=\beta_1\bar{x}_i+c_i+\bar{u}_i \end{align*}` $$ Logo, $$ `\begin{align*} \ddot{y}_{it}&=y_{it}-\bar{y}_i\\ &=\beta_1 x_{it} + c_i + u_{it} - \left(\beta_1\bar{x}_i+c_i+\bar{u}_i\right)\\ &=\beta_1\ddot{x}_{it} + \ddot{u}_{it} \end{align*}` $$ --- # A Transformação Intragrupo (_Within_) ## Graus de liberdade - `\(\ddot{y}_{it}=\beta_1\ddot{x}_{1,it} + \beta_2\ddot{x}_{2,it} + \ldots + \beta_k\ddot{x}_{k,it} + \ddot{u}_{it}\)` - A princípio temos `\(NT - k\)` graus de liberdade -- - ⚠️ Isso não é verdade!! -- - Tivemos de calcular `\(N\)` **médias intragrupo**. Perdemos esses graus de liberdade - _gl_: `\(NT-N-k=N(T-1)-k\)` -- - Quanto mais efeitos fixos adicionarmos na regressão, mais ***gl*** iremos perder --- # A Transformação Intragrupo (_Within_) ## Hipóteses Satisfeitas as seguintes hipóteses, o estimador de **Efeitos Fixos** será ***não viesado*** 1. O modelo populacional é: `\(y_{it}=X_{it}\beta+c_i+u_{it}\)`. Para cada `\(i\)`, com `\(t=1, \ldots, T\)` e `\(c_i\)` é não observado. 1. `\(\{y_{it}, X_{it}\}_{i=1}^N\)` é uma amostra aleatória para um dado `\(t\)` 1. `\(X_{it}\)` possui variação na dimensão `\(t\)` 1. Para cada `\(t\)`, o valor esperado do erro `\(u_{it}\)` condicional aos regressores em ***todos os períodos de tempo*** e ao efeito não observado, é zero: `\(E[u_{it}\mid X_{i1},\ldots, X_{iT}, c_i]=0\)` (**exogeneidade estrita**) -- Se tivermos um painel curto `\((N>>T)\)`, então podemos dizer que assintoticamente `\((N\rightarrow\infty)\)` o estimador de Efeitos Fixos é _consistente_. --- # A Transformação Intragrupo (_Within_) ## Hipóteses - Por que a hipótese de exogeneidade estrita é tão importante? -- - `\(E[u_{it}\mid X_{i1},\ldots, X_{iT}, c_i]=0\)` implica em `\(E[X_{is}u_{it}]=0\quad s,t = 1,\ldots, T\)` - Modelo transformado é `\(\ddot{y}_{it}=\ddot{X}_{it}\beta+\ddot{u}_{it}\)` - MQO **não viesado** se `\(E[\ddot{X}_{it}\ddot{u}_{it}]=0\)` -- - Interpretação: uma vez que `\(X_{it}\)` e `\(c_i\)` estejam controlados na regressão, ***outros períodos*** para os regressores não importam! - ⚠️ .red[ATENÇÃO] + Isso não impede modelos de defasagem distribuída! + Modelos de variável dependente defasada estão excluídos --- # A Transformação Intragrupo (_Within_) ## Hipóteses - Por que a hipótese de exogeneidade estrita é tão importante? $$ `\begin{align*} E[\ddot{X}_{it}\ddot{u}_{it}]&=E[(X_{it}-\bar{X}_i)(u_{it}-\bar{u}_i)]\\ &=E[X_{it}u_{it}]+E[X_{it}\bar{u}_i]+\ldots \end{align*}` $$ -- - `\(E[X_{it}u_{it}]= 0\)`, pois `\(E[X_{is}u_{it}]=0\)` e `\(s=t\)` -- - `\(E[X_{it}\bar{u}_i]=\frac{1}{T}\lbrace E[X_{it}u_{i1}]+\ldots + E[X_{it}u_{iT}]\rbrace\)` + Cada um dos valores esperados também é zero pela hipótese de exogeneidade estrita! -- Ou seja, a hipótese de exogeneidade estrita, `\(E[u_{it}\mid X_{i1},\ldots, X_{iT}, c_i]=0\)` implica em `\(E[X_{is}u_{it}]=0\quad s,t = 1,\ldots, T\)`, garante que no modelo transformado o MQO é não viesado --- # A Transformação Intragrupo (_Within_) ## Solução Manual no `R` Isso *funciona* para o nosso problema com o efeito fixo `\(c_i\)` porque `\(c_i\)` não varia no tempo por suposição! A média de uma constante é elas mesma, `\(\bar c_i = c_i\)` -- `$$y_{it}-\bar{y}_i = \beta_1 (x_{it} - \bar{x}_i) + c_i - \bar c_i + u_{it}-\bar{u}_i$$` É fácil fazer você mesmo! Primeiro vamos calcular os valores centralizados: ```r cdata <- css %>% group_by(county) %>% mutate(mean_crime = mean(crmrte), mean_prob = mean(prbarr)) %>% mutate(demeaned_crime = crmrte - mean_crime, demeaned_prob = prbarr - mean_prob) ``` --- # A Transformação Intragrupo (_Within_) ## Solução Manual no `R` Em seguida, rodamos os modelos ***Pooled*** e ***Transformação Intragrupo*** com MQO simples: ```r mod$pooled <- lm(crmrte ~ prbarr, data = cdata) mod$intra <- lm(demeaned_crime ~ demeaned_prob, data = cdata) ``` --- # A Transformação Intragrupo (_Within_) ## Solução Manual no `R` .pull-left[
pooled
dummy
intra
(Intercept)
0.009
0.045
0.000
(0.005)
(0.005)
(0.001)
prbarr
0.065
-0.028
(0.016)
(0.014)
demeaned_prob
-0.028
(0.013)
R2
0.390
0.893
0.159
] -- .pull-right[ * A estimativa para `prbarr` é positiva no ***Pooled*** * Cuidando da heterogeneidade não observada `\(c_i\)`... * ...seja incluindo uma ***dummy*** para cada `\(i\)` ou transformação ***intragrupo*** * obtemos: -0.028 . ] --- # A Transformação Intragrupo (_Within_) ## Interpretando as estimativas * Como interpretar essas inclinações negativas? * Olhamos para uma única unidade `\(i\)` e perguntamos: > se a probabilidade de prisão em `\(i\)` aumentar em 10 pontos percentuais (ou seja, de 0,2 para 0,3) do ano `\(t\)` para `\(t+1\)`, esperamos que os crimes por pessoa caiam de 0.039 para 0.036, ou por -7.69 por cento. <img src="06-panel_pt_files/figure-html/unnamed-chunk-13-1.svg" style="display: block; margin: auto;" /> --- # Estimativa de Efeitos Fixos no `R` ## use um Pacote! * Na vida real, você dificilmente realizará a transformação intragrupo manualmente * use um pacote! * Existem várias opções ([`fixest`](https://github.com/lrberge/fixest) é o mais eficiente). Em nosso contexto: ```r mod$FE <- fixest::feols(crmrte ~ prbarr | county, cdata) ``` * Observe a configuração semelhante à `estimatr::iv_robust` *fórmula de duas partes*. Aqui os efeitos fixos vêm após o `|`. * Além disso, podemos ter *mais de um efeito fixo*! Para um exemplo legal com *três* efeitos fixos veja a [vinheta](https://cran.r-project.org/web/packages/fixest/vignettes/fixest_walkthrough.html) do pacote. --- # Estimativa de Efeitos Fixos no `R` ## use um Pacote! Nem só de `R` vive um econometrista! Alguns outros pacotes de EF também para `Stata` e `Python` - **R** + [`plm`](https://cran.r-project.org/web/packages/plm/index.html) (função plm) + [`lfe`](https://cran.r-project.org/web/packages/lfe/) (função felm) - **Stata** + [`reghdfe`](https://github.com/sergiocorreia/reghdfe) - **Python** + [`Statsmodels`](https://www.statsmodels.org/stable/example_formulas.html) (_dummies_ somente) + [`linearmodels`](https://pypi.org/project/linearmodels/) (EF em duas vias) --- # Estimativa de Efeitos Fixos no `R` ## use o `fixest` 🙂 .left-wide[
pooled
dummy
intra
FE
(Intercept)
0.009
0.045
0.000
(0.005)
(0.005)
(0.001)
prbarr
0.065
-0.028
-0.028
(0.016)
(0.014)
(0.005)
demeaned_prob
-0.028
(0.013)
R2
0.390
0.893
0.159
] .right-thin[ * Mesmas estimativas! 😅 * `fixest` calcula erros padrão **robustos por clusters**. * Suspeita que haja forte correlação nos resíduos *dentro* de cada condado (ao longo do tempo). ] --- # Transformação Intragrupo Animada! .left-wide[ <img src="../../img/gifs/panel.gif" style="display: block; margin: auto;" /> ] .right-thin[ * Transformação intragrupo **centraliza** os dados! * Subtrair a média temporal de `\(y\)` e `\(x\)`, *retira* os fatores fixos no tempo relacionados ao *condado* * Apenas variação *dentro* do condado * Créditos para [Nick C Huntington-Klein](http://nickchk.com). ] --- # Leitura Recomendada * WOOLDRIDGE, Jeffrey M. Introdução à econometria: uma abordagem moderna. São Paulo: Cengage Learning, 2016. Tradução da 4ª edição norte-americana por José Antonio Ferreira. Capítulo 13 O Agrupamento de Cortes Transversais ao Longo do Tempo. * GUJARATI, Damodar N.; PORTER, Dawn C. Econometria básica. Porto Alegre: Amgh Editora, 2011. - 5. ed. Capítulo 16 Modelos de regressão com dados em painel --- layout: false class: title-slide-final, middle background-image: url(../../img/logo/UdescEsag.jpeg) background-size: 350px background-position: 9% 19% # ATÉ A PRÓXIMA AULA! Com a Lista 1 feita! ✅ .footnote[ [1]: Este slides foram baseados nas aulas de econometria da [SciencesPo Department of Economics](https://github.com/ScPoEcon/ScPoEconometrics-Slides) ] | | | | :--------------------------------------------------------------------------------------------------------- | :-------------------------------- | | <a href="https://github.com/rfbressan/econometria3_slides">.ScPored[<i class="fa fa-link fa-fw"></i>] | Slides | | <a href="http://github.com/rfbressan">.ScPored[<i class="fa fa-github fa-fw"></i>] | @rfbressan | | <a href="https://raw.githack.com/rfbressan/econometria3_slides/master/lectures/06-panel/lista_IV_pt.html">.ScPored[<i class="fa fa-list fa-fw"></i>] | Lista de Exercícios IV |