Sei sulla pagina 1di 138

Notas Introdutrias Em

Econometria Aplicada Usando


R/RStudio
C.D. Shikida e Rodrigo N. Fernandez

Shikida, Fernandez (2016)

Prefcio
A linguagem R tem sido amplamente utilizada na pesquisa estatstica e, claro, na
economtrica. Uma de suas vantagens? Voc no precisa pagar licena porque o programa
um software livre. Nesta categoria esto tambm o JMulti, Gretl e o EasyReg (cujo mirror
brasileiro, agora, est no PPGOM/UFPel).
Este texto uma verso atualizada e bastante alterada de uma apostila anterior feita
para um minicurso de 20 horas no PPGOM/UFPel, salvo engano, em 2013 (repetido em
2014). Por que alterar a apostila? O principal motivo que logo aps finalizar a verso
anterior, tomei contato com a plataforma Rstudio que funciona sobre o R, mas com uma
visualizao mais confortvel (e com menos problemas para quem precisa, de vez em
quando, salvar muitos grficos...). Outros motivos? Stargazer, RMarkdown, etc1.
Os comentrios recebidos por ex-alunos e amigos ao longo do tempo convenceramme de que a melhor embora mais trabalhosa estratgia era a de optar por uma verso
fortemente alterada. O leitor que conheceu a apostila anterior notar que no terminei a
tarefa ainda, embora toda a apostila tenha sido revisada. Esta a verso provisria que ser
usada no minicurso do R a ser ministrado em breve, no PPGOM-UFPel. Dos autores da
verso anterior, o prof. Rodrigo Nobre Fernandez segue como co-autor (e com planos
imperialistas, pelo que pude perceber). Tambm est em meus planos a participao de
outros co-autores do PPGOM para uma verso mais organizada deste material.
Trs avisos importantes: (i) aos que nunca tiveram contato comigo: o material a
seguir pode parecer informal demais em muitas ocasies. A inteno que sua leitura seja
menos rdua e um pouco mais divertida em alguns momentos. O problema, claro, que
economistas no so muito bem conhecidos pela qualidade de suas piadas; (ii) as planilhas
para replicao de quase todos os exemplos desta apostila estaro disponveis em minha
pgina no PPGOM-UFPel e; (iii) este no um curso de programao em R.
Agradeo a Andr Carraro e Csar Tejada pela oportunidade de experimentar este
material com os alunos de Mestrado de Cincias Econmicas na UFPEL nas edies
anteriores deste minicurso. Agradeo tambm Elisangela Luzia Arajo pelo convite para
ministrar o minicurso na XXXI Semana do Economista na UEM (Universidade Estadual de
Maring) em 2016.
Comentrios podem ser enviados para o endereo cdshikida at gmail dot com.

Pelotas, 16 de Outubro de 2016.


Nesta verso da apostila ainda no h um tpico sobre RMarkdown. As referncias importantes esto todas
aqui: http://rmarkdown.rstudio.com/. Outro ponto importante que apenas os tpicos feitos pelo professor
Rodrigo Nobre Fernandez foram feitos apenas no R, no no RStudio. O leitor no ter, contudo, grandes
dificuldades em acompanhar o contedo. Em breve, caso tudo corra bem, disponibilizo tambm os scripts.
1

Shikida, Fernandez (2016)


ndice
0. O que Homer Simpson disse para Peter Griffin? ................................................................................................. 3
1. Cheguei ao laboratrio, mas no sei o que se passa. Algum pode me ajudar? ................................................ 9
2. Impressione seus amigos e aquela garota bonita! ...............................................................................................20
3. Como que eu importo os meus dados para o R? Que loucura esta? ............................................................32
4. Vamos comear a trabalhar? T tudo em ordem? Eu sei tudo? Tenho dvidas? Opa, eu tenho dvidas!......35
5. A Estatstica dos Casos Extra-Conjugais de Maridos e Esposas .........................................................................37
6. Regresso Linear Sistemas de Equaes Simultneas e Testes de Diagnsticos ...............................................41
6.1. O eterno debate da funo consumo (O Primeiro Ato)................................................................................41
Anexo 1 A questo das observaes influentes ................................................................................................53
6.2. O PIB, a Base Monetria e o Teste de Hipteses ...........................................................................................55
6.3. Morar longe da faculdade diminui seu salrio? ...........................................................................................56
6.4. Mais armas, menos crimes...com dummies ....................................................................................................61
6.5. A Lei de Wagner, a Guerra do Paraguai e o teste t...................................................................................64
Anexo 2 Tabelas com vrias regresses no R: salvando o dia do bolsista ......................................................66
Anexo 3 - Sorvetes, Matrizes e MQO (prof. Rodrigo N. Fernandez) .................................................................67
7. Modelos Microeconomtricos ...............................................................................................................................73
7.1. Coca ou Pepsi? ................................................................................................................................................73
7.2. Esporte Espetacular ........................................................................................................................................77
7.3. Os motivos da traio: o retorno dos casos extra-conjugais! .......................................................................81
7.4. As decises do Banco Central e nossa vida ..................................................................................................83
7.5. Vamos dividir o Estado do Par? ..................................................................................................................87
8. Econometria de Sries de Tempo em R (Parte I) .................................................................................................90
8.1. fcil assim fazer a previso da produo industrial brasileira? ...............................................................92
Anexo 4 Modelos ARIMA degenerados ......................................................................................................... 100
Anexo 5 Tendncias, dummies sazonais e algumas dicas bsicas .................................................................. 100
8.2. A funo consumo keynesiana estvel para o Brasil? (O Segundo Ato) ................................................ 101
8.3. Rui Barbosa importa? ................................................................................................................................... 105
9. Econometria de Sries de Tempo em R (Parte II) .............................................................................................. 108
9.1. O leite nosso de cada dia .............................................................................................................................. 108
9.2. Quem veio primeiro: o ovo ou a galinha? ................................................................................................... 120
Anexo 6 Ovos e Galinhas e a causalidade de Granger no pacote vars ......................................................... 125
10. Salrio, Etnia e Educao: qual a relao? Uma Introduo Econometria dos Dados em Painel no R
(Prof. Rodrigo N. Fernandez) ................................................................................................................................. 128
Bibliografia Parcial .................................................................................................................................................. 136

Shikida, Fernandez (2016)

0. O que Homer Simpson disse para Peter Griffin? 2


Em 2014, o mundo (ou pelo menos parte dele) assistiu o crossover mais esperado da
histria da TV (na minha opinio): os dois episdios em que Homer Simpson encontrava
Peter Griffin. Talvez voc no saiba do que estou falando, mas os fs de ambos os shows
(ou de algum deles), sejam eles mestres, doutores ou calouros em Cincias Econmicas,
sabem.
Um evento to memorvel no poderia passar batido a um usurio de R. Foi assim
que tive a ideia de iniciar esta nova verso da apostila com um exemplo que, espero, mostre
toda a potencialidade do R (notadamente, sob a camada que chamaremos de RStudio daqui
em diante).
Considere, ento, os verbetes de Family Guy e The Simpsons que existem na
Wikipedia. Para minha sorte, Peter Meissner criou o pacote wikipediatrend3, que nos permite
obter, diretamente da rede mundial de computadores, as visualizaes dirias dos verbetes
da enciclopdia gratuita.
Optei por me limitar aos verbetes da Wikipedia inglesa, embora o programa me
permita explorar outras lnguas e, portanto, os mesmos verbetes. Como todo usurio de R
provavelmente sabe, a melhor maneira de comear a aprender uma tcnica nova por meio
da replicao de algum exemplo. Voc, caro leitor, provavelmente no sabe nada do R, mas
siga este exemplo. Aps instalar o pacote wikipediatrend (veremos como instalar pacotes
logo mais), executei o comando seguinte.

O resultado? Algo que comeava em 2008 e terminava em 2015. Um conjunto de


variveis.

[Nota de Claudio D. Shikida] Agradeo a Leonardo M. Monasterio por me apresentar ao R. Levei muito
tempo para entender que seria uma boa ideia seguir pelo menos este conselho dele (um pouco de
Econometria mostrava que o melhor seria no seguir seus conselhos mas, neste caso, parece que tivemos um
outlier). Meu primeiro contato mais formal com R foi facilitado pela profa. Edimeire A. Pinto. Ari Francisco de
Araujo Jr me fez tantas perguntas que fui obrigado a melhorar a verso inicial desta apostila (e ainda falta um
bocado...). Alunos nem sempre entendem, ao primeiro contato, a utilidade do R. O contato com o RStudio me
veio por meio dos meus ex-alunos e atualmente economistas - Raphael Molina e Lucas Farias. Boa parte
desta apostila deve muito aos comentrios, dicas e sugestes feitas por alunos do curso ministrado no
PPGOM/UFPel, na semana de 22 a 26 de Abril de 2013. Agradeo tambm ao Carlos Cinelli e ao Vitor Wilher
por terem sempre sido entusiastas do uso do R. O entusiasmo de muitos sempre um estmulo adicional.
3 Veja este endereo: https://github.com/petermeissner/wikipediatrend.
2

Shikida, Fernandez (2016)

Sem sair de dentro do ambiente do R, reordenei a base de forma a obter as primeiras


linhas para um show apenas e o restante para o outro, sempre sob a ordenao das datas.

Visualizei meu resultado e descobri onde estava o ponto de corte. Tratava-se da


linha de nmero 2537. Assim, dividi a base e criei uma nova base de dados apenas com a
data e as visualizaes dirias de cada show.

Confuso? Ao final deste minicurso voc dever estar pronto para comear uma
anlise como esta. Ah sim, vejamos como so as visualizaes.

Shikida, Fernandez (2016)

Parecem correlacionadas? Tudo bem, podemos tentar dar uma olhada nisto.

Shikida, Fernandez (2016)

O clculo da correlao indicou algo em torno de 0.60 mas, como sabemos


correlao no faz vero, ou melhor, correlao no necessariamente implica
causalidade4. Ento, como um bom aluno, eu resolvi usar irresponsavelmente como
tantos o teste de causalidade de Granger. Minha pergunta era mais ou menos esta: ser
que as visualizaes na pgina dos Simpsons aumentam/diminuem as visualizaes na
pgina do Family Guy?
Ciente de que as visualizaes na Wikipedia seriam uma proxy imperfeita da
popularidade de cada show, mas ansioso para aprender a usar o wikipediatrend, prossegui.
Aps invocar um dos vrios pacotes do R que fazem o teste de causalidade de Granger,
experimentei trs especificaes, aleatoriamente, com defasagens de ordem 4, 8 e 12. O que
eu encontrei?

https://xkcd.com/552/.

Shikida, Fernandez (2016)

Shikida, Fernandez (2016)

Em todas as especificaes, verifiquei que o meu show favorito, Family Guy,


(Granger-)causava o The Simpsons. Fiquei intrigado com o resultado mas, claro, no fiz meu
dever de casa porque...no havia nenhum. No era um exerccio de Econometria!5
Mesmo sem ter a obrigao de apresentar um relatrio ou uma lista de exerccios
resolvida, eu passei um bom tempo fazendo esta brincadeira. Note tambm que no sa
do ambiente do R em momento algum. Sim, eu poderia ter salvo os resultados coletados em
uma planilha para, depois, fazer a leitura da mesma pelo R. Entretanto, nem isso foi
necessrio. Tambm importante perceber outra caracterstica do R: muitas das dvidas
que tive foram resolvidas online (sim, no d para trabalhar com o R sem internet, a no ser
que voc seja muito bom na linguagem e/ou tenha uma boa quantidade de livros sobre os
assuntos que deseja estudar por perto6).
Divertido, no? Ah sim, o que foi que Homer disse a Peter? Vrias coisas, inclusive
esta7:
[The spaceship jumps over Springfield Gorge]
Peter: We're gonna make it!
Homer: Trust me, we're not.

Voc, que comea a usar o R agora, tal como voc, que agora comea o mestrado em
Economia, ou se prepara para sua primeira prova, ou, claro, voc que est prestes a estimar
os primeiros modelos de sua dissertao, reflita sobre esta frase de uma forma positiva.
Vamos ao R!

Caso fosse, algum j estaria levantando a bandeira dos testes de raiz unitria, no sem alguma razo.
Morar em uma biblioteca poderia ser a soluo, no ?
7 Originalmente em: http://familyguy.wikia.com/wiki/The_Simpsons_Guy/Quotes.
5
6

Shikida, Fernandez (2016)

1. Cheguei ao laboratrio, mas no sei o que se passa. Algum pode me ajudar?


Para iniciar sua aventura pelo mundo da Econometria em R, vamos nos lembrar que
utilizaremos o RStudio. Logo, precisamos instalar o R e o RStudio. A primeira coisa a se
fazer consultar os sites seguintes: http://cran.r-project.org e http://www.rstudio.com. Do
primeiro se instala a verso do R mais adequada ao seu computador. Do segundo, a mesma
coisa para o RStudio. Voc deve ter encontrado as seguintes telas.

Digamos que voc j est em um laboratrio com ambos os programas instalados.


Primeiramente, agradea do fundo do seu corao aos bravos estagirios, bolsistas ou
monitores dos professores que investiram horas de seu tempo para fazer as instalaes. Eles
merecem.
Mas, existe um catch aqui. Ser que as verses dos programas so as mais recentes?
aqui que iniciaremos nossa primeira lio de R. Clique no cone do programa e abra a tela
do R. Voc deve ter encontrado algo assim.

Shikida, Fernandez (2016)

Vamos atualizar a verso do R que voc acaba de encontrar em seu computador e


vamos fazer isto de forma simples, usando o programa installr. V a este endereo:
https://github.com/talgalili/installr/. Vamos copiar e colar as instrues na tela do R. Na
pgina do installr, copie o trecho seguinte.

Ao colar na janela do R que vimos acima (trata-se da janela console), voc notar que
ele j iniciar a execuo dos comandos. Repare a posio do cursor na figura abaixo. Na
ltima linha, o cursor encontra-se pronto para a execuo do comando de atualizao.
Vamos apertar a tecla Enter e a mgica comear.

10

Shikida, Fernandez (2016)

A primeira lio sobre o R que os programas que executamos nele so chamados de


libraries (bibliotecas). Em geral, eles esto disponveis em um repositrios do R pelo mundo
mas, muitos autores disponibilizam verses mais recentes em outros locais a esmagadora
maioria no github como o caso do installr. O que o installr faz facilitar nossa vida com
um dos mais penosos trabalhos que se executa em R: sua atualizao.
Uma vez que o programa est em R, ele deve ser chamado (ou invocado). Faz-se isto
com o comando library(nome do fulano). Em nosso caso:

11

Shikida, Fernandez (2016)

As rotinas criadas por Ted Galili, autor do installr guiaro voc pelo processo de
instalao/atualizao do R. Como o minicurso feito em um laboratrio, precisamos dar
ateno atualizao do R. Voltemos pgina do github em que estvamos e vamos copiar
e colar outras linhas de comando.

Exato. Copiamos as linhas acima e colamos na mesma janela do R. A execuo ser


imediata. No meu caso, eis a janela que surge (ela poder ser diferente para voc).
12

Shikida, Fernandez (2016)

Em seguida, ele perguntar se desejamos saber algo sobre a nova verso do R (caso
algum esteja afim de uma leitura tcnica, siga em frente. No o meu caso).

A prxima janela merece um Yes.

13

Shikida, Fernandez (2016)

Um ponto importante, enquanto a rotina atua, notar algumas coisas. Primeiro, nos
comandos copiados, alguns deles continham o smbolo # no incio. O # no um
comando. Ele indica que o que vem sua direita no executvel. Usamos este smbolo
para fazermos anotaes. A prxima pergunta muito importante e voc dir Yes mesmo
que eu no explique o porqu.

14

Shikida, Fernandez (2016)

Como o installr, tudo o que usamos no R so os pacotes (libraries, bibliotecas,


doravante chamados de pacotes). Estes so constantemente atualizados por seus autores e,
sempre que h uma nova verso do R, h uma atualizao para cada pacote. Claro que
vamos aceitar. Mais ainda, ele nos perguntar se queremos manter os diretrios de suas
antigas verses. Isto depende de cada um. Geralmente eu no fao isto (mas pode ser
interessante e, se for o caso, explicarei em aula, ok?).

Para as quatro prximas perguntas, a resposta , claro, Yes.

15

Shikida, Fernandez (2016)

16

Shikida, Fernandez (2016)

Podemos fechar o R agora. Vamos ao RStudio. Aps sua instalao, podemos abri-lo
e a visualizao ser algo como a figura seguinte.

Repare nas subdivises. A janela do canto superior esquerdo nosso principal


ambiente. Nela criaremos nossos scripts (o corresponte ao do file do Stata ou ao prg file do
Eviews ou ao inp file do Gretl). Escrever um script significa que temos que saber o que
desejamos que o R execute e que temos um planejamento prvio, mnimo, sobre o que
vamos fazer. Os comandos que copiamos e colamos direto na janela de execuo (console)
do R poderiam ter sido salvos em um script para posterior execuo. O equivalente ao que
foi feito seria colar os comandos na janela inferior esquerda que, no por coincidncia, a
janela de console.
17

