Uncategorized

Alô você, aluno de Econometria I: olha o consumo e a renda… (Momento R do Dia)

Mais uma dica de R para o aluno de Econometria I. O exercício pede para você estimar uma função consumo keynesiana com dados do Brasil (em valores constantes de 1995, R$ milhões). Note que não se pede atenção inicial para características de séries de tempo e, assim, você deve refletir sobre os resultados e consultar o seu professor. Caso você seja aluno do meu amigo Salvato, leve isto até ele e discuta. Caso seja aluno da Roseli, ela vai te mandar ler e estudar e, bem, ela está certa. Mas aposto que ela vai querer discutir o exercício com você também. Ok, você entendeu, os dois são bons professores. Mas vamos em frente.

Dados

Ambos tirados daqui. Crie uma planilha com duas colunas: PIB e Consumo (exatamente com estes nomes). Cole ambos lá. Depois, importe para o R com o comando que copia e cola o que você copiou para o clipboard (eu nunca sei a tradução disto, mas o monitor de Econometria certamente sabe).

# copy and paste primeiras colunas de blablabla.xlsx
base <- read.table(file = "clipboard", sep = "\t", header=TRUE)
head(base)
pib<-ts(base$PIB, start=c(1996,1),freq=4)
cons<-ts(base$Consumo, start=c(1996,1), freq=4)

Repare que confiro os dados olhando as primeiras linhas com o comando head. Depois, informo ao computador que vou criar “pib” e “cons” a partir dos dados que importei. Informo que são trimestrais (freq=4) e que a base se inicia no 1o trimestre de 1996.

library(lmtest)
library(ggplot2)
library(lattice)
library(latticeExtra)
library(car)

#ambos em R$ milhões
# fazendo um dataframe para simplificar a obtencao da matriz de varcov

data<-data.frame(cons,pib)
cor(data)

No conjunto acima de comandos, apenas carrego alguns pacotes que penso em usar como os gráficos ggplot2lattice latticeExtra. Para fazer testes, carrego o lmtest e, finalmente, para um diagrama de dispersão mais informativo, uso car. Os comandos seguintes criam um data.frame com as duas variáveis apenas para que eu possa calcular a correlação dos dados. Verifique há uma correlação elevada entre pib e cons. Bem, agora, uma imensa sequência de comandos.

# fazendo um pouco de bobagens
xyplot(cons~pib)

# ou, usando scatterplot, de "car"
scatterplot(cons~pib)

# Alguns resultados
exerc<-lm(cons~pib)
summary(exerc)

# o que mais temos...
ls(exerc)

# por exemplo, se eu quiser plotar os residuos:
plot(exerc$residuals)
# para diversos testes de diagnosticos:
plot(exerc)

# mas o erro-padrão robusto...
library(sandwich)
coeftest(exerc, df = Inf, vcov = NeweyWest)

# de lmtest, usamos...
dwtest(exerc)

# ou do pacote car
durbinWatsonTest(exerc)

# BG test
bgtest(exerc)

Repare que há muita coisa feita aí. Há duas visualizações gráficas simples, apenas comprovando a suspeita de elevada correlação entre as duas variáveis. Só para não ficarmos sem um gráfico, olha ele aí. consumo_br Em seguida, uso o comando básico do R, lm, para fazer aplicar um MQO à relação de consumo e renda. Não é preciso colocar o intercepto, mas você poderia fazê-lo escrevendo lm(cons~pib+1). Aliás, caso queira fazer sem o intercepto, reescreva como: lm(cons~pib-1). O que nos interessa é o resultado da estimação. Ou pelo menos o resumo do mesma. Assim, summary. Note que fica mais fácil nomear a regressão e pedir o resultado do que escrever: summary(lm(cons~pib)), embora você tenha a mesma coisa em sua tela de resultados no final. A vantagem de se nomear o objeto é poder, por exemplo, verificar alguns gráficos de testes de diagnósticos com plot(). O comando plot(), que também serve para fazer gráfico de séries, tem uma função especial no caso de objetos de regressão: ele nos dá gráficos de alguns testes de diagnósticos. Experimente você mesmo.

Sanduíches

Bem, a garotada de Econometria I adora uma matriz-sanduíche, com bacon e tudo o mais. Muitos nem sabem que estão usando este tipo de matriz porque decoram comandos, mesmo com os apelos do Salvato pelo bom uso do cérebro. Bom, a matriz-sanduíche mais comum lá no Salvato é a de Newey-West e o comando é coeftest(exerc, df = Inf, vcov = NeweyWest). Antes de me perguntar sobre o porquê disto, leia isto.

Para terminar…

O exercício tradicional de regressão simples não estaria completo se eu não falasse de autocorrelação dos resíduos. Há dois jeitos de se fazer um importante teste, neste caso, que é o teste de Durbin-Watson. Não é o melhor teste para autocorrelação, mas vamos lá. Do pacote car, você tem durbinWatsonTest() e, do lmtest, dw(). Outra opção é fazer o teste de Breusch-Godfrey. Caso você não o conheça, leia isto.

Um resumo destes resultados (sem Newey-West):

Call:
lm(formula = cons ~ pib)

Residuals:

Min   1Q   Median   3Q   Max

-9547.2 -3374.1 336.9 3496.4 10143.2

Coefficients:

Estimate    Std. Error     t value    Pr(>|t|)

(Intercept)     -1.270e+04   3.331e+03  -3.812   0.000297 ***
pib                   6.801e-01   1.440e-02   47.232   < 2e-16 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4692 on 69 degrees of freedom
Multiple R-squared: 0.97, Adjusted R-squared: 0.9696
F-statistic: 2231 on 1 and 69 DF, p-value: < 2.2e-16

Ok, você pode conferir o que encontrou com o que tenho aqui. Discussões sobre Econometria, veja, com o professor Salvato lá no Ibmec, ou com a Roseli lá na FEA-RP, ou com seu professor. Estou apenas dando as dicas do comando no R, ok?

Algumas coisas importantes… Dados no tempo, né? Então, em Econometria II você verá que há muita coisa importante para se pensar. Por enquanto, este é um básico de regressão simples, só para você ficar com aquela sensação boa de que já viu uma função consumo na prática. Depois a gente volta para falar do tema, caso tenhamos um bom ibope.

Deixe um comentário

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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s