Para a galera da 112!

Bom, como vocês podem perceber meu carnaval está sendo muito agitado. Em meio a toda esta loucura, vim rapidamente ao meu quarto e resolvi estudar um pouco de R.

Usando a base de dado do Gujarati, resolvi o exercício do exemplo 17.13 da quarta edição. Se não estiver batendo com o da quinta edição, é o exemplo de causalidade entre oferta de moeda e taxa de juros para dados da economia do Canada. O livro tem o resultado, mas não a rotina/resolução.

Então vamos lá, tenho que ser breve porque a Bruna Marquezine está batendo aqui na porta.

Segue o que está no livro.

Image

Primeira coisa, os dados. Neste link (http://highered.mcgraw-hill.com/sites/0073375772/student_view0/data_sets.html) você pode baixar os dados de todos os exemplos do livro, então, vá lá e o faça.

A tabela do exemplo é a 17.3. Faça os ajustes necessários e deixe a base de dados “no jeito” para ser importada para o R.

Estou usando o RStudio, então, para importar a base de dados, são necessários apenas alguns “cliques”.

No canto superior direito, vá em “Import Dataset, From Text File..”. Vá onde você salvou a base de dados e mande o programa abrir. Pronto, o RStudio abre a base de dados e ainda te mostra como ela veio.

Chamei a minha base de dados de “gdpcanada”. Segue a rotina, os resultados e alguns comentários:

Existem duas variáveis na base de dados: R, que é a taxa de juros e M1 que é a oferta de moeda

Vamos avisar para o R de que essas variáveis estão no tempo.

taxadejuros<-ts(gdpcanada$R, start=c(1979,1), freq=1)

ofertamoeda<-ts(gdpcanada$M1, start=c(1979,1), freq=1)

Feito isso, vamos usar a biblioteca lmteste. Primeiro, instale o pacote:

install.packages(“lmtest”)

Depois, abra o pacote:

 library(lmtest)

Depois de todos estes ajustes, vamos realizar os testes de causalidade que estão no exemplo do livro.

A hipótese nula é de que oferta de moeda não granger-causa taxa de juros e vice versa.

Os primeiros testes foram para verificar se oferta de moeda granger-causa taxa de juros. Primeiro usando um modelo com 2 defasagens, depois com 4, 6 e por último 8, vamos aos resultados:

Ps: O que não estiver em negrito é o comando, o que estiver em negrito são as saídas do R

grangertest(taxadejuros~ofertamoeda, order=2, data=gdpcanada)

Granger causality test

Model 1: taxadejuros ~ Lags(taxadejuros, 1:2) + Lags(ofertamoeda, 1:2)
Model 2: taxadejuros ~ Lags(taxadejuros, 1:2)
Res.Df Df F Pr(>F)
1 33
2 35 -2 3.2234 0.05263 .
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Com duas defasagens, rejeita a hipótese nula de que oferta de moeda não granger-causa taxa de juros.

grangertest(taxadejuros~ofertamoeda, order=4, data=gdpcanada)

Granger causality test

Model 1: taxadejuros ~ Lags(taxadejuros, 1:4) + Lags(ofertamoeda, 1:4)
Model 2: taxadejuros ~ Lags(taxadejuros, 1:4)
Res.Df Df F Pr(>F)
1 27
2 31 -4 2.451 0.07019 .
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Agora, com 4 defasagens, também se rejeita a hipótese nula de que oferta de moeda não granger-causa taxa de juros. O mesmo ocorrerá com o modelo com 6 defasagens, que vem logo a seguir.

grangertest(taxadejuros~ofertamoeda, order=6, data=gdpcanada)

Granger causality test

Model 1: taxadejuros ~ Lags(taxadejuros, 1:6) + Lags(ofertamoeda, 1:6)
Model 2: taxadejuros ~ Lags(taxadejuros, 1:6)
Res.Df Df F Pr(>F)
1 21
2 27 -6 2.7136 0.04127 *

Já com 8 defasagens, não rejeita a hipótese nula de que oferta de moeda não granger-causa taxa de juros.

grangertest(taxadejuros~ofertamoeda, order=8, data=gdpcanada)

Granger causality test

Model 1: taxadejuros ~ Lags(taxadejuros, 1:8) + Lags(ofertamoeda, 1:8)
Model 2: taxadejuros ~ Lags(taxadejuros, 1:8)
Res.Df Df F Pr(>F)
1 15
2 23 -8 1.6285 0.1979

Agora vamos fazer o inverso, verificar se taxa juros granger-causa oferta de moeda. Para economizar tempo já vou avisando, ocorrerá a mesma coisa com o verificado acima. Irá rejeitar a hipótese nula de que taxa de juros não granger-causa oferta de moeda nos modelos com 2, 4 e 6 defasagens mas não irá rejeitar a hipótese de que taxa de juros não granger-causa oferta de moeda no modelo com 8 defasagens. Seguem os códigos e as saídas do R.

grangertest(ofertamoeda~taxadejuros, order=2, data=gdpcanada)

Granger causality test

Model 1: ofertamoeda ~ Lags(ofertamoeda, 1:2) + Lags(taxadejuros, 1:2)
Model 2: ofertamoeda ~ Lags(ofertamoeda, 1:2)
Res.Df Df F Pr(>F)
1 33
2 35 -2 12.927 7.15e-05 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

grangertest(ofertamoeda~taxadejuros, order=4, data=gdpcanada)

Granger causality test

Model 1: ofertamoeda ~ Lags(ofertamoeda, 1:4) + Lags(taxadejuros, 1:4)
Model 2: ofertamoeda ~ Lags(ofertamoeda, 1:4)
Res.Df Df F Pr(>F)
1 27
2 31 -4 5.5933 0.002059 **
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

grangertest(ofertamoeda~taxadejuros, order=6, data=gdpcanada)

Granger causality test

Model 1: ofertamoeda ~ Lags(ofertamoeda, 1:6) + Lags(taxadejuros, 1:6)
Model 2: ofertamoeda ~ Lags(ofertamoeda, 1:6)
Res.Df Df F Pr(>F)
1 21
2 27 -6 3.5163 0.01444 *
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

grangertest(ofertamoeda~taxadejuros, order=8, data=gdpcanada)

Granger causality test

Model 1: ofertamoeda ~ Lags(ofertamoeda, 1:8) + Lags(taxadejuros, 1:8)
Model 2: ofertamoeda ~ Lags(ofertamoeda, 1:8)
Res.Df Df F Pr(>F)
1 15
2 23 -8 1.4037 0.2719

Estamos fazendo o teste de causalidade a um nível de significância de 5% e, para cada modelo, há um F crítico diferente. Resolvi basicamente olhando para o P valor de cada teste, que nada mais é do que a probabilidade de não rejeitar a hipótese nula.

Qual a conclusão? De que para os modelos com 2, 4 e 6 defasagens há dupla causalidade entre taxa de juros e oferta de moeda para os dados da economia do Canada.

Gostou? De certa forma facilitei um pouco a sua vida? Ok, deixo você pagar um café duplo para mim na lanchonete do Geraldo. Barras de ouro também servem, afinal, valem mais do que dinheiro.

Má Oê!

5 respostas em “Para a galera da 112!

  1. Pingback: R para curiosos (alguns posts didáticos sobre R aqui e no Nepom) | De Gustibus Non Est Disputandum

  2. Pingback: Dicas de R (2.0 para quem chegou atrasado do Carnaval) | De Gustibus Non Est Disputandum

  3. Pingback: Para a galera da 112! Part. 2 | Nepom - Núcleo de Estudos de Política Monetária

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s