Shikida, Fernandez (2016)

No lado direito do painel temos as janelas superior e a inferior. Na primeira, h duas


abas, ambas destinadas a nos informar sobre o que obtivemos por meio dos comandos
digitados no script cuja execuo aparecer no console. A janela inferior tem vrias abas e
veremos mais sobre elas adiante.
Antes de terminarmos, uma breve palavrinha sobre instalaes. Em breve ser
necessrio instalar alguns pacotes como o installR. Como fazer isso? Voc pode fazer isto
manualmente. Por exemplo, se quiser se adiantar e instalar vrios pacotes ao mesmo tempo,
pode fazer:
install.packages(c("AER","lmtest","sem","car","ROCR","MASS","pscl","forecast","astsa","dynl
m","plm","sandwich","ggpplot2","pastecs","vars","urca","strucchange","foreign","aod"))
Ou pode fazer separadamente. Por exemplo, para os dois primeiros pacotes da lista
acima, teramos:
install.package(AER)
install.package(lmtest)
Claro, algum deve lhe dizer que pacotes instalar. Quantos existem? No fao ideia
(...mas a dica esta: https://cran.r-project.org/web/views/Econometrics.html). Ah sim,
voc pode tambm usar o menu.

Acho que podemos assumir que daqui em diante no to difcil, no? Basta
escolher um repositrio CRAN e buscar o nome do pacote. Repare que voc tambm pode
obter o arquivo compactado, salv-lo no computador e, ento, usar a segunda opo acima,
Package Archive File.
18

Shikida, Fernandez (2016)

bem provvel que voc j esteja no laboratrio e que seu R j tenha pacotes
instalados. Tudo o que voc precisa fazer pedir para verificar se h atualizaes dos
mesmos. O resto do processo simples.

Box Necessrio (mas no Suficiente)


Um aspecto interessante do uso do R quando descobrimos a quantidade de recursos
online para nos ajudar. Devo mencionar a comunidade do StackOverflow (ou
StackExchange, nunca sei direito) e o leitor poder encontrar, facilmente, dicas online em
forma de vdeo-aulas, cursos gratuitos ou pagos (como o do Vitor Wilher), ou mesmo em
blogs (Carlos Cinelli tem disponibilizado verses iniciais dos captulos de seu livro em seu
blog, por exemplo). O prof. Rob Hyndman disponibilizou um excelente tutorial bsico de
sries de tempo aqui. Os tutoriais da UCLA so fontes obrigatrias para quem usa Stata ou
R. Veja tambm R for dummies, Inside-R8, Quick-R, por exemplo.
Certamente eu me esqueci de alguns sites, mas sugestes so sempre bem-vindas.
Voc est de parabns. Encerrou a primeira sesso inicial deste mini-curso. Pegue
seu vale para um caf.

A partir de algum momento em 2016, este link foi substitudo pelo da verso aberta do R oferecida pela
Microsoft: https://mran.microsoft.com/.
8

19

Shikida, Fernandez (2016)

2. Impressione seus amigos e aquela garota bonita!


Ok, voc est ansioso(a) para mostrar ao mundo que j um iniciado em R. Vamos
do incio ento. Comecemos com os objetos que podem ser manipulados no ambiente R.
Temos nmeros, vetores, matrizes, textos, grficos, etc. Vejamos alguns exemplos que
podem no parecer muito teis agora, mas que eventualmente vo te ajudar no futuro.
Digamos que eu queira gerar um objeto x que igual a 3. Depois quero mostrlo a voc. No satisfeito, quero tambm mostrar que sou sofisticado e que sei fazer contas.
Vamos ver se voc consegue impressionar seus amigos (e aquela garota bonita) com seus
conhecimentos em R. Ento digite os comandos na janela de scripts (no precisa digitar os
textos). Para executar os comandos, h duas opes: um por vez ou todos de uma vez s.
No segundo caso, marque toda a janela (Ctrl+a) e execute (Ctrl+R). No primeiro, basta ir at
a linha do comando e executar. Veja o exemplo.

Os resultados dos comandos aparecem na janela inferior.

20

Shikida, Fernandez (2016)

Ainda no impressionou ningum, n? Ok, mais alguns comandos.

Acho que agora voc j comeou a ser notado. Entretanto, tal como na vida,
nenhuma garota quer saber de um cara que s sabe aritmtica ou recitar nmeros com
quatro casas decimais. Vejamos, ento, algo mais interessante.
21

Shikida, Fernandez (2016)

Ok, ainda no muito. Vamos adaptar um exemplo de Heiss (2016) para uma base
de dados hipottica.

22

Shikida, Fernandez (2016)

Ok, neste exemplo voc perdeu pontos com algumas garotas e ganhou com outras.
Repare que o R aceita vetores numricos e tambm de nomes. O uso das aspas
importante aqui. O RStudio til neste aspecto porque, bem, experimente escrever os
nomes dos times sem as aspas e executar o comando. Ah sim, mais alguns comandos com
este mesmo exemplo.

23

Shikida, Fernandez (2016)

Ok. Voc j est experiente em vetores. Vejamos um pouco sobre matrizes. Note o
comando nrow que diz respeito ao nmero de linhas da matriz que estamos criando.

24

Shikida, Fernandez (2016)

Que tal usar ncol (nmero de colunas)?

Ok. Mas poderamos tambm criar diferentes vetores e unifica-los em um objeto


matriz por meio dos comandos cbind e rbind. No primeiro caso, os vetores so
transformados em colunas de uma matriz e, no segundo caso, as linhas que o so.
Vejamos um exemplo.

25

Shikida, Fernandez (2016)

Algumas operaes bsicas como somar, multiplicar (elemento por elemento) ou


transpor so ilustradas abaixo.

26

Shikida, Fernandez (2016)

Quanto multiplicao de matrizes, veja a figura seguinte. Note que ao colocarmos o


comando entre parnteses, o resultado automaticamente mostrado no console.

Para inverter matrizes precisamos, inicialmente de uma matriz quadrada que no


seja singular (como o caso da matriz acima, por motivos bvios). Fica por sua conta
construir uma matriz de dimenso 2 x 2 e aplicar-lhe o comando solve. Digamos que sua
27

Shikida, Fernandez (2016)

matriz se chame banana. Ento, o comando para invert-la ser: solve(banana). Ok, ajuda
rpida.

Uma das vantagens do R podermos criar uma lista de elementos de diferentes tipos.
Neste caso, criamos uma lista composta de dois objetos. O primeiro deles uma sequncia
de nmeros que se inicia em dois e termina em trs, gerados de forma discreta, com um
passo de distncia. O segundo a varivel oi que recebe a expresso io. Em seguida,
voc percebe que pode visualizar os nomes dos componentes e tambm que o smbolo $
serve para visualizar os itens do componente A da listinha.

Este tipo de objeto naturalmente nos leva a um dos mais usados em R que o data
frame. Embora lembre uma matriz, ele no uma matriz e pode acomodar objetos bem
diferentes ao mesmo tempo. Na tentativa de ganhar a ateno da garota (ou dos seus
amigos), voc tenta emplacar uma conversa sobre vendas semanais dos produtos v1 e
v2.

28

Shikida, Fernandez (2016)

O que acontece se voc digitar (e executar) vendasnovo$v1? Experimente. Voltaremos


aos arquivos data frame posteriormente, para ilustrar outros comandos. Por enquanto, acho
que voc j conseguiu impressionar seus amigos (e aquela garota). Ou no? Ok, vamos
tentar mais uma ltima cartada: fazer um diagrama de disperso e incluir a reta de
regresso.

Poucos dados, no? Podemos tentar algo mais interessante. Que tal um pouco de
ao? Primeiro, vamos abrir uma planilha (japao.xlsx), copiar e colar os dados no R.

29

Shikida, Fernandez (2016)

A est. O crescimento do PIB (gdp_growth) foi obtido a partir de uma srie


descontinuada do banco de dados FRED (https://research.stlouisfed.org/fred2/). O
restante so de fontes oficiais (governo do Japo). Temos, ento, mais observaes e a
possibilidade de voc ganhar a garota com um bom papo sobre mfias e economia (ou,
eventualmente, sobre filmes japoneses de mfia).
Para esta empreitada, usaremos um pacote um pouco mais avanado mas muito
mais til para fazer grficos. O comando plot() usado acima bsico do R. Vejamos um
pouco do ggplot2. Os primeiros comandos abaixo nos mostram como fcil carregar dados
no R (fcil, mas o problema que h tantas possibilidades que voc geralmente tem que
pesquisar para saber qual a melhor forma de importar seus dados para o R). Repare que,
em seguida, j uso o comando do ggplot. Vale a pena ampliarmos a parte final da figura
para vermos a janela com o script9.

Para detalhes, ver: http://stackoverflow.com/questions/10599708/difference-between-read-table-and-readdelim-functions.


9

30

Shikida, Fernandez (2016)

A partir da janela acima voc percebe que o + que aparece no script faz parte da
sintaxe do comando. No se trata do tradicional + que aparece na janela de resultados
(console) para indicar que a linha anterior continua. Cuidado com isso, heim? E o grfico
para impressionar a garota?

No ficou feio, ficou? A partir da, a conversa prossegue com uma discusso sobre o
crime, a natureza humana, os limites da Estatstica, as maravilhas da Econometria e, antes
que voc perceba, j estar sozinho, no bar, bbado, sem a garota por perto. Ou no.

31

Shikida, Fernandez (2016)

3. Como que eu importo os meus dados para o R? Que loucura esta?


No deve haver um tpico mais polmico do que este. H vrias formas de se
importar dados de planilhas, sites da internet, etc, para o R. Minha sugesto que voc se
especialize em um tipo de arquivo (minha escolha pessoal pelos arquivos no formato csv)
e pesquise sobre outros formatos conforme sua necessidade. De qualquer forma, vamos a
alguns exemplos.

Outra dica do R: estamos na janela de console, certo? O que voc visualiza a em cima
o comando que digitei, exceto por um detalhe: na terceira linha, na extrema esquerda, h
um sinal de +. Ele no foi digitado. que o R, ao encontrar a limitao da janela direita,
passa para a linha de baixo com o sinal + indicando que o que se segue continuao da
linha anterior e no um novo comando. Veja o mesmssimo comando na janela do script. Ele
to comprido que tive que passar para a linha de baixo em algum momento. A regra no
dividir a linha pelo menos at terminar o nome do arquivo, no caso, rationalslaves.csv. Aps
a vrgula, que deve permanecer na mesma linha, tudo bem.

Algumas observaes. O header=TRUE diz ao R que ele deve considerar a primeira


linha da planilha como o cabealho. O sep=, informa que o separador entre as colunas do
arquivo csv a vrgula (no coincidncia que csv seja o acrnimo de comma separated
values). O na.strings=NAinforma que as clulas em branco devem ser preenchidos com a
expresso NA. O dec=. Informa que o separador decimal o ponto. Finalmente,
strip.white=TRUE usado, em read.table, quando a planilha original tem delimitadores.
Basicamente, o que ele faz considerar espaos em branco esquerda e direita da clula
(entre os delimitadores) como parte da mesma. Por exemplo, digamos que a clula (o
separador utilizado so as aspas) : Altamira do Carmo . Assim, os espaos em branco
esquerda e direita do nome sero considerados como parte da clula.
Achou desagradvel? Voc pode simplesmente pedir para abrir uma janela para que
voc mesmo selecione seu arquivo (mas repare que os comandos auxiliares so os mesmos:
cabealho, separadores, etc).

32

Shikida, Fernandez (2016)

Basicamente, o file.choose() permite que escolhamos o arquivo a ser lido por meio de
uma janela. A vantagem que no se precisa indicar o caminho do mesmo. A desvantagem
que se gasta mais tempo para se obter acesso ao arquivo10.
Voc poderia importar dados diretamente da internet sem necessidade de
transferncia para o computador primeiro. Por exemplo, os dados utilizados no famoso
estudo de Fair sobre casos extra-conjugais usado em vrios livros e est disponibilizado
em vrios endereos online como o do exemplo seguinte. Repare que o formato de dados
importado, no exemplo, o do Stata (extenso .dta).

Uma terceira opo copiar os dados da sua planilha e colar no R salvando-os, em


seguida, em um data frame. Lembra do exemplo do Japo? Veja aqui o que foi feito.

O comando strip.white=TRUE usado, em read.table, quando a planilha original tem delimitadores.


Basicamente, o que ele faz considerar espaos em branco esquerda e direita da clula (entre os
delimitadores) como parte da mesma. Digamos que a clula (o separador utilizado so as aspas) : Altamira
do Carmo . Assim, os espaos em branco esquerda e direita do nome sero considerados como parte da
clula.
10

33

Shikida, Fernandez (2016)

Para salvar como data.frame basta aplicar o comando homnimo e eis o resultado.

Para conferir, uso dois comandos simples para ver o incio (head) e o final (tail) da
minha nova base de dados importada.
Existem muitos outros jeitos de se importar dados para o R. Voc pode, por exemplo,
programar e capturar dados da internet. Veja este exemplo para um conjunto de dados em
formato ASCII e extenso .txt que est na pgina de um professor e importado
diretamente para o R.
Para mais dicas sobre como importar arquivos, pesquise um pouco, ok? 11

11

Veja, por exemplo, este material.

34

Shikida, Fernandez (2016)

4. Vamos comear a trabalhar? T tudo em ordem? Eu sei tudo? Tenho dvidas?


Opa, eu tenho dvidas!
Agora que j sabemos alguns detalhes do R, vamos comear a pensar em termos do
trabalho que vamos desenvolver. Primeiramente, um pouco de organizao. Vamos
combinar aqui que necessrio ter um diretrio de trabalho. H quem goste disto. Bem,
isto pode ser feito com o comando setwd().

Pronto! A partir de agora, j podemos nos concentrar no trabalho. Bem, no


exatamente. Seria bom poupar o professor de tantas perguntas. Digamos, por exemplo, que
voc tem dvida sobre o comando log. Como saber mais? Um pouco de tentativa-e-erro
vem a calhar aqui. A maneira mais simples digitar ?log.

Repare que no canto inferior direito obtivemos alguma ajuda. Digamos que voc no
conseguiu ajuda assim. Ento tente ??log (note que ele j apareceu na figura acima). Neste
caso, o R tenta uma busca mais ampla. No caso, encontrou referncias em alguns pacotes.

35

Shikida, Fernandez (2016)

Finalmente, o famoso example(log) que serve para funes simples (algumas).

Outra forma de se pedir ajuda por meio do help.start(). Este comando abre seu
navegador padro diretamente na pgina do R (obviamente voc deve estar conectado...).
J que vamos trabalhar, pode ser interessante ganhar um pouco de memria
removendo alguns objetos. Digamos que eu queira remover o objeto vendasnovo criado h
algumas pginas. Posso escrever rem(vendasnovo) ou remove(vendasnovo) e obterei meu
resultado (no ser apresentada a imagem aqui: verifique voc mesmo que o objeto
desapacerer da listagem no canto superior direito).

36

Shikida, Fernandez (2016)

5. A Estatstica dos Casos Extra-Conjugais de Maridos e Esposas


Para os prximos exemplos importarei uma base de dados famosa, do no menos
famoso economista Ray C. Fair12. A base, Affairs, est em um dos pacotes mais teis do R, o
pacote AER. No preciso importar os dados de planilhas mas apenas carregar o pacote
AER. Vejamos, inicialmente, os dados.

Repare que, inicialmente usei o summary, mas voc pode obter mais estatsticas
usando o pacote pastecs. Ok, voc pode estar achando que estou inventando. Afinal, como
assim uma base de dados sobre casos extra-conjugais? Primeiramente, veja referncia
original do artigo no rodap13. Trata-se de um exemplo clssico de aplicao do modelo de
regresso Tobit14.

Quem j trabalhou com modelos macroeconomtricos em larga escala deve se lembrar do modelo de Fair
usado como exemplo no Eviews. Parte do que se segue adaptado de material que produzi para o blog do
falecido Nepom. Eis o endereo: https://nepom.wordpress.com/2015/05/23/a-economia-dos-casosextraconjugais-ou-monica-lewinsky-visita-o-nepom/.
13 http://people.stern.nyu.edu/wgreene/Lugano2013/Fair-ExtramaritalAffairs.pdf.
14 Caso voc tenha tido bons cursos de Econometria na graduao, saber do que falo. Caso contrrio,
veremos pelo menos como estimar um tobit mais adiante. Obviamente, no da minha conta se voc tem
casos extra-conjugais. Nenhum marido, esposa ou amante foi ferido ou morto (srio) durante a confeco
desta apostila. Bem, no que eu saiba.
12

37

Shikida, Fernandez (2016)

Vejamos quantos o nmero de observaes da varivel affair (que se refere ao


nmero de casos extraconjugais do indivduo no ano anterior). Entretanto, os valores
assumidos pela varivel devem ser interpretados com cautela (ver rodap 5). Por exemplo,
quando affairs assume valores 0, 1, 2 ou 3, estes so exatamente os nmeros de casos
reportados no ano anterior. Caso o respondente tenha tido entre 4 e 10 casos, ele
computado como 7. Finalmente, alguns reportaram ter tido casos em frequncia mensal,
semanal ou diria (!). Para todos estes foi atribudo o valor 12. Dito isto, vejamos os
dados.

Repare que temos 451 indivduos que no pularam a cerca no ano anterior, o que
corresponde a 75% das observaes desta varivel. Quer um histograma?

Uma das vantagens do RStudio em relao ao R que os grficos gerados no


desaparecem quando da gerao de novos grficos. Eles vo se acumulando na aba Plots,
na janela inferior direita.
Digamos que voc queira a tabela de contingncia entre affairs e children. Eis como
fazer.

38

Shikida, Fernandez (2016)

As distribuies marginais na linha e na coluna so obtidas conforme exemplo


abaixo.

Na primeira sada, para a linha 0, ou seja, para os indivduos que no tiveram


casos extra-conjugais no ano anterior, 31.93% eram indivduos sem filhos. Na segunda
sada, a soma em 100% se d em cada coluna e vemos que 84% dos indivduos que no
tinham filhos no tiveram casos vonjugais no ano anterior.
Aproveitando para mostrar como voc identifica um erro no R, gero o grfico de
barras para a varivel yearsmarried.

39

Shikida, Fernandez (2016)

Repare que, na primeira tentativa, eu me esqueci do parnteses logo aps


Affairs$yearsmarried e o R apontou o erro em vermelho com uma mensagem.
Poderamos sobrepor tambm a densidade ao histograma desta varivel. Eis como
fazer isto de forma simples.

No comando acima, primeiro faz-se o histograma. Em seguida, o comando lines faz o


desenho da densidade (density) com uma linha mais espessa (lwd=3).
Digamos que voc esteja interessado na relao grfica entre a idade do indivduo
(age) e a varivel yearsmarried. Em outras palavras, voc quer um diagrama de disperso.

40

Shikida, Fernandez (2016)

Eu no disse ainda, mas se voc pode explorar as opes da aba Plots. Para no
tomar mais nosso tempo (e espao), deixo este exerccio por sua conta e, com isto,
encerramos a parte bsica do R. A partir da prxima seo, passaremos s aplicaes com
anlise de regresso e tudo aquilo que voc esperava com ou sem casos extra-conjugais.

6. Regresso Linear Sistemas de Equaes Simultneas e Testes de Diagnsticos


6.1. O eterno debate da funo consumo (O Primeiro Ato)
Talvez o modelo mais intuitivo para um economista seja o da funo consumo. No
apenas mais intuitito como tambm o mais controverso. Nesta aula, estimamos algumas
funes consumo tradicionais e algumas outras fornecidas como exemplos em Kleiber &
Zeileis (2008). Os dados esto no pacote AER, e dizem a dados trimestrais dos EUA, em
bilhes de dlares j analisados no livro-texto de Greene. Aps carregar AER, incorporamos
os dados: data("USMacroG"). Podemos pedir uma viso inicial dos dados com o comando
plot15.

Podemos, como eu disse antes, trazer o grfico separadamente como imagem para
este documento. Ei-lo a seguir.

Quantas observaes temos para o consumption? Para saber esta informao, basta pedir o
length(consumption).
15

41

Shikida, Fernandez (2016)

1000

2000

3000

4000

5000

6000

income
consumption

1950

1960

1970

1980

1990

2000

Time

Usaremos os comandos lm e dynlm e, eventualmente, dyn - para estimar as


funes consumo. O comando lm j est no pacote bsico do R, stats. Isto significa que
voc no precisa instalar nada para utilizar o comando. J o dynlm (ou o dyn) deve ser
instalado(s) previamente.
Dito isto, vejamos as regresses estimadas para trs funes consumo.
Primeiramente, para a hiptese tradicional keynesiana, temos (note que utilizamos o
comando lm). Digitando a primeira linha abaixo, obtemos a estimao da funo consumo
keynesiana tradicional. A ltima linha nos retorna o resumo (summary, lembra?) dos
resultados.

Repare que a propenso marginal a consumir prxima da unidade e o intercepto


tem o impalatvel valor negativo. Ambos so significativos ao nvel de confiana de 1%.
42

Shikida, Fernandez (2016)

Qual o nmero de observaes utilizadas na regresso? Usando o comando nobs(),


vemos que a regresso cons_key usou...204 observaes.

Veja o que acontece quando usamos o comando names().

A utilidade deste comando que ele nos informa os nomes dos componentes do
objeto em questo - no caso, cons_key facilitando manipulaes posteriores (por exemplo,
construindo testes de hiptese manualmente). Experimente, por exemplo, digitar:
cons_key$coefficients ou cons_key$residuals.
Seria interessante observar os resduos e proceder a outros testes de diagnsticos.
Faremos isso adiante. Antes, contudo, vamos estimar a funo consumo estimada sob a
hiptese de renda permanente (na qual a renda permanente esperada segue um ajuste de
Koyck).

Para esta estimao fizemos uso do comando dynlm. Isto porque sabido que
trabalhar com lags e leads no R uma beno e uma maldio. Beno, porque voc possui
43

Shikida, Fernandez (2016)

formas diretas de criar lags e leads de variveis16. Algum poderia utilizar o comando lm da
seguinte forma17:
cons_rp1 <-lm(consumption~dpi + lag(consumption, -1)-1, na.action=NULL,
data=USMacroG)
O resultado ser, sim, distinto, para os comandos dynlm e lm, exceto no caso em que
a regresso no envolva defasagens. Para fins de comparao, veja a tabela abaixo, com
duas estimaes da funo consumo sob a hiptese da renda permanente.

Perceba que, no modelo estimado pelo comando dynlm, h, como se esperaria, a


perda de uma observao na estimao.
Uma breve digresso que pode lhe confundir agora
O problema a maldio - est na forma como o comando lag desloca as variveis no
tempo, o que exige algum tipo de tratamento prvio dos dados no sentido de alinhar a srie
com ela mesma defasada. Inicialmente, dizemos ao R que as variveis so sries de tempo
por meio do comando as.ts.
cons<-as.ts(USMacroG[, "consumption"])
dpi<- as.ts(USMacroG[, "dpi"])
Em seguida, geramos as defasagens das variveis.
conslag=lag(cons,-1)
dpilag=lag(dpi,-1)
Finalmente, alinhamos conjuntamente (tie) as variveis previamente.
consbi=ts.intersect(cons, conslag)
Uma interessante aplicao de leads o teste de causalidade de Granger-Sims.
Para saber quantas observaes h na regresso cons_rpl, basta digitar cons_rpl$n. Como saber que atributos
de uma sada de regresso podemos obter? Digite names(cons_rpl) neste caso.
16
17

44

Shikida, Fernandez (2016)

dpibi =ts.intersect(dpi, dpilag)


consbi
A vantagem de se adotar esta abordagem est na comparao de regresses por meio
de testes de Wald. A desvantagem que, neste caso, voc tem que ter muito cuidado com
os nomes das variveis. S para matar sua curiosidade, eis como seria a sintaxe para cada
uma das regresses (keynesiana, renda permanente e consumo com hbito).
cons_keyn<-lm(consbi[,1]~dpibi[,1])
cons_rpn <-lm(consbi[,1]~dpibi[,1] + consbi[,2]-1)
cons_habn <-lm(consbi[,1]~dpibi[,1]+consbi[,2])
summary(cons_keyn)
summary(cons_rpn)
summary(cons_habn)
No anexo desta aula entramos em mais detalhes sobre os testes de Wald para
modelos dinmicos no R. Por ora, voltemos anlise da funo consumo com renda
permanente estimada acima.

Neste caso, a renda corrente torna-se estatisticamente no-significativa e a


autoregressividade do consumo parece ser a varivel mais importante, indicando que a
escolha intertemporal deve ser importante.
Outra funo consumo poderia ser aquela na qual o consumidor tem hbito. Neste
caso, o consumo que segue uma movimentao no tempo ao estilo das defasagens de
Koyck18. A forma reduzida estimada similar da renda permanente, exceto que, agora, h
um intercepto (o que nos ajuda a racionalizar, economicamente, o famoso consumo
autnomo).

Uma outra forma de obter um intercepto na funo consumo calcular a demanda para uma funo de
utilidade Cobb-Douglas que apresente um nvel mnimo de subsistncia. Para um mesmo perodo de tempo,
hbito ou subsistncia seriam racionalizaes similares para a funo consumo do tipo C = a + bY.
18

45

Shikida, Fernandez (2016)

Os resultados no parecem se diferenciar muito daqueles encontrados no modelo da


renda permanente. Observe que a ltima equao estimada equivale a uma forma irrestrita
que contm as outras duas funes consumo como casos particulares. Antes de prosseguir,
vejamos alguns problemas tpicos das regresses. A primeira coisa que deveria ser feita
seria a anlise dos resduos. Vejamos, assim, alguns diagnsticos para cada uma das
funes .
Diagnsticos Funo Consumo Keynesiana

Vejamos cada um dos diagnsticos. O primeiro grfico faz a correspondncia entre


valores estimados e resduos. Conforme destacado por Kleiber & Zeileis (2008), a utilidade
deste grfico nos dar uma ideia visual da hiptese de que os elementos da matriz X so
no correlacionados com o erro (em nosso grfico, as variaes parecem sistemticas ou
aleatrias?).
46

Shikida, Fernandez (2016)

Este o famoso QQ. Por ele percebemos que os erros certamente no se encaixam em
uma distribuio normal (repare nos quantis mais altos).

O grfico acima nos d a raiz quadrada dos erros padronizados e os valores


ajustados. A ideia do grfico verificar evidncias de heterocedasticidade.

O grau de leverage de uma observao indica o quanto ela se afasta da varincia da


matriz de varincia-covarincia. Para mais detalhes, veja Kleiber & Zeileis (2008), cap.4.
Mas o que o diagnstico nos diz que as observaes 201, 203 e 204 merecem nossa ateno.
Repare que o grfico acima est um pouco confuso e voc deve estar pensando que tenho
47

Shikida, Fernandez (2016)

poderes de jedi para distinguir entre 201, 203 e 204. O truque pedir um zoom do grfico.
Veja como ele fica.

Outra forma de se pesquisar observaes no-usuais dada pelo conjunto de


medidas de Belsley, DFFIT, DFBETA, COVRATIO e D 2. As mesmas podem ser obtidas pelo
comando influence.measures( ). De acordo com o resumo destas medidas, as observaes
influentes seriam a 139 e 198 a 204 (ou seja, 1984.III e 1992.II 2000.IV).
Vejamos o mesmo conjunto de grficos para as outras duas funes consumo bem
como os diagnsticos das medidas de influncia19. Os comandos, algumas sadas e um
resumo esto a seguir:
summary(influence.measures(cons_key))
summary(influence.measures(cons_rp))
summary(influence.measures(cons_hab))

19

Faremos a discusso destas medidas caso haja tempo.

48

Shikida, Fernandez (2016)

Medidas de Influncia
Funo Consumo
Keynesiana
Renda Permanente

Hbito

Pontos influentes detectados


1984.III e 1999.II 2000.IV
1950.III, 1974.I, 1974.IV,
1980.II, 1981.IV, 1984.III,
1984.IV, 1985.II, 1990.IV,
1991.I, 1991.IV, 1996.IV,
1997.IV, 1998.III, 1999.I
2000.IV
1974.I, 1974.IV, 1980.II,
1981.IV, 1984.III, 1990.IV,
1991.I, 1991.IV, 1999.II
2000.IV.

A estimao de funes sob a existncia de pontos influentes pode ser feita


considerando-se erros-padro robustos. Isso ser feito adiante. Para gerar o conjunto de
grfico a seguir, eis os comandos20:
par(mfrow=c(3,3))
plot(cons_key, which=1:6)

Diagnsticos Funo Consumo Keynesiana

Cuidado ao usar o RStudio. Para obter mais grficos na mesma janela, voc tem que ampliar o tamanho da
mesma em detrimento das demais. Ao fazer isto, em nosso exemplo, descobre-se que dois grficos adicionais
de diagnstico de resduos estavam ocultos.
20

49

Shikida, Fernandez (2016)

Fica como exerccio para voc gerar os conjuntos correspondentes s outras funes
estimadas. Vejamos alguns outros testes de diagnsticos que no precisam de pacotes (j
esto no pacote bsico que carregado por default no R, o stats)21 (Breusch-Godfrey, LjungBox), o teste Breusch-Pagan e o RESET (carregados a partir do pacote lmtest).

Para o teste de autocorrelao, reporto Breusch-Godfrey e Ljung-Box. possvel tambm obter o DurbinWatson. Entretanto, para modelos ADL, o teste de Breusch-Godfrey parece ser recomendado (vide Gujarati &
Porter (2011)). O teste h de Durbin tambm poderia ser construdo manualmente a partir dos resultados
reportados.
21

50

Shikida, Fernandez (2016)

Voc pode checar o restante das estatsticas com a tabela que constru abaixo.
Testes de Diagnstico - Vrios
Funo
Consumo
Keynesiana
Renda
Permanente
Hbito

Breusch
Pagan
(p-valor)
42.5195
(6.998e-11)
0.6182
(0.4317)
3.7984
(0.1497)

RESET

542.6619
(2.2e-16)
1.9413
(0.1651)
2.1295
(0.1461)

BreuschGodfrey

LjungBox

185.2714
176.2777
(2.2e-16)
(2.2e-16)
7.6098
7.4906
(0.005805) (0.006202)
7.5542
7.4044
(0.005987) (0.006507)

Os resultados acima mostram que a funo keynesiana parece ter problemas de


heterocedasticidade. Seria prudente reestimar as equaes utilizando algum estimador HC
para obtermos erros padro robustos. Vejamos os resultados para os trs modelos com HC4,
j que h observaes influentes.

51

Shikida, Fernandez (2016)

Pode-se observar que os erros-padres no se alteram muito, exceto, talvez, no caso


da funo consumo keynesiana. Finalmente, vale notar que um problema importante destas
estimaes diz respeito ao fato de os dados estarem no domnio do tempo. Por que?
Bem, note que a funo consumo keynesiana apresenta evidncias de noestacionaridade, medida pela aplicao da regra de bolso (R2 > DW). O comando
dwtest(cons_key) nos mostra que esta desigualdade seria, para este modelo, 0.9964 >
0.09222. Assim, antes de chegarmos a alguma concluso sobre a funo consumo,
deveramos considerar a modelagem da funo consumo conforme as caractersticas
temporais das sries, algo que ser visto nas ltimas aulas.
Como sabemos, a funo consumo no apenas a nica explicao de toda histria
do ciclo econmico. O investimento agregado, a balana comercial, etc tambm so
extremamente importantes. O problema economtrico, portanto, o de saber como estimar
relaes levando em conta o aspecto sistmico de alguns fenmenos econmicos. Em
poucas palavras, o que voc j estudou na econometria de sistemas de equaes
(recursivas ou simultneas). Para sistemas de equaes simultneas, um pacote geralmente
utilizado a systemfit. Entretanto, os resultados acima praticamente pedem por uma
comparao entre os trs modelos. Afinal, o modelo do consumo com hbito pode ser tido
como um caso irrestrito, tendo como subconjuntos os outros dois modelos.

O teste de Durbin Watson o que voc quer, no? O pacote lmtest possui o comando dwtest(). Assim, o que
fiz foi: dwtest(cons_key), obtendo o valor reportado.
22

52

Shikida, Fernandez (2016)

Entretanto, esta comparao s possvel se o nmero de observaes utilizadas for


o mesmo. O uso do pacote dynlm, embora facilite nossa anlise no curto prazo, no til
neste caso. A maneira correta de se proceder, assim, alinhar conjuntamente as variveis
(eliminando clulas vazias) e depois fazer as regresses. Vimos como juntar as variveis e
como estima-las no box desta seo. Quanto aos testes de Wald, temos:

A primeira comparao entre o modelo de renda permanente e o de hbito e a


segunda, entre o de hbito e a funo keynesiana. Embora a funo keynesiana se saia pior
do que o modelo de hbito, esta parece ser superada pela funo com renda permanente.
Obviamente, a anlise no conclusiva ainda pois, como vimos, os dados apresentam
caractersticas prprias tpicas de sries de tempo.
Outra forma de se analisar cada modelo, separadamente, fazer um teste Type I
ANOVA sobre o mesmo. O teste faz, simplesmente, uma anlise sequencial, com sucessivas
incluses das variveis independentes. Exemplificando para o modelo de consumo com
hbito, temos:

Legal, n?

Anexo 1 A questo das observaes influentes


Considere a seguinte funo consumo estimada para dados brasileiros (a sada
apresentada est em R, no em RStudio):
cons_hab3<-dynlm(cons~dpi+L(cons,1), data=basebr)
summary(cons_hab3)
53

Shikida, Fernandez (2016)

Uma forma de se identificar pontos no-usuais da amostra usar o pacote car e o


comando InfluenceIndexPlot. No exemplo a seguir, pede-se que o R nos mostre, no grfico,
os trs pontos mais distantes da mdia da varivel do eixo horizontal do grfico nos
critrios especificados.
influenceIndexPlot(cons_hab3,vars=c("Cook", "hat"), id.n=3)

Cook's distance
0.08
0.04
0.00

Diagnostic Plots
2004(1)
1994(4)

2003(4)

hat-values
0.06
0.02

2004(4)
2004(3)
2004(2)

50

100

150

200

Index

54

Shikida, Fernandez (2016)

Seria interessante, assim, discutir a origem destes deslocamentos na discusso da


funo consumo keynesiana23.

6.2. O PIB, a Base Monetria e o Teste de Hipteses


Um exerccio que anima muita gente em Macroeconomia tentar testar hipteses
polmicas. Quem nunca brigou com o amigo, a namorada ou o vizinho por conta da
proposio da neutralidade da moeda? Duvido que haja algum que tenha cursado
Cincias Econmicas e passado inclume por esta questo.
Gujarati & Porter (2010) apresentam um exemplo de teste interessante para este
problema, por meio dos modelos ADL (autoregressive distributed lags). A ideia a seguinte:
sabemos que a teoria suficientemente abstrata para no nos dizer se a neutralidade da
moeda se d em amostras de dados cross-section, de sries de tempo, etc. Assim, a proposta
de teste dos autores simples: em um modelo ADL, supondo que a causalidade seja da
moeda para o PIB, a moeda seria neutra se os coeficientes defasados da moeda no forem
estatisticamente significativos.
Obviamente, quem j passou pela graduao, sabe que este tipo de protocolo de teste
no imune a crticas (a prpria exogeneidade suposta ad hoc poderia ser questionada) mas
no estamos em um debate profundo neste momento (graas a Deus!).
Considere, ento, a replicao do exerccio com dados brasileiros. Temos o PIB do
Brasil e a Base Monetria, anuais, ambos no perodo 1946-2013. Vejamos os dados.

Veja, agora, a estimao do modelo com trs defasagens e um termo autoregressivo.

Segundo Bollen & Jackman (1990), pontos com distncias de Cook acima de 4/n (n = tamanho da amostra)
devem ser analisados com cautela. Agradeo a Ari Francisco de Araujo Jr por esta observao.
23

55

Shikida, Fernandez (2016)

Ao invs de pedir o sumrio, desta vez usei o comando coeftest. Vemos que a base
monetria tem algum efeito, mas ele no existe para a primeira e nem para a terceira
defasagem. Assim, usamos o comando linearHypothesis do pacote car para testar a hiptese
de que os coeficientes da Base so igualmente iguais a zero. O teste nos diz que, em seu
conjunto, os coeficientes da Base no so nulos (com p-valor bem baixo).
Ser que a moeda no mesmo neutra? Bem, esta uma questo que exige mais do
que este exemplo consegue responder24.

6.3. Morar longe da faculdade diminui seu salrio?


Antes que voc fique inquieto, 25 trata-se apenas de uma aplicao de variveis
instrumentais e do mtodo dos MQ2E. Talvez a distncia da faculdade (ou do colgio,
como no exemplo) possa dificultar a obteno de seu diploma, mas ser que afetar seu
salrio? A distncia, assim, est sendo utilizada como instrumento para educao.
Vejamos o exemplo em dois estgios e depois, com o comando ivreg (pacote AER) e,
finalmente, com o comando tsls (pacote sem). As outras variveis so urbanyes (sim, se o
Fosse eu um aluno de graduao, neste momento estaria pedindo dummies, reclamando da exogeneidade ad
hoc, da falta de anlise dos resduos, da ausncia dos erros-padro robustos, etc. Fosse eu um simpatizante
(ou no) da tese da neutralidade da moeda no longo prazo pediria testes com diferentes especificaes de
defasagens. Fosse eu um aluno de ps-graduao, estaria recitando o mantra: raiz unitria-cointegrao e
reclamando de outros detalhes. Enfim, se algum quiser testar isto, em algum nvel do conhecimento (desde
que seja para obter avanos marginais em seu capital humano), sinta-se vontade para seguir em frente com
este tema. No tem muito a ver com o R em si, mas esta discusso sempre me provoca.
25 Originalmente em: http://r.789695.n4.nabble.com/instrumental-variables-regression-using-ivreg-AER-ortsls-sem-td4651366.html.
24

56

Shikida, Fernandez (2016)

colgio se localiza na rea urbana), genderfemale, ethnicityyafam (afro-americano),


ethnicityhispanic, unemp (taxa de desemprego do condado em 1980), education (nmero de
anos de educao), distance (distncia de um college de 4 anos, em 10 milhas) e wage (salriohora estadual na indstria, 1980).
Primeiro, vejamos o primeiro estgio.

Desta regresso obtemos a previso de education para us-la na equao do salrio. O


comando : cd.d$ed.pred<- predict(reg.simples). O segundo estgio, assim:

57

Shikida, Fernandez (2016)

Agora vejamos o resultado por meio do mtodo de variveis instrumentais.

Vejamos o mesmo resultado pelo mtodo MQ2E.


m2 <- tsls(wage ~ urban + gender + ethnicity + unemp + education,
~ urban + gender + ethnicity + unemp + distance, data = cd.d)

58

Shikida, Fernandez (2016)

Repare que, em ambos os casos, os instrumentos so as variveis exgenas (que so


instrumentos delas mesmas) urban, gender, ethnicity, unemp e distance (que instrumento da
education). Os resultados so interessantes? Talvez no para os afro-americanos ou os
hispnicos. A educao tem o efeito esperado sobre os salrios e o desemprego parece ter
um efeito invertido ao usual (positivo) o que pode ser sinal de problemas de especificao
(ou, alternativamente, temos que pensar em uma explicao melhor para o resultado...).
Ser que education realmente endgena? Vamos testar isto! No entanto,
utilizaremos mais de uma varivel como instrumento. Adicionalmente distancia da
faculdade usaremos score que uma medida de desempenho mdio destes alunos no
ensino mdio. Primeiramente verificaremos se education correlacionada com a distncia e
com o score:

Agora devemos regredir educao contra todas as variveis exgenas urban, gender,
ethnicity, unemp adicionando seus possveis instrumentos distance e score.

59

Shikida, Fernandez (2016)

Precisaremos dos resduos desta regresso, obtemo-los da seguinte forma:


v2.hat=reg2$residuals
O prximo passo utilizar estes resduos na nossa equao original e verificarmos se
eles so estatisticamente diferentes de zero, como segue:
reg3 = lm(wage ~ urban + gender + ethnicity + unemp + v2.hat,data=cd.d)
summary(reg3)

60

Shikida, Fernandez (2016)

Observe que realmente estvamos corretos a 10% de significncia em nossas


suspeitas, education realmente endgeno26.

6.4. Mais armas, menos crimes...com dummies


O que voc prefere? Andar armado ou deixar que apenas os que tm porte de armas
o faam? Qual seria o impacto do porte de armas mais liberal sobre a violncia? Talvez
no exista um exemplo mais polmico sobre polticas pblicas do que este. Embora haja
uma discusso muito importante sobre o tema, vou usar a base de dados para ilustrar o uso
de dummies no R. Basicamente, uma dummy, no R, uma varivel do tipo fator (factor).
Vejamos, por exemplo, como a base original.

Perceba que as duas ltimas variveis, state e law so no-numricas e j esto,


automaticamente, classificadas como fatores.

O que seria preciso para fazer a regresso? Praticamente nada. Eis os comandos que
utilizarei.

26

Acerca dos testes de exogeneidade neste contexto, ver, por exemplo, Stock & Watson (2010).

61

Shikida, Fernandez (2016)

Vejamos uma parcial da tabela de resultados.

Repare que a varivel law aparece como lawyes e algo similar ocorre com os estados
dos EUA. Claro que o valor no da varivel law a categoria de referncia (e algum dos
estados cumpre esta funo de forma similar, claro). Podemos redefinir a referncia, por
exemplo, para a varivel law, simplesmente digitando o seguinte.

Uma viso parcial da sada da nova regresso nos mostra que tivemos sucesso aqui.

Podemos aproveitar para ilustrar outro ponto interessante do R: os termos nolineares. Digamos que haja motivos tericos para imaginar que a violncia seja impactada
negativamente pela renda mas que tambm existam efeitos de segunda ordem. Basta usar a
funo I().
62

Shikida, Fernandez (2016)

Eis a viso parcial dos resultados.

Ser que este ltimo modelo est especificado corretamente? O teste RESET o
adequado para se fazer o teste. Vamos comparar este modelo - exemplo2- com o original
(exemplo). Para fazer isto, precisaremos do comando linearHypothesis do pacote car.

Outro uso da dummy na forma de termo de interao. Assim, suponha, apenas para
fins de ilustrao, que tenhamos motivos para imaginar que o coeficiente da varivel density
possa ser alterado conforme a lei assuma um de seus valores (vale lembrar que, no caso, 1
diz respeito ao fato de que a lei que permite o porte de armas est ativo no estado em
questo). Como fazer esta estimao?

O resultado? Vejamos (a tabela extensa, note que resumi um pouco...).


63

Shikida, Fernandez (2016)

No caso, vemos que o efeito de interao significativo o que significa que quando a
law varia, o coeficiente associado varivel density tambm varia (estados nos quais a lei
que permite o porte de armas no adotada, ou seja, law assume valor 0, so tais que o
impacto da densidade sobre a violncia so menores (aproximadamente: -.5 0.9 = -1.4).
Repare que este efeito de interao poderia no existir mas justamente isto que est sendo
testado.
Um exerccio interessante, contudo, considerar os efeitos de painel desta base de
dados. Sim, eu no disse nada, mas o que foi feito a em cima foi simplesmente aplicar um
mnimos quadrados ordinrios sobre um painel empilhado, mas voc no vai me dar um
tiro na testa por conta disto, certo?

6.5. A Lei de Wagner, a Guerra do Paraguai e o teste t


A Lei de Wagner uma correlao clssica na Histria do Pensamento Econmico e
na Economia do Setor Pblico. A bem da verdade, acho que no seria incorreto dizer que
suas razes remontam famosa Methodenstreit (literalmente: a disputa entre mtodos).
Mas correlao entre que variveis? Basicamente entre o nvel de gastos do governo e o PIB.
A ideia que o aumento do PIB levaria a um aumento dos gastos do governo. A
causalidade, neste caso, ad hoc, apenas por suposio do autor, por isso chamo-a de
correlao.
Vejamos o caso do Brasil. Graas a Goldsmith (1987), temos uma srie de PIB e de
Gastos do Governo que se inicia em 1850, o que nos permite ilustrar outro aspecto
interessante do R por meio do uso de dummies, qual seja, os fatores de interao.

64

Shikida, Fernandez (2016)

No exemplo, introduzimos uma varivel dummy que capta os perodos de conflitos


internacionais do Brasil: a Guerra do Paraguai e as duas guerras mundiais. A regresso
pretende testar se a lei de Wagner sofre algum tipo de efeito com as guerras. Os dados
foram importados e foram deflacionados. Em seguida, foram transformados em sries de
tempo.

O passo seguinte estimar a regresso.

Curiosamente, a lei de Wagner aparece com o sinal invertido. A dummy de guerra


(war) significativa. Repare no ltimo termo, war:pib_real, que diz respeito ao termo de
interao. Todos os coeficientes estimados foram significativos. Vamos interpretar alguns
deles. Sabemos que o gasto real do governo tem, ceteris paribus, uma mdia de 406.71. Em
perodos de guerra, este valor acrescido de 637.19. O coeficiente do pib_real de -0.33 mas,
65

Shikida, Fernandez (2016)

em perodos de guerra, o coeficiente menor ainda (-0.33 + (-1.23)). Perceba que o comando
para criar o efeito de interao simples27.

Anexo 2 Tabelas com vrias regresses no R: salvando o dia do bolsista


Uma das tarefas mais inglrias do estagirio/monitor/bolsista fazer tabelas com
vrias regresses. Existem algumas opes no R que minimizam este problema. Por
exemplo, suponha que tenhamos estimado trs funes consumo e queiramos um quadro
resumo. Podemos usar o programa stargazer para nos ajudar.

Outro exemplo.

Veja tambm este exemplo, para uma varivel dummy categrica com trs categorias.
http://datascienceplus.com/assessing-significance-of-slopes-in-regression-models-with-interaction/
27

66

Shikida, Fernandez (2016)

Repare que o comando tem tambm a opo de gerar o cdigo da tabela para LaTex.
A vignette do programa bastante til28 e o lamentvel que nem todos os pacotes do R so
compatveis com stargazer. Mesmo assim, ajuda a alegrar a vida do pesquisador, no ajuda?

Anexo 3 - Sorvetes, Matrizes e MQO (prof. Rodrigo N. Fernandez)


Agora faremos um exemplo relembrando nossas aulas de econometria. O R um
software bastante poderoso quando desejamos trabalhar com matrizes. Primeiramente
vejamos o nosso :

= ( )1

Para calcularmos nosso parmetro usaremos a base de dados Icecream do pacote Ecdat.
Este pacote contm um diverso conjunto de dados para aplicaes em econometria. Nossa
primeira tarefa ser instalar este pacote ou carreg-lo com os seguintes comandos:
install.packages(Ecdat)
library(Ecdat)
data(Icecream)

Aps carregarmos os dados usaremos o comando attach(Icecream) para podermos


usar os nomes das variveis que esto na base de dados. Se voc for curioso como eu e
deseja saber o que est na base de dados digite head(Icecream,10) :

28

https://cran.r-project.org/web/packages/stargazer/vignettes/stargazer.pdf.

67

Shikida, Fernandez (2016)

Voc ver as dez primeiras observaes do nosso conjunto de dados. Nessa base de
dados temos 30 observaes para o consumo semanal de sorvete nos EUA entre maro de
1951 a novembro de 1953 nos EUA. As variveis so as seguintes:

cons = consumo de sorvete por pessoa (em litros)


income = renda semanal mdia da famlia por semana (em Dlares)
price = preo do sorvete (por litro);
temp = temperature mdia em graus Fahrenheites

O prximo passo traduzir o nome das variveis fazendo o seguinte:


consumo=cons
renda=income
preco=price
temperatura=temp

Tendo nossos dados necessrio criar nosso vetor de constantes para podemos
utilizar na nossa regresso mltipla:
n=nrow(Icecream)
68

Shikida, Fernandez (2016)

uns = rep(1,n)
O primeiro comando nos retorna quantas linhas a nossa base de dados possui, como
mencionamos previamente o tamanho de n igual a 30. O segundo comando cria o vetor
de constantes. Em seguida construiremos as nossas matrizes X e Y da seguinte forma:
X = cbind(uns,renda,preco,temperatura)
Y = cons
O comando cbind monta uma matriz com todos os nossos vetores coluna, que so as
variveis dependentes na nossa regresso mltipla. O prximo passo fazermos operaes
com essas matrizes. Para isso usaremos o seguinte:
solve(t(X)%*%X)
Aqui estamos fazendo a primeira parte do clculo do nosso . Na linguagem do R o
comando %*% indica a multiplicao de matrizes, t(X) a matriz transposta e solve calcula
a matriz inversa, deste modo temos X ' X 1 . Para facilitar nossas contas adicionaremos ao
comando acima o seguinte:
xlinhax = solve(t(X)%*%X)%*%t(X)
Por fim multiplicamos por Y:
beta.hat=xlinhax%*%Y

Para calcularmos nosso Y estimado e os resduos fazemos o seguinte:


y.hat = X%*%beta.hat
e.hat = Y y.hat
Podemos tambm calcular a matriz de varincia e covarincia fazendo o seguinte:
k = ncol(X)
sig.2=sum(e.hat^2)/(n-k)
69

Shikida, Fernandez (2016)

cov.b = sig.2*solve(t(X)%*%X)
Digite cov.b e veja o resultado no terminal:

Para calcularmos o desvio padro precisamos da raiz quadrada da diagonal


principal da matriz de varincia e covarincia:
dp.b = sqrt(diag(cov.b))
Para obtermos nossa estatstica t:
est.t = beta.hat/dp.b
E agora nossos p-valores:
p.valor.t=2*pt(abs(est.t),df=n-k,lower.tail=FALSE)
Finalmente temos tudo que precisamos referente a nossa regresso. Vamos ento
construir uma matriz que resuma estes resultados:
sumario=matrix(1,nrow=4,ncol=4)
sumario = cbind(beta.hat,dp.b,est.t,p.valor.t)
colnames(sumario)=c("Beta","DP","Estat-T","P-Valor")

Que tal compararmos nossos resultados com o da funo lm? Para isto devemos usar
o seguinte comando:
70

Shikida, Fernandez (2016)

reg = lm(consumo~renda+temperatura+preco,data=Icecream)
Obtemos o resumo da regresso com o comando summary(reg):

Veja que acertamos na mosca! Desde aquela poca o consumo de sorvete dependia
positivamente da renda e da temperatura. Tambm observamos que o preo afeta
negativamente o consumo da delcia gelada, mas esta varivel no estatisticamente
significativa.
Adicionalmente, usaremos a matriz de White para termos erros padres robustos e
corrigirmos um possvel problema de heterocedasticidade:

1
1
V X ' X 2 X ' X X ' X

Construiremos a nossa matriz v.hat:


v.hat = matrix(0,ncol=n,nrow=n);
Inseriremos na diagonal principal da nossa matriz de White os erros padres
estimados ao quadrado:
diag(v.hat) = e.hat^2;
Calculamos ento segunda parte com os seguintes comandos:
xlinhax1=X%*%solve(t(X)%*%X)
v.white = xlinhax%*%v.hat%*%xlinhax1

71

Shikida, Fernandez (2016)

Obtemos ento os erros padres robustos:


dp.b.rob = sqrt(diag(v.white))
Voc pode estar se perguntando, ser que o R no faz isso de um jeito mais fcil?
claro que sim, primeiro carregue o pacote sandwich (library(sandwich)). E digite o seguinte
comando:
vcovHC(reg,type="HC0")
O leitor observar que os resultados so equivalentes aos apresentados acima. Como
se v, sorvetes tambm podem nos ajudar a aprender Econometria e, melhor ainda,
Econometria em R.

72

Shikida, Fernandez (2016)

7. Modelos Microeconomtricos
7.1. Coca ou Pepsi? 29
O exemplo clssico de bens substitutos perfeitos est resumido no subttulo acima.
Em Hill, Griffiths & Lim (2011), cap.7, temos uma aplicao economtrica desta pergunta
por meio de modelos lineares generalizados (binomial, gaussiano ou Poisson). Os dados
so relativos a uma amostra de 1140 indivduos. A base contm o preo relativo entre uma
lata de Coca-Cola e uma de Pepsi-Cola, a existncia ou no (dummies) de anncios no ponto
de venda de um ou de outro e, finalmente, duas dummies indicando se o sujeito comprou
um ou outro refrigerante.
Vejamos o arquivo.

Os autores, inicialmente, os autores estimam um modelo linear por meio de MQO,


para a Coca-Cola. A leitura a de que estamos estimando os determinantes da
probabilidade do indivduo da amostra comprar uma lata de Coca-Cola. Eis os resultados.

29

Particularmente, eu preferiria escolher entre Coca Zero e Pepsi (comum).

73

Shikida, Fernandez (2016)

A leitura a seguinte: a existncia de anncios de Coca-Cola, ceteris paribus,


aumentam em 0.07% a probabilidade de se comprar este refrigerante. A propaganda do
concorrente, por sua vez, tem um efeito negativo, ceteris paribus, de queda de 0.16%.A razo
de preos, medida como o preo relativo da Coca-Cola em relao Pepsi, tem um impacto
negativo sobre a probabilidade de compra do primeiro. Seguindo os autores, se a diferena
de preos for de 10%, com a Coca-Cola mais cara do que a Pepsi (ou seja, pratio = 1.10),
ento a probabilidade do indivduo comprar a Coca diminui em 0.04% (= 0.10 x 0.04), sem
considerar a existncia de anncios (no se esquea: ceteris paribus).
Sabemos que este modelo pode no ser adequado dado seu carter linear e a
necessidade de que as probabilidades estejam entre zero e um. Assim, podemos usar o
comando glm para estimar um probit ou um logit para a mesma base. Eis os resultados para
ambos.

74

Shikida, Fernandez (2016)

Repare que, com distintas distribuies, os coeficientes mudam de magnitude, mas


no de sinal. A significncia estatstica tambm mantida. Em relao ao modelo linear,
repare que o impacto do preo relativo muito maior. Os coeficientes relativos
propaganda tambm so maiores, em magnitude, quando se os comparam com o modelo
linear. Entretanto, salta aos olhos a importncia relativa dos preos relativos em relao
propaganda. Em qualquer das trs estimativas, a variao dos preos muito mais
importante, o que uma evidncia favorvel, creio eu, viso de que estes bens,
teoricamente, so substitutos perfeitos para o consumidor 30.
Os efeitos marginais podem ser calculados, no caso do probit, para fins de
comparao com o modelo original. Eis os resultados:

Repare que os efeitos marginais no so muito distintos daqueles obtidos pelo


modelo linear. Os efeitos marginais foram obtidos, neste caso, por meio da mdia dos
efeitos marginais amostrais. Como destacam Kleiber & Zeileis (2008), possvel calcular os
efeitos sobre a mdia do regressor, mas a existncia de fatores do lado direito da regresso
(disp_coke, disp_pepsi) faz com que o procedimento reportado seja prefervel.
Em termos de ajuste aos dados, podemos calcular o pseudo-R2 de McFadden ou
verificar a previso do modelo (considerando um ponto de corte de 0.5).

Da tabela, temos que 66% ((507 + 247) / (507+123+263+247) = 0.66 ) das observaes
so previstas corretamente. Hill, Griffiths & Lim (2011), em sua anlise dos dados, indicam
que os trs modelos linear, probit e logit tm desempenho semelhante no que diz
respeito previso. Por meio do pacote ROCR, pode-se obter algumas outras medidas de
previso. Portanto, sem entrar em mais detalhes, eis os comandos e os resultados gerados.

Ok, aqui eu creio que valeria a pena pensar em modelos de competio (duoplio) e gastos em propaganda.
Creio que uma discusso bem interessante para o usurio de R com vcio em questes econmicas.
30

75

Shikida, Fernandez (2016)

Observe a ltima linha. Resumidamente, o primeiro grfico nos diz que o ponto de
corte um pouco maior que 0.5, sugerindo que a tabela das previses que apresentamos
acima (baseada no corte em 0.5) no uma medida adequada. O segundo grfico, por sua
vez, nos diz que o modelo tem bom desempenho. Segundo Kleiber & Zeileis (2008), o
desempenho melhor quanto mais a noroeste da reta de 45 graus est a curva. 31
Seguindo Hill, Griffiths & Lim (2011), pode-se fazer um teste de hipteses sobre o
efeito das propagandas dos dois refrigerantes. Por meio do pacote car, podemos fazer tal
teste. Eis os resultados.

31

Para detalhes sobre estas medidas, ver Kleiber & Zeileis (2008), seo 5.2.

76

Shikida, Fernandez (2016)

Assim, a 10%, a hiptese nula rejeitada. Vale lembrar que, para testes de hipteses
em modelos GLM, Kleiber & Zeileis (2008) no recomendam o uso de erros-padro
robustos (sandwich), exceto em regresses do tipo Poisson. Para outros testes, o leitor
convidado a consultar Kleiber & Zeileis (2008) e a documentao do R.

7.2. Esporte Espetacular


Nesta seo reproduzimos o exemplo das medalhas em Olimpadas de Hill, Griffiths
& Lim (2011). A ideia implementar o exemplo de uma regresso Poisson, j que os dados
da varivel dependente so de contagem (nmero de medalhas). Repare que a regresso foi
feita apenas para o anos de 1988, por meio de subset=olympics$year==88 . Note que a
forma de delimitar a amostra ligeiramente distinta da que vimos anteriormente. O
arquivo olympics.csv.

Eis a regresso.

77

Shikida, Fernandez (2016)

interessante pensar em alguma coisa similar a um ponto timo neste exemplo.


Afinal, pode-se imaginar que exista um nmero de medalhas timo relativamente ao PIB
ou populao de um pas. Eis o que encontramos ao incluir alguns termos no-lineares
nesta mesma regresso.

78

Shikida, Fernandez (2016)

Repare que, nesta especificao, apenas a populao tem algum efeito diferente de
zero, e no-linear (a 10%). Uma questo interessante seria pensar tambm no modelo em
funo do PIB per capita, ao invs dos termos separados. A racionalizao, para nolinearidades, poderia ser similar a de uma curva de Engel. Eis os resultados.

Podemos analisar esta especificao, por exemplo, em termos de super-disperso


(overdispersion), um problema comum em regresses Poisson. Para tanto, usamos o pacote
AER. H dois testes de super-disperso neste pacote, conforme a especificao que se
queira supor para a varincia. Apresentamos, sem maiores discusses, os resultados destes
testes32.

Para detalhes sobre sua especificao, ver Kleiber & Zeileis (2008), cap.5. Para detalhes sobre o problema,
ver Fox & Weisberg (2011), seo 5.10.4. Basicamente, o problema diz respeito ao fato de que a varincia
amostral geralmente no igual mdia, como se supe quando a distribuio assumida a de Poisson.
32

79

Shikida, Fernandez (2016)

Ambos sugerem problemas de super-disperso e, segundo Kleiber & Zeileis (2008), o


procedimento comum usar uma distribuio binomial negativa em lugar da Poisson ou
usar erros-padro robustos (Huber-White). Primeiramente, vejamos a binomial negativa
obtida por meio do pacote MASS.

80

Shikida, Fernandez (2016)

A segunda opo reestimar nossa regresso Poisson com a matriz de varinciacovarincia ajustada por Huber-White.

Percebe-se que os resultados da binomial negativa so mantidos e a relao entre PIB


per capita e medalhas mantm-se no significativa aos nveis usuais33. Vale a pena ser sede
de uma Olimpada? Talvez no. Pelo menos o que este exerccio aponta. Como melhorlo? Eis a pergunta que vale uma medalha de ouro.

7.3. Os motivos da traio: o retorno dos casos extra-conjugais!


Nesta seo, basicamente repetiremos o exerccio de Kleiber & Zeileis (2008) com os
dados de casos extraconjugais, um exemplo de dados censurados (caso observados,
assumem valores positivos, seno, zero). Lembre-se que j tratamos desta base de dados na
seo 5 deste texto.
O objetivo estudar os determinantes de casos extraconjugais. Ento, quais os
motivos da traio? Vejamos o resultado da estimao.

Para maiores detalhes sobre outros modelos de contagem, ver Kleiber & Zeiles, cap.5, especialmente a
discusso sobre zero-inflated Poisson e Hurdle Models. Ambos so estimveis por meio do pacote pscl.
33

81

Shikida, Fernandez (2016)

Os resultados mostram evidncias de que pessoas felizes no casamento (rating)


tendem a trair menos. Tambm observamos que a religiosidade um fator com influncia
negativa sobre a ocorrncia de casos extraconjugais. Poderamos seguir adiante com a
discusso sobre a vida conjugal das pessoas (um bom tema para fofocas, eu sei), mas o
objetivo, aqui, apenas o de mostrar como se estima um modelo Tobit no R.
De qualquer forma, fica aqui uma observao importante: a varivel dependente,
lembre-se, o nmero de casos extraconjugais do indivduo no ano anterior. Em outras
palavras, uma varivel de contagem e, portanto, o modelo mais adequado para a
estimao seria uma regresso de Poisson. Assim, a regresso mais adequada talvez fosse
esta.

82

Shikida, Fernandez (2016)

Repare que, neste caso, todas as variveis tornam-se estatisticamente significantes e,


comparando-se com a estimao obtida pela regresso Tobit, os sinais dos coeficientes,
emboras as magnitudes mudem um pouco. O modelo da traio traiu o Tobit e foi estimado
por dois diferentes mtodos no ano passado? Eis a uma pergunta que no desperta a
menor vontade de rir, no ? Pelo menos voc j sabe como estimar os modelos tobit e
Poisson no R.

7.4. As decises do Banco Central e nossa vida


Uma das perguntas mais interessantes em termos de anlise de conjuntura
econmica , no contexto da poltica monetria, tentar prever o que o Banco Central far
com a taxa de juros SELIC34. Sabidamente, o volume de informaes envolvido nesta
anlise considervel. Entretanto, com um pouco de Econometria, podemos tentar uma
resposta que envolva probabilidades acerca das aes do Banco Central.

Nesta seo, ilustro o trabalho de alguns anos de experincia didtico-pedaggica na faculdade com o
grupo de alunos denominado Nepom (Ncleo de Estudos de Poltica Monetria). Juntamente com o ento
aluno Pedro H.C.G. SantAnna (campeo do Econometric Game em sua edio de 2013 e, atualmente, professor
da Vanderbilt University), comeamos a experincia do extinto Nepom no incio de 2008. O modelo
apresentado abaixo , basicamente, a verso ampliada, ao longo dos anos, por vrios outros alunos, do
modelo criado por Pedro (vale lembrar alguns nomes aqui. Primeiro, o criador do modelo, Pedro H.C. G.
SantAnna. Alm dele, correndo o risco de estar me esquecendo de alguns alunos: Luiz Andr B. Miranda,
Jssica Dutra, Lucas Farias Lima, Raphael Molina, Leonardo Oliveira e Thomaz Lino Amorim. Este exemplo ,
de certa forma, o produto de seu trabalho. Para maiores detalhes sobre o que foi o Nepom, ver
http://nepom.wordpress.com. Tenho c comigo um texto sobre esta experincia que nunca consigo terminar.
Caso eu desaparea da face da Terra nos prximos minutos, pode ser interessante deixar isto registrado.
34

83

Shikida, Fernandez (2016)

Neste exemplo, ilustramos um dos modelos utilizado pelo Nepom em suas


apresentaes em nossa faculdade. O modelo tem como varivel dependente as categorias
de ao do Banco Central. Especificamente, a varivel categoriza as diversas decises do
Copom em termos da taxa Selic. A base de dados uma srie de tempo irregular, iniciandose em 2001. Primeiramente carregamos os dados e verificando as primeiras observaes.

Renomeando os dados, obtemos nomes mais compactos.

Repare que as decises do Copom foram convertidas em uma varivel ordenada.


Desta forma, por exemplo, 0 significa que o Copom no alterou a taxa. Caso tenha
ocorrido um aumento de 0.25 pontos percentuais (p.p.), ento a varivel assume valor 1.
Definimos aumentos de 0.25 em 0.25 pontos (e quedas de forma anloga). O perodo de
anlise se inicia em 2001.
Entretanto, algum poderia querer criar as categorias dentro do R. Neste caso, o
comando seria:
novacategoria<-factor(nepom$decisoes_copom)
Neste caso, as categorias sero criadas a partir dos dados originais e, diferentemente
do caso anterior, no qual construmos os extremos das probabilidades agrupando alguns
pontos, neste temos treze categorias, ilustradas no histograma a seguir.

84

Shikida, Fernandez (2016)

As categorias so:

Este um exemplo de um modelo no qual a varivel dependente representa


respostas ordinais. Uma forma de se estimar um modelo como este por meio de um probit
ordenado. Considere as seguintes variveis independentes sob a tica de um Banco
Central que segue um sistema de metas de inflao a deciso do Copom no perodo
anterior, a diferena entre a inflao e a meta de inflao (o centro da meta, no caso do
exemplo) e o hiato do produto.
Para se estimar um probit ordenado pode-se usar o pacote MASS.

85

Shikida, Fernandez (2016)

As probabilidades podem ser estimadas por meio do comando predict.


Phat_nepom_polr_ex2

<- predict(nepom_polr_ex2, type="probs")

Neste exemplo, temos as seguintes probabilidades para a ltima observao da


amostra (a reunio de 16/01/2013:

Ao sobre a Taxa Selic (em


p.p.)
Cai 2.5
Cai 2
Cai -1.5
Cai 1
Cai 0.75
Cai 0.50
Cai 0.25
No se altera
Sobe 0.25
Sobe 0.50
Sobe 0.75
Sobe 1
Sobe 3

Probabilidade (%)
0.00
0.00
0.01
0.29
0.96
9.08
8.08
47.41
9.47
18.14
5.05
1.32
0.18
86

Shikida, Fernandez (2016)

Uma vez que tenhamos as previses para os hiatos, possvel fazer a previso um
passo a frente e, assim, tentar verificar as probabilidades das aes do Copom nestes
cenrios. Obviamente, o modelo acima poderia ser modificado, por exemplo, em sua
categorizao, ou mesmo na especificao, j que, por exemplo, imagina-se que a deciso
do Copom sobre a taxa SELIC incorpore alguma varivel indicadora de desempenho futuro.
Este tipo de exerccio bem interessante, notadamente para voc que curte estudar
poltica monetria e discutir com colegas da faculdade, sejam eles economista ou no 35.

7.5. Vamos dividir o Estado do Par?


Ok, voc j se deparou com diversas especificaes para a varivel dependente de
uma regresso. Agora, o que fazer quando esta expressa apenas em forma de percentual
como, por exemplo, o percentual de votos em uma urna?
Pensemos em um exemplo que une motivos econmicos e polticos. No final do ano
de 2011, a populao do Par foi s urnas decidir se o estado continuaria sendo o mesmo ou
se seria dividido em trs: Par, Carajs e Tapajs. Este um problema que se enquadra
exatamente no escopo desta seo. O modelo mais adequado, neste caso, a regresso beta
que, no R, implementada pelo pacote betareg36.
Como dito acima, quando a varivel dependente uma proporo, o modelo
adequado a regresso beta37. Neste exemplo, a varivel dependente justamente a
proporo de votos (resultado da votao) em cada municpio do Par. Quanto s variveis
independentes, elas so: o logaritmo da rea de cada municpio em 2010, o logaritmo do
PIB municipal de 2009, o logaritmo do PIB per capita por municpio de 2009, a distncia do
municpio para a capital, ndice FIRJAN de Desenvolvimento Municipal (IFDM) de 2009 e o
ndice FIRJAN de Gesto Fiscal (IFGF) de 2009, uma dummy para os municpios que fariam
parte de Carajs e outra para os municpios que fariam parte de Tapajs (sendo 1 para os
que fariam parte da regio e 0 para os que fariam parte de outra)38.

Obviamente, o modelo acima bem simples e sujeito a diversas crticas (como qualquer modelo
economtrico ou de concurso de Miss). Destaco, por exemplo, dois problemas sempre apontados por vrios
colegas: (a) a ausncia de uma varivel de expectativa forward looking e (b) a ausncia de algum termo capaz
de captar mudanas radicais na poltica monetria (como a politizao do Banco Central em detrimento do
sistema de metas).
36 Fernanda Faria, uma ex-aluna, decidiu explorar este tema e seu trabalho resultou em Shikida, Faria e Araujo
Jr (2014) (http://portalrevistas.ucb.br/index.php/EALR/article/view/5%20EALR%201). Esta seo baseia-se
neste artigo.
37 Para detalhes sobre a regresso beta, ver, por exemplo, Cribari-Neto & Zeileis (2009).
38 As dummies para Carajs e Tapajs foram adicionadas ao modelo para avaliar a influncia estatstica do
pertencimento do municpios regio que pleiteia tornar-se novo estado. Espera-se que coeficientes
estimados das dummies sejam positivos. Para Carajs a dummy foi denominada dum_car e para Tapajs
dum_tap.
35

87

Shikida, Fernandez (2016)

Primeiramente, carrega-se o pacote betareg e, em seguida, so estimadas algumas


especificaes. Vejamos os comandos para estimar uma delas39.
paracar31<-carajsim~ifdm+ifgf+lpib+lpib_pcap+larea+dist_cap+dum_car+dum_tap
paracar31_logit<-betareg(paracar31,data=fer,type="BR")
summary(paracar31_logit)
O comando na primeira linha especifica a regresso. A segunda linha estima a
regresso beta com a famlia logstica, utilizando a base de dados fer, na qual esto as
variveis citadas. A estimao feita com reduo de vis (bias reduction, BR). Finalmente, a
visualizao dos resultados obtida com o comando summary().

Repare que um resultado adicional a estimao do coeficiente (phi). Valores


elevados do mesmo indicam baixa disperso da varivel dependente. A ocorrncia de
observaes influentes e outliers pode afetar a estimao. Assim, deve-se analisar os resduos
da regresso estimada e, se necessrio, reestimar o modelo sem estas observaes. O
comando plot() retorna vrios testes de diagnstico de resduos como a distncia de Cook,
por exemplo. Desta forma, o passo seguinte seria reestimar a especificao, retirando tais
observaes.

Nesta parte do script voc vai se deparar com alguns ajustes prvios na base de dados. Para nos poupar
tempo, apresento apenas o resultado final.
39

88

Shikida, Fernandez (2016)

Mas vale comentar alguns dos resultados. Vejamos as trs ltimas: dist_cap, dum_car,
dum_tap. A primeira a distncia do municpio capital do Par. O sinal positivo, embora
baixo, fortemente significativo, estatisticamente falando, o que indica um impacto
positivo na probabilidade de se votar pela emancipao do, ento, estado de Carajs.
As duas outras variveis so dummies para os municpios que estariam,
respectivamente, nos potenciais estados de Carajs e Tapajs. O efeito positivo verificado
em ambos os coeficientes, supondo que seja realmente digno de anlise (e que eventuais
ajustes do modelo no alterem este resultado) parece indicar uma espcie de efeito
solidrio entre as populaes envolvidas no processo de criao dos estados40.

Lembra, de certa forma, o famoso logrolling (ou comrcio de votos), exemplo clssico em livros-texto de
Public Choice.
40

89

Shikida, Fernandez (2016)

8. Econometria de Sries de Tempo em R (Parte I)


O estudo de dados no domnio do tempo um dos mais interessantes e difceis da
Econometria moderno. Nestas duas prximas sees veremos algumas abordagens
tradicionalmente usadas em dados que se situam no domnio do tempo.
Antes de mais nada, contudo, vamos tratar de um problema muito comum para o
usurio do R: a questo de como trabalhar com sries de tempo. Primeiramente, sabemos
que sries de tempo podem ocorrer em intervalos regulares (e.g., dirios, semanais, mensais,
trimestrais, semestrais, anuais, etc) e irregulares. O formato padro do R para dados no
tempo regulares o formato ts. Para dados irregulares ou de elevada frequncia (e.g.
dirios, semanais, etc), existe o pacote zoo41.
Veja o que acontece, por exemplo, com esta base de dados de taxas de cmbio dirias.

Note que os dados so dirios e, claro, no existem valores para sbados e domingos.
Algum poderia querer usar o comando ts, mas o mesmo s funciona, como dito, para
intervalos regulares. A sada, neste caso, usar o formato zoo. Veja como a base pode ser
lida neste caso.

A aplicao simples do comando plot nos d o grfico da srie.

41

Vale a pena consultar as documentaes do zoo: https://cran.r-project.org/web/packages/zoo/index.html.

90

Shikida, Fernandez (2016)

Outro formato que utilizado na comunidade R o das sries de tempo em formato


xts, do pacote homnimo42. Aparentemente, a pretenso que este formato seja tal que se
possa trabalhar com todas as sries de tempo de formato zoo ou ts.
Finalmente, o formato mais popular para dados de frequncia mensal, trimestral ou
anual, ts, cuja sintaxe razoavelmente simples. Vejamos o caso do ndice da taxa de
cmbio real efetivo calculado pelo BIS. Os dados so mensais e seguem o formato ilustrado
abaixo. Note que, para a China, por exemplo, o cdigo da varivel RBCN.

Pode-se marcar a planilha a partir da clula B5, copiar seu contedo e...

42

Para detalhes, ver: https://cran.r-project.org/web/packages/xts/vignettes/xts.pdf.

91

Shikida, Fernandez (2016)

Repare que o primeiro comando cola a rea copiada da planilha a partir da rea de
transferncia (clipboard) para o R. O segundo comando serve apenas para uma conferncia
superficial. Note que o R no atribuiu s colunas qualquer propriedade associadas ao
tempo. Sabemos, contudo, da figura anterior, que as sries comeam em 1994. Vamos usar
apenas a srie da China.

O comando informa o incio da srie e sua frequncia (mensal = 12, trimestral = 4,


anual = 1, etc). Objetos ts como este podem ser trabalhados sob diferentes janelas de tempo.
Por exemplo, suponha que se quisesse trabalhar com esta srie apenas no perodo de
jan/2009 at dez/2012. O comando window() pode ser aplicado aqui. Digamos que eu
queira salvar a nova srie. Ento, a sintaxe seria: novo_nome <-window(china, start = c(2009,
1), end = c(2012,12)). No difcil perceber que boa parte dos dados macroeconmicos pode
ser tratada como objeto ts e que dados financeiros geralmente so tratados como zoo ou xts43.

8.1. fcil assim fazer a previso da produo industrial brasileira?


Eis a uma pergunta com uma resposta direta: no, no fcil. Para entender o
porqu, lembre-se do problema das tendncias na seo que tratou da funo consumo. O
leitor j familiarizado com a literatura sabe que um dos problemas mais estudados o da
no-estacionaridade das sries. No R, este problema pode ser trabalhado com vrios
pacotes e veremos um pouco sobre isto adiante. Aps importar os dados, transformarmos a
srie em um objeto de srie de tempo.

Veja esta comparao entre objetos zoo e xts: http://blog.revolutionanalytics.com/2014/01/quantitativefinance-applications-in-r-plotting-xts-time-series.html.


43

92

Shikida, Fernandez (2016)

Como sempre, bom visualizar o grfico de uma srie de dados. Em nosso caso,
temos o ndice da produo industrial brasileira (IBGE) (sem a aplicao prvia de qualquer
mtodo de dessazonalizao). Iniciamos com o grfico da mesma, em escala logaritmica.

Produo Industrial

No pacote bsico do R, stats, temos o comando stl que serve para decompor a srie
de tempo em componentes sazonais, tendncia e componente irregular. Vejamos como
nossa srie se apresenta em ambas as decomposies.

93

Shikida, Fernandez (2016)

Produo Industrial Decomposio via Loess smothing

Produo Industrial Decomposio Clssica

Como se v, no h grande diferena nos resultados da decomposio, seja por um


mtodo, seja pelo outro.

94

Shikida, Fernandez (2016)

Um outro resumo da srie pode ser obtido pelo comando tsdisplay do pacote
forecast44.

A metodologia Box-Jenkins exige uma anlise detalhada da srie, partindo dos


grficos e do padro dos correlogramas. Para se estimar modelos SARIMA em R
necessrio observar, inicialmente, os correlogramas das sries. Como apontado por alguns
autores, os correlogramas do R apresentam a desconfortvel propriedade de apresentar
uma correlao (unitria) na defasagem zero. Sabemos que isto verdade, mas usualmente,
no assim que correlogramas so apresentados. Os pacotes mais teis, neste caso, so a
forecast e astsa.

Pode-se utilizar os comandos Acf( ) e Pacf( ) da biblioteca astsa. At a verso atual (3.2.5), os comandos acf( )
e pacf ( ) do pacote bsico stats apresentam o desconfortvel problema de visualizao de apresentar uma
correlao no ponto de defasagem zero...
44

95

Shikida, Fernandez (2016)

Faremos uso do pacote forecast para estimar um SARIMA para a produo industrial.
O leitor poderia querer usar o comando arima, do pacote bsico do R, stats. Ocorre que este
comando gera problemas de interpretao na estimao do intercepto de alguns modelos.
Para maiores detalhes, ver Shumway & Stoffer (2011)45.
Desta forma, o comando que utilizaremos o sarima (lembre-se: do pacote forecast)46.
Eis o primeiro modelo, um SARIMA (2,1,1) x (2,0,2).

Vejamos como fazer a previso dois passos frente.


O problema no exclusivo do R, mas aparece em sadas de outros programas como o Eviews e o Gretl e
diz respeito ao problema da interpretao do intercepto em modelos ARIMA. Embora no haja maiores
consequncias para os outros parmetros estimados, caso o seu objetivo seja estimar modelos deste tipo para
previso, ento este um problema relevante.
46 O autor do pacote forecast, Rob Hyndman, tem vrias dicas boas para o trabalho com sries de tempo em R.
Confira mais a partir daqui: http://robjhyndman.com/.
45

96

Shikida, Fernandez (2016)

Eis uma forma alternativa de se obter o mesmo modelo. Usamos o pacote astsa e o
comando Arima (no confundir com o comando arima).

97

Shikida, Fernandez (2016)

Repare que aproveitei para obter tambm as medidas de acurcia para a previso,
teis para fins de comparao entre modelos. Um detalhe: o comando accuracy do pacote
forecast, mas eu o apliquei ao SARIMA estimado pelo comando Arima do pacote astsa. Esta
flexibilidade bem til em alguns casos, no acha?
Voltando s medidas de acurcia, voc provavelmente j as viu mas caso no se
lembre, independentemente de sua escala de medida, a leitura trivial: modelos com
menores erros de previso, sob qualquer escala de medida escolhida, possuem maior
acurcia. Logo, em ME, RMSE, MAE, MPE, MAPE ou MASE, queremos sempre o menor
valor possvel, comparado correspondente medida do(s) modelo(s) concorrente(s).
Vamos estimar um outro modelo, que chamaremos de fit2, que ser um SARIMA
(3,1,0)x(1,0,1). Vamos us-lo para ilustrar o teste de Diebold-Mariano (e voc mesmo pode
checar as medidas de acurcia). No pacote forecast, este teste executado facilmente.

98

Shikida, Fernandez (2016)

A hiptese nula a de que ambos os modelos tm a mesma acurcia preditiva. O pvalor indica uma forte evidncia de que esta hiptese no rejeitada. Em outras palavras, o
desempate dos modelos no ser obtido por este teste.
bem provvel que voc esteja se perguntando sobre um aspecto central do estudo
de sries de tempo na abordagem ARIMA: o nmero de diferenciaes de uma srie. Em
termos modernos, o procedimento envolve, geralmente, o recurso a algum teste de raiz
unitria.
Voltemos ao incio desta anlise. Tnhamos, basicamente, que apresentava um forte
carter sazonal e tambm uma tendncia. Isto significa que possvel que a srie possa ser
diferenciada em seu nvel e tambm em seu nvel sazonal. O pacote forecast nos fornece dois
comandos teis para uma anlise rpida acerca disto: ndiffs e nsdiffs.
O que os comandos nos dizem sobre a srie?

Obviamente, aquele que j teve contato com a Econometria deve estar se


perguntando sobre qual teste foram utilizados. Use ?ndiffs e ?nsdiffs para descobrir que
o default de cada teste , respectivamente, o KPSS e o Osborn-Chui-Smith-Birchenhall47.
Finalmente, na abordagem ARIMA, um comando til do pacote forecast o
auto.arima. No se deve confiar cegamente em algoritmos automticos, mas divertido
comparar o que fazemos com um modelo e o que um algoritmo automtico faz (no caso , o
melhor modelo estimado pelo comando foi um SARIMA (3,1,3)x(1,0,0)).
A produo industrial poderia ser modelada de outras formas. O leitor convidado
a verificar, por exemplo, as possibilidades no pacote forecast. Tambm recomendvel
analisar outros tipos de modelos como os apresentados, por exemplo, em Hyndman et al
(2008). Finalmente, a famosa marolinha, um aspecto to comentado na imprensa, poderia

47

Outra opo usar os testes de raiz unitria da biblioteca urca. Veremos isso adiante.

99

Shikida, Fernandez (2016)

ser testada por meio de testes de quebra estrutural. No faremos isto aqui, mas a prxima
seo d pistas sobre faz-lo48.

Anexo 4 Modelos ARIMA degenerados


Nesta seo vimos como usar o R para a estimao de modelos (S)ARIMA.
Entretanto, bom lembrar que, em alguns casos, pode ser importante estimar modelos
desta classe degenerados. Suponha que voc obteve uma outra srie, ppi, e estimou o modelo
SARIMA (2,1,1) x (2,0,2) e notou que os termos sazonais autoregressivo e de mdias mveis
de primeira ordem no so estatisticamente significativos a 5%. Ento, poderamos querer
estimar um SARIMA (2,1,1) x (2*, 0, 2*) no qual o * ilustra a ausncia apenas dos termos
de primeira ordem autoregressivos e de mdia mvel.
O comando sarima no faz isso e, assim, temos que usar o arima ou Arima, vistos
previamente. O comando seria assim:
Arima(ppi, order = c(2,1,0),seasonal=list(order=c(2,0,2)),include.constant=TRUE,
fixed = c(NA,NA, NA, 0,NA, 0, NA), transform.pars = FALSE)
Repare em fixed = c(NA,NA, NA, 0,NA, 0, NA). Ele nos diz que o programa no deve (os
dois primeiros NA) colocar restries na ordem p da parte no-sazonal do modelo. Em
seguida, ele restringe P = 1 a zero, mas permite o termo autoregressivo sazonal de segunda
ordem (os 0 e NA seguintes). A mesma coisa para q = 1 e q = 2 (os seguintes 0 e
NA). Finalmente, o ltimo 0 indica que no se deve restringir o drift49.

Anexo 5 Tendncias, dummies sazonais e algumas dicas bsicas


Um outro jeito de se tratar a sazonalidade por meio de dummies sazonais. Desta
forma, cria-las, no R, pode ser um bocado trabalhoso. Entretanto, existem atalhos. Por
exemplo, no pacote forecast, podemos usar a frequncia da varivel CA para criar
dummies sazonais.
library(forecast)
SEASON <- ts(seasonaldummy(CA), start = start(CA),frequency = frequency(CA))
Os dados so mensais e, assim, so onze dummies (excluindo Dezembro). Esta uma
forma rpida e simples de se criar dummies no R, quando o estudo envolve amostras de
dados de sries de tempo.
Outras dicas teis dizem respeito a como criar uma tendncia determinista e como
tranform-la em uma srie de tempo. J vimos anteriormente como criar a srie de
Uma nota rpida, mas necessria. Suponha que se quisesse trabalhar com a produo industrial apenas no
perodo de jan/2009 at dez/2012. Poderamos usar o comando window(), adequado para trabalhar com subamostras em sries de tempo. Eis a sintaxe: novo_nome <-window(log(prod), start = c(2009, 1), end = c(2012,12)).
49 A convergncia deste tipo de algoritmo, contudo, nem sempre ocorre.
48

100

Shikida, Fernandez (2016)

tendncia. Entretanto, para transform-la em srie de tempo basta fazer como na leitura de
dados como sries de tempo. Assim, por exemplo, uma tendncia como a srie trend pode
ser facilmente criada como se v a seguir.
trend<-seq(1:349)
Para transform-la em srie de tempo:
tendencia<-ts(trend, start=c(1985), freq=12)
Implementar uma regresso com estas variveis bem simples. Por exemplo,
fazendo uso do pacote dynlm, obtemos:
dynlm(Imp_US~Yen_Dolar+tendencia+SEASON))
O restante do trabalho trivial.

8.2. A funo consumo keynesiana estvel para o Brasil? (O Segundo Ato)


A pergunta muito pretenciosa, mas serve para introduzirmos alguns testes de
quebra estrutural. Respectivamente, o teste CUSUM e o sup_F. O procedimento estimar a
regresso e fazer o teste. Nesta seo aproveitamos para alterar nossa base de dados:
usaremos dados da famosa Penn World Tables. Existem dois pacotes em R para estas bases:
pwt e pwt8 sendo que o ltimo inclui as atualizaes mais recentes da base: 8.0 e 8.1. Devese construir a srie do consumo, isolar os dados do Brasil e, finalmente informar ao R que o
consumo e o PIB so sries de tempo. Isto feito nos comandos abaixo.

Em seguida, estima-se a funo consumo keynesiana.

101

Shikida, Fernandez (2016)

Percebemos que a propenso marginal a consumir, nesta especificao, de


aproximadamente 0.6. A questo se esta funo estvel no sentido de que os
parmetros estimados dentre os quais a propenso marginal a consumir claramente a
que mais nos interessa constante ao longo do perodo. Como sempre, vamos aos testes.
O pacote utilizado strucchange. A hiptese nula de qualquer um dos testes a de que no
h quebra estruturais. Vejamos o primeiro teste.

O resultado no to animador e, assim, vale a pena ter uma ideia visual do teste.
Para tanto, basta usar plot(consbr_keyn_ocus). O grfico mostra que no existem quebras (a(s)
mesma(s) ocorreria(m) se o processo da flutuao ultrapassasse(m) alguma das fronteiras
(inferior ou superior).

102

Shikida, Fernandez (2016)

O segundo teste, o teste do sup F, abaixo ilustrado, mostra que deve existir uma
quebra estrutural na srie.

Como destacam Kleiber & Zeileis (2008), no existe um teste de quebra estrutural
superior a outro. Assim, o importante estudar o contexto histrico da srie. Como ltimo
exemplo, vamos aplicar o teste de quebras endgenas de Bai- Perron nesta regresso.

103

Shikida, Fernandez (2016)

Vejamos o que diz a sada do teste.

Quais seriam os segmentos e quais seriam as propenses marginais a consumir


estimadas em cada um deles?

Perceba que a propenso marginal a consumir oscila um bocado e, claro,


importante lembrar que alguns segmentos so muito pequenos como os dois
intermedirios. Vejamos como fica o grfico com as quebras para uma visualizao melhor.

104

Shikida, Fernandez (2016)

Claro, a discusso sobre a estabilidade da funo consumo no termina aqui e voc


poderia continuar o exerccio escolhendo outros pases ou formas funcionais para a funo
consumo.
No exemplo seguinte, mostramos como realizar um teste de quebra estrutural em
uma nica srie, em homenagem Histria Econmica do Brasil.

8.3. Rui Barbosa importa?


Uma famosa discusso em histria econmica brasileira diz respeito ao Encilhamento
e ao seu criador, o famoso Rui Barbosa. No item anterior, vimos como fazer alguns testes
de quebra estrutural em uma regresso. Neste item, vemos como fazer o teste em uma srie.
Basicamente, o processo o mesmo s que, ao invs de se fazer uma regresso mltipla, a
srie que se deseja estudar regredida contra uma constante.
Considere, assim, os dados de Calgeras (1960)50 para a taxa de cmbio (libra por
mil-ris) abaixo reproduzido.

50

Edio original de 1910.

105

Shikida, Fernandez (2016)

Faamos apenas o teste de Bai-Perron. Usamos o pacote strucchange aqui. Os


comandos e o grfico pertinente so:

Com cinco quebras temos:

Com os seguintes perodos:


106

Shikida, Fernandez (2016)

Shikida & Cortes (2013) buscaram explicar as quebras acima e voc pode consultar o
texto para mais detalhes sobre o Encilhamento e quebras estruturais. Quanto aos aspectos
economtricos, lembre-se que o trade-off, neste caso, sobre o critrio de quebra
relativamente o consenso dos historiadores. No h motivo para se escolher um sobre o
outro, mas uma combinao convexa de ambos uma boa forma de se comear uma anlise
economtrica (no caso, cliomtrica)51.

A Cliometria a aplicao da econometria a problemas de histria econmica. Vrios artigos cliomtricos


tm sido publicados no Journal of Economic History e, claro, no Cliometrica.
51

107

Shikida, Fernandez (2016)

9. Econometria de Sries de Tempo em R (Parte II)


Nesta seo desta apostila j estamos todos cansados deste minicurso, no? tratamos dos problemas sistmicos de variveis econmicas em um contexto dinmico. Na
verdade, queremos fazer uma anlise multivariada. Por exemplo, quem no se lembra de
ter estudado os mtodos de equao simultnea? Naquele contexto, fica claro que a
estimao de uma funo consumo no isenta de vis (dado o aspecto simultneo das
variveis envolvidas em um ambiente macroeconmico)52. Embora a simultaneidade j
tenha sido brevemente tratada em tpico anterior, no contexto de sries de tempo pode ser
mais interessante pensar em sistemas de equaes autoregressivas, ou seja, em vetores
autoregressivos (VAR).
Comeamos ento com um exemplo quase a-terico,

9.1. O leite nosso de cada dia


Do Centro de Estudos Avanados em Economia Aplicada (ESALQ/USP) obtivemos
algumas sries de preos para alguns derivados do leite, quais sejam, leite cru integral, leite
pasteurizado, leite UHT, queijo prato, leite em p, manteiga e queijo muarela53. Como as
mesmas possuem alguns problemas de compatibilidade (ausncia irregular de dados),
optamos por trabalhar com o leite pasteurizado, cujo preo mdio encontrado para Gois,
Minas Gerais, Paran, Rio Grande do Sul e So Paulo.
De posse destes dados, faremos uma anlise de cointegrao. A hiptese bsica que
estas sries devem ter uma relao de longo prazo. O leitor interessado pode consultar os
livros de Econometria de Sries de Tempo para maiores detalhes. Inicialmente, carregamos
os dados e transformamos as variveis em sries de tempo.

Johnston (1991), cap.11 uma boa exposio sobre o tema.


Originalmente em: http://cepea.esalq.usp.br/leite/?page=160. Tratam-se de preos nominais, isto , no
apliquei qualquer deflator nestes dados. O exerccio interessante envolveria a deflao por ndices de preos
regionais, mas isto fica para algum leitor mais interessado no tema (eu mesmo no aprecio leite...).
52
53

108

Shikida, Fernandez (2016)

Vale a pena visualizar as sries.

Podemos notar que as sries parecem apresentar comportamento cclico (sazonal)


com tendncia. Alm disso, observamos uma mudana perceptvel no nvel mdio dos
preos de todas elas por volta do ano de 2007. A decomposio das sries (no mostrada)
mostra um claro padro sazonal (ou cclico) e uma tendncia que parece mudar de
inclinao mais de uma vez. Uma hiptese plausvel a de que cada uma das mdias de
preos dos cinco estados sejam tendncias estocsticas.
Sempre que nos deparamos com visualizaes aparentes de tendncias, a pergunta
que salta aos olhos : que tipo de tendncia estamos observando na srie? 54 Trata-se de uma
tendncia determinista ou estocstica? Para responder esta pergunta, utilizamos os testes
de raiz unitria. No R, possvel fazer vrios deles. O pacote utilizado aqui o urca55.
Assim, vejamos como fazer alguns testes de raiz unitria nas sries. Como primeiro
exemplo, vejamos a mdia do preo em Minas Gerais e o tradicional teste ADF.
summary(ur.df(lpmg, type = c("trend"), lags = 10,selectlags = c("BIC")))
54
55

Tentei explicar a diferena entre os tipos de tendncias com uma interpretao macroeconmica aqui.
Mas veja tambm o pacote fUnitRoots.

109

Shikida, Fernandez (2016)

No commando, o trend a opo para que o teste inclua tendncia e drift. O


procedimento se inicia com dez defasagens e seleciona o nmero ideal conforme o critrio
BIC.

A sada bem completa. Repare nas informaes abaixo das estatsticas da regresso.
Temos trs estatsticas, tau3 (-3.3775), phi2 (4.0215) e phi3 (5.7573) que podem ser
comparados com os valores crticos da tabela para 1, 5 ou 10%. Cada estatstica diz respeito
a uma modalidade do teste ADF no que diz respeito incluso de termos deterministas.
Em resumo, o que os resultados acima nos dizem so equivalentes tabela abaixo com a
observao de que tau3 equivale a .
Percebe-se que, em qualquer uma das trs especificaes possveis da equao
estimada (correspondente ao primeiro modelo da tabela abaixo), no rejeitamos a existncia
de raiz unitria a 1 ou a 5%. bom lembrar que, conforme Gujarati & Porter (2011), a
equao de teste pode ser desconsiderada se o coeficiente da varivel em nvel defasada for
positivo, pois isto implicaria em uma tendncia explosiva. Em nosso caso, o coeficiente
negativo (-0.1451), o que no nos causa problemas.
Pode-se proceder ao restante dos testes. O comando seria, para cada linha da tabela
anterior: ur.df(lpmg, type = c("drift"), lags = 10,selectlags = c("BIC")) geraria o modelo com
drift e, finalmente, ur.df(lpmg, type = c("none"), lags = 10,selectlags = c("BIC")) geraria a
ltima equao de teste.
Sumrio dos testes de Dickey-Fuller
110

Shikida, Fernandez (2016)

Modelo

Hiptese Nula Estatstica

de

Teste

yt Tt 1yt 1 k y t k t

( - 1) = 0

( - 1) = = 0

( - 1) = = 2
=0

yt 1yt 1 k y t k t

yt 1yt 1 k y t k t

( - 1) = 0

( - 1) = = 0

( - 1) = 0

Fonte: Enders (2004). Obs: A distribuio dos testes unicaudal.


Podemos fazer o exerccio para as outras sries. Em homenagem aos patrocinadores
deste minicurso, trabalhemos com o preo mdio no RS. Podemos fazer outros testes de
raiz unitria para esta srie, alm, claro, do ADF. Sem reportar os resultados, os comandos
so (j com a sada do resumo dos resultados):
summary(ur.df(lprs, type = c("trend"), lags = 10,selectlags = c("BIC")))
summary(ur.ers(lprs, type = c("DF-GLS"), model = c("constant", "trend"),lag.max = 8))
summary(ur.kpss(lprs, type = c("tau"), lags = c("long"),use.lag = NULL))
summary(ur.pp(lprs, type = c("Z-alpha"), model = c("trend"),lags = c("long"), use.lag =
NULL))
O leitor pode consultar a documentao do pacote para compreender as opes do
comando. Partiremos do pressuposto, para fins didticos, de que as sries envolvidas
possuem apenas uma raiz unitria56.
Tendo em mente os grficos das sries, pode-se testar se existe raiz unitria na
presena de quebra estrutural. Por exemplo, o teste de Zivot-Andrews para uma quebra
endgena facilmente implementado no mesmo pacote. Usando doze defasagens e
testando a possibilidade de que a quebra possa ocorrer na tendncia e no intercepto, temos

56

Outra opo seria usar o pacote forecast e o comando ndiffs como vimos anteriormente.

111

Shikida, Fernandez (2016)

que apenas a srie de preos para Minas Gerais possui uma provvel quebra na 34
observao. Os comandos e resultados esto a seguir.

Por exemplo, veja o resultado para lpmg, dividido em duas partes.

Com a quebra identificada ao final desta sada na 34 posio, conforme o recorte


abaixo (que tem, note, uma interseo com a figura anterior).

112

Shikida, Fernandez (2016)

Note que a mesma aparece significativa a 5%. Podemos visualizar os grficos dos
testes. Como exemplo, apresento apenas o relativo a Minas Gerais.

Inicialmente, geramos a matriz de dados em logaritmos.


logsleite=ts.intersect(log(lpmg), log(lprs), log(lpsp), log(lppr), log(lpgo))
Por meio do pacote vars, inicialmente, selecionamos o nmero de defasagens do
VAR para a base logsleite, iniciando com um mximo de doze defasagens.

113

Shikida, Fernandez (2016)

Diante da diversidade de resultados, o exerccio prosseguir com duas defasagens. A


sada parcial do teste do mximo autovalor de Johansen encontra-se a seguir (com duas
defasagens e dummies sazonais).

Usando 1% como critrio, analisamos sequencialmente o teste comeando da


hiptese de que no h cointegrao e decidimos por um vetor. A 5%, teramos a evidncia
de que seriam dois vetores.
114

Shikida, Fernandez (2016)

O teste do trao tambm pode ser estimado e encontra-se a seguir e, a 1%, a


evidncia a de que existiriam, no mximo, dois vetores de cointegrao57.

O passo seguinte estimar o VECM com duas relaes de cointegrao. Optei por
seguir com as dummies sazonais (voc as ver como sd1, sd2, ..., sd11 na sada a seguir).

No teste do maior autovalor (mximo autovalor), a hiptese nula a de que existem r relaes de
cointegrao contra a alternativa de que existem r + 1. J no teste do trao, a hiptese nula a de que
existem no mximo r relaes de cointegrao e a alternativa a de que existem no mximo r + 1 relaes
de cointegrao.
57

115

Shikida, Fernandez (2016)

Na parte inferior desta tela, temos os vetores de cointegrao estimados.

Observando o vetor de cointegrao, temos que a mdia do preo do leite


pasteurizado em Minas Gerais, possui uma forte relao negativa com a mdia de So
Paulo. Leitura similar pode ser feita para o segundo vetor. O comando
summary(leite_duas$rlm) nos d as sadas das equaes individuais do VECM com a
significncia dos parmetros estimados. Segundo estes resultados, o preo de Minas Gerais
seria exgeno aos dois vetores de cointegrao. Anlise similar pode ser feita para as
demais equaes.
Testes de diagnstico podem ser feitos sem grandes dificuldades. Para os testes
ARCH e de normalidade (multivariado) 58 , deve-se, em caso de uso do pacote vars,
converter o VECM em um VAR inicialmente. O comando vec2var e os resultados seguem
abaixo.

Conforme destacado por Pfaff (2008), no caso do teste Jarque-Bera multivariado, o resultado dependente
da ordenao das variveis.
58

116

Shikida, Fernandez (2016)

A anlise dos resultados fica por sua conta, ok?


Outro teste importante para a anlise de cointegrao a de estabilidade dos
parmetros. No caso do pacote vars, testes de mudana estrutural s esto disponveis para
vetores autoregressivos sem cointegrao (VAR). Para o caso de VECM, o teste disponvel
o de Ltkepohl, Saikkonen & Trenkler (2004) apud Pfaff (2008), que estima uma quebra
(endgena) na mdia do processo analisado e, em seguida, estima o VECM ajustando os
dados pela quebra. A seguir, apresentamos o resultado deste procedimento. O comando
cajolst().

117

Shikida, Fernandez (2016)

A sada parcial nos mostra um resultado distinto do anterior. Agora, a 1%, teramos
evidncia de quatro relaes de cointegrao.
O teste de exogeneidade fraca pode ser realizado por meio do pacote urca. Por
exemplo, testamos a seguir a exogeneidade fraca dos preos do RS. Inicialmente
fornecemos a matriz das velocidades de ajustamento:

A1 <- matrix( c (1,0,0,0,0, 0,0,1,0,0, 0,0,0,1,0 ,0,0,0,0,1),nrow=5, ncol=4)


Em seguida fazemos o teste:
H41 <-summary (alrtest( z = leite.vecm_tr, A = A1 , r = 2) )
Os resultados, por sua vez, so:

118

Shikida, Fernandez (2016)

O leitor pode verificar que a hiptese nula de exogeneidade fraca em RS no


rejeitada a 0.01 (1%). Em outras palavras, RS deve ser endgeno59.
Os pacotes vars e urca, conjuntamente, possibilitam-nos ainda a estimao de um
VECM estrutural com as correspondentes funes resposta ao impulso e decomposies de
Testes sobre o vetor de cointegrao podem ser feitos por meio do comando blrtest. Outros testes possveis
so com restries conjuntas nas matrizes de ajustamento e dos coeficientes de cointegrao (ablrtest) e com
conhecimento parcial do vetor de cointegrao (bh5lrtest).
59

119

Shikida, Fernandez (2016)

varincia. No prosseguiremos com este exemplo porque seria necessrio conhecer melhor
o mercado de leite para que tivssemos anlises mais elaboradas. O leitor convidado a
aperfeioar esta anlise60.

9.2. Quem veio primeiro: o ovo ou a galinha?


Uma pergunta filosfica interessante e divertida diz respeito a quem veio
primeiro: o ovo ou a galinha. Esta pergunta foi explorada, pela primeira vez, por meio do
teste de causalidade de Granger, por Thurman & Fisher (1988). Recentemente, Shikida,
Araujo Jr & Figueiredo (2011) replicaram a pergunta para o Brasil. Enquanto nos EUA, ovos
precedem galinhas, para o Brasil, haveria bicausalidade.
O tom divertido de ambos os artigos sugere que o uso do R pode transformar o
ltimo tpico destes encontros em algo mais interessante. Nosso objetivo utilizar o pacote
var para testar a causalidade entre ovos e galinhas. Inicialmente, vejamos as sries. Ovos
esto em mil dzias e o nmero de galinhas poedeiras so medidas por cabeas. Os dados
so do IBGE61.

Fazendo uso dos comandos Acf e Pacf (pacote forecast) obtemos os correlogramas das
mesmas.

Voc pode usar tambm o pacote tsDyn para anlises similares a estas. Outro pacote interessante, mas
apenas para o uso com duas variveis, ou seja, com o mecanismo de correo de erros de Engle- Granger o
egcm.
61 http://www.sidra.ibge.gov.br/bda/pecua/default.asp?z=t&o=24&i=P .
60

120

Shikida, Fernandez (2016)

Series: ovo

0.6
0.4
-0.2

-0.2

0.0

0.2

Partial ACF

0.4
0.0

0.2

ACF

0.6

0.8

0.8

1.0

1.0

Series: ovo

1 2 3 4 5 6 7 8 9

11

13

15

17

19

1 2 3 4 5 6 7 8 9

Lag

11

13

15

17

19

Lag

Series: galinha

0.4

Partial ACF

-0.2

-0.2

0.0

0.0

0.2

0.4
0.2

ACF

0.6

0.6

0.8

0.8

1.0

1.0

Series: galinha

1 2 3 4 5 6 7 8 9

11
Lag

13

15

17

19

1 2 3 4 5 6 7 8 9

11

13

15

17

19

Lag

Antes de prosseguirmos, transformamos ambas as sries em logaritmos. Poderamos


fazer alguns testes de raiz unitria, j vistos anteriormente, mas vamos recorrer, novamente,
aos comandos ndiffs e nsdiffs do mesmo pacote, afim de resumir nosso trabalho em termos
do nmero de diferenciaes para estacionarizar as sries. Os resultados apontam para
apenas uma diferenciao.

Criamos ento a matriz granger (o comando : granger=ts.intersect(lovo, lgalinha)).


Antes de testar qualquer causalidade, vejamos o nmero de defasagens para as sries em
nvel.

121

Shikida, Fernandez (2016)

Diante disso, assumimos que o VAR em diferenas deve ter trs defasagens. Eis o
comando:
granger1<-VAR(dgranger, p=3,type="both")
Vejamos os resultados.

122

Shikida, Fernandez (2016)

Antes de prosseguirmos com concluses acerca da causalidade, necessrio verificar


alguns testes. Usando o comando plot(granger1) obtemos os resduos.

123

Shikida, Fernandez (2016)

Como j vimos os testes de diagnstico e de estabilidade, deixarei por sua conta


reproduzir o exerccio.
A leitura dos resultados do VAR no parece nos dar resultados muito promissores
em termos de causalidade (possivelmente no h causalidade em qualquer direo). Uma
outra forma de se fazer o teste usar o comando grangertest do pacote lmtest, que retorna,
entretanto, um resultado bem menos detalhado. Para efeitos de comparao, a vai.

124

Shikida, Fernandez (2016)

A hiptese nula, no primeiro modelo, a de que galinhas no Granger-causam ovos,


o que rejeitado a 1%. Para a hiptese de que ovos no Granger-causam galinhas, a 1%, no
rejeitada. Ou seja, a 1%, galinhas causam ovos, e no o contrrio. Entretanto, a 10%,
teramos bicausalidade.

Anexo 6 Ovos e Galinhas e a causalidade de Granger no pacote vars


No pacote vars, o teste pode ser feito pelo comando causality. No caso deste exemplo,
como geramos a varivel em diferena de forma indireta, temos que ter cuidado ao indicla. Eis os comandos e as sadas. Repare na grafia da varivel cuja causalidade se pretende
testar.

125

Shikida, Fernandez (2016)

Repare em diff.lgalinha. e diff.lovo. que so as leituras de diff(lgalinha) e


diff(lovo), respectivamente. Repare tambm que, neste comando, pode-se testar a
causalidade instantnea entre variveis. Aparentemente, no se v causalidade de qualquer
espcie nos resultados. Poderamos, no caso do teste de causalidade de Granger, usar um
estimador robusto da matriz de varincia-covarincia. Eis os comandos.

causality(granger1, cause="diff.lovo.", vcov.=vcovHC(granger1))


causality(granger1, cause="diff.lgalinha.", vcov.=vcovHC(granger1))

Especificamente, no caso deste exemplo, as concluses no se alteraram e, portanto,


os resultados no so reportados.
Podemos tambm obter as funes de resposta ao impulso e a decomposio de
varincia do erro de previso do VAR.

126

Shikida, Fernandez (2016)

Orthogonal Impulse Response from diff.lovo.

0.005
-0.005

0.000

diff.lovo.

0.005
0.000
-0.010 -0.005

diff.lgalinha.

0.010

0.015

Orthogonal Impulse Response from diff.lgalinha.

10

xy$x
95 % Bootstrap CI, 100 runs

10

xy$x
95 % Bootstrap CI, 100 runs

Para a decomposio:

0.8
0.4

diff.lgalinha.
diff.lovo.

0.0

Percentage

FEVD for diff.lovo.

10

Horizon

0.8
0.4

diff.lgalinha.
diff.lovo.

0.0

Percentage

FEVD for diff.lgalinha.

10

Horizon

O leitor interessado pode obter mais informaes sobre VAR e VECM estruturais na
bibliografia indicada. Por enquanto, nosso maior interesse ainda o de saber se o ovo ou a
galinha o culpado disto tudo. Esperamos que estas notas tenham ajudado na soluo desta
e de outras questes.

127

Shikida, Fernandez (2016)

10. Salrio, Etnia e Educao: qual a relao? Uma Introduo Econometria


dos Dados em Painel no R (Prof. Rodrigo N. Fernandez)
Salrios e discriminao. Eis a uma mistura explosiva. Este exemplo se baseia em
Vella e Verbeek (1998), com uma amostra de pessoas do sexo masculino (n = 545) que
trabalharam em cada ano de 1980-87. Considere a seguinte equao para o salrio:

log wageit it 1educit 2blackit 3hispanit

4experit 5experit 2 6 marriedit 7unionit cit uit


Podemos observar que na equao do salrio temos variveis como educao, etnia,
experincia e dados sobre o estado civil destes indivduos. Primeiramente carregaremos as
bibliotecas necessrias:
library(foreign)
library(plm)
library(lmtest)
Em seguida especificaremos o nome do arquivo e carregaremos os dados:
arquivo="wagepan.dta"
diretorio="C:/Users/Rodrigo/Desktop/"
setwd(diretorio)
dados = read.dta(file=arquivo,convert.factors=F)
Para utilizarmos a biblioteca plm referente a dados em painel no R precisaremos
transformar nossos dados em um data frame:
n=nrow(dados)
dados.plm=pdata.frame(dados,n/8)
Primeiramente obtemos o nmero de linhas da base de dados com o comando nrow
e em seguida construmos nosso dataframe dividindo o total de linhas da nossa base de
dados pelo nmero de cortes no tempo, ou seja 8 anos de 1980 a 1987. Tambm
utilizaremos o comando attach para usar apenas o nome das variveis de acordo com nossa
base de dados:
attach(dados.plm)

128

Shikida, Fernandez (2016)

O primeiro passo construirmos nossa equao de regresso e a estimarmos por


POLS (mnimos quadrados agrupados):

uniao = dados.plm$union
reg = lwage~educ+black+hisp+exper+expersq+married+uniao

Os comandos acima constroem a equao de regresso, veja que atribumos o nome


unio para a varivel union, pois ela uma funo do R. Veja um exemplo ilustrativo:
x= 1:10
y=10:20
union(x,y)
Neste caso fazemos a unio dos conjuntos x e y. Agora faremos nossa regresso por
POLS:
reg.pols=plm(reg,data=dados.plm,model="pooling")
summary(reg.pols)
Veja que neste caso teremos um painel balanceado, isto , com todas as observaes
(sem lacunas) :

129

Shikida, Fernandez (2016)

O comando summary nos mostra que temos 545 indivduos ao longo de 8 anos o que
nos d um total de 4360 observaes. Alm disso, percebemos que o fato de um indivduo
ser hispnico, em mdia no afeta seu salrio de acordo com este modelo. Adicionalmente
importante destacar as principais diferenas entre os modelos de dados em painel:

Modelos Pooled: A estimao feita assumindo que os so comuns para todos os


indivduos.

Modelos de Primeira Diferena: (PD): A estimao feita eliminando os termos que so


constantes ao longo do tempo.

Modelos com efeitos fixos (EF): A estimao feita assumindo que a heterogeneidade
dos indivduos. Se capta na parte constante, que diferente de indivduo para indivduo,
captando as diferenas invariantes no tempo.

Modelos com efeitos aleatrios (EA): A

estimao

feita introduzindo a

heterogeneidade dos indivduos no termo de erro. Esse modelo considera a constante


no como um parmetro fixo, mas como um parmetro aleatrio no observvel.

Podemos tambm fazer a mesma regresso usando a funo lm:


reg.lm=plm(reg,data=dados.plm)
summary(reg.lm)

Repare que as diferenas nas estimaes so sutis:

130

Shikida, Fernandez (2016)

Em seguida fazemos um teste de correlao serial:


pwtest(reg.pols)

Aps realizarmos o teste de do efeito individual no observado (correlao serial),


detectamos que a presena do efeito individual no observado, isto , c it na presenta
correlao com uit e desta forma fizemos um teste t de coeficientes usando os erros padres
robustos para este modelo, como segue:
coeftest(reg.pols,vcov=function(reg.pols)
vcovHC(reg.pols,method="arellano",type="HC1",cluster="group"))

131

Shikida, Fernandez (2016)

Usando erros padres robustos as estatsticas t e os p-valores diminuem, black e


expersq so significativas a 1%. O prximo passo realizarmos a estimao com efeitos
fixos e aleatrios. Primeiramente faremos com efeitos aleatrios:
reg.re = plm(reg,data=dados.plm,model="random")
summary(reg.re)

Vejamos nossos resultados na imagem abaixo:

132

Shikida, Fernandez (2016)

As estimativas de RE so bastante prximas quando estimamos POLS com erros


padres robustos, ainda considerando que o efeito aleatrio apresenta erros padres
menores. Agora verificaremos o efeito fixo:
reg.fe = plm(reg,data=dados.plm,model="within")
summary(reg.fe)

Com este modelo eliminamos os termos que so constantes no tempo, incluindo o


termo constante que pertence ao resduo. Ademais, notamos que varivel exper
(experincia) importante, pois conforme a adquirimos a tendncia que nosso salrio
aumente em mdia 11 pontos percentuais. As variveis marriage e union quanto realizamos
estimao por efeitos fixos perdem poder na explicao do salrio, mas continuam sendo
estatisticamente significantes.
Dentro deste contexto, podemos ainda realizar um teste para checarmos qual dentre
os modelos de efeitos fixos e aleatrio se mostra mais adequado para nosso problema.
Podemos realizar o teste de Hausmann de duas formas, sendo que a primeira analisa
individualmente se as variveis possuem alguma variao entre i e t:

wi = plm(reg,data=dados.plm,effect="individual",model="within")
re = plm(reg,data=dados.plm,effect="individual",model="random")
133

Shikida, Fernandez (2016)

phtest(wi,re)
E o modo convencional:
phtest(reg.fe,reg.re)

Fazendo os dois testes, podemos concluir que o modelo de efeitos fixos o mais
adequado para nossa estimao. Apenas para apresentarmos o comando, vamos estimar
este modelo na forma de primeira diferena:
reg.fd = plm(reg,data=dados.plm,model="fd")
summary(reg.fd)
Eis os resultados:

Por fim, calculamos alguns testes de diagnstico para dados em painel:


pooltest(reg.pols,reg.fe)
plmtest(reg.pols,effect="twoways",type="ghm")
134

Shikida, Fernandez (2016)

pbsytest(reg,data=dados.plm)

Em suma, o primeiro comando realiza um teste de Chow que verifica o agrupamento


dos dados. O segundo um teste de multiplicador de Lagrange para efeitos temporais ou
individuais e o ltimo testa a correlao serial dos resduos. Observe que nosso modelo de
efeito fixo, aparentemente est bem ajustado.

135

Shikida, Fernandez (2016)

Bibliografia Parcial
Adkins, L. Using gretl for Principles of Econometrics, 4th edition. (verso 1.041, 01/02/2013,
online).
Arai, M. (2004). A Brief Guide to R for Beginners in Econometrics. (online).
Bollen, K.A. & Jackman, R.W. (1990). Regression Diagnostics: an expository treatment of
outliers and influential cases. In: Fox, John; and Long, J. Scott (eds.); Modern Methods of Data
Analysis (pp. 257-91). Newbury Park, CA: Sage.
Calgeras, P. (1960) [1910] A Poltica Monetria do Brasil. Companhia Editora Nacional, Rio
de Janeiro.
Enders, W. (2004) Applied Econometric Time Series, Wiley & Sons, 2nd edition.
Epple, D. & McCallum, B.T. (2005) Simultaneous Equation Econometrics: The Missing
Example. Economics Inquiry, v. 44, n.2, pp.374-84.
Fox, J. & Weisberg, S. (2011) An R Companion to Applied Regression. SAGE, 2nd edition.
Gujarati, D.N. & Porter, D.C. (2011) Econometria Bsica. McGraw-Hill/Bookman, 5 edio.
Heiss, Florian (2016) Using R for Introductory Econometrics. Disponvel em
http://www.URfIE.net.
Hill, R.C.; Griffiths, W.E. & Lim, G.C. (2011) Principles of Econometrics, 4th edition. John
Wiley & Sons.
Hyndman, R.J.; Koehler, A.B.; Ord, J.K. & Snyder, R.D. (2008) Forecasting with Exponential
Smoothing. Springer-Verlag.
Johnston, J. (1991) Econometric Methods. McGraw-Hill.
Kleiber, C. & Zeileis, A. (2008) Applied Econometrics with R. Springer-Verlag.
Lundholm, M. (2011) Introduction to Rs time series facilities. (online).
Pfaff, B. (2008) Analysis of Integrated and Cointegrated Time Series with R. Springer-Verlag.
Shikida, C.D.; Araujo Jr, A.F. de & Figueiredo, E.A. (2011). Ovos, galinhas: revisitando um
dilema secular a partir de dados brasileiros. Boletim Economia e tecnologia, v. 26, p. 161-168.
Shikida, C.D. & Cortes, G.S. (2013) Early Financial Crises in an Infant Republic: An Empirical
Analysis of the Encilhamento in Brazil (1889-1906). Artigo apresentado no X Congresso da
Associao Brasileira de Pesquisadores em Histria Econmica.
136

Shikida, Fernandez (2016)

Shikida, C.D.; Nogueira Jr., R.P. & Araujo Jr., A.F. de. (2011) Structural Breaks in Exchange
Rate Regimes in Brazil. Economics Bulletin, v.31, n.2, p.1748-1756.
Shikida, C.D.; Araujo Jr., A.F. de & Faria, Fernanda R. F. de. (s.d.) Plebiscito e Criao de
Novos Estados: o caso do Par. (mimeo)
Shumway, R.H. & Stoffer, D.S. (2011) Time Series Analysis and its Applications with R
Examples. Springer-Verlag, 3rd edition.
Stock, J.H. & Watson, M.W. (2010) Introduction to Econometrics. Addison-Wesley, 3rd edition.
Thurman, W.N. & Fisher, M.E. (1988) Chickens, Eggs, and Causality, or Which Came First?
American Journal of Agricultural Economics, v.70, n.2, May/88, pp. 237-8.

137

Potrebbero piacerti anche