Aqueles que chegaram aqui agora, no meio da discussão, recomendo colocar “função consumo” na caixa de buscas no alto da página e pegar as duas últimas rodadas.
No script abaixo encontra-se o exercício feito em sala de aula hoje (Econometria II) para a função consumo brasileira. Dois alunos, Rafael e Isadora, conseguiram, após o final da aula, acertar os dados originais (deflacionar e calcular valores per capita). Descobriram que a atenção deve estar sempre alerta desde o início. Afinal, se o PIB de 2012 está com o deflator na base de 2012, seu valor real deve ser igual ao nominal e vamos agradecer aqui aos professores de Macroeconomia do início do curso (sem querer cometer injustiças, não citarei nomes).
Dito isto, o exercício proposto era o de estimar a função consumo coma renda permanente seguindo uma lei dinâmica no tempo conhecida como “mecanismo de expectativas adaptativas”. Falei delas nos posts anteriores e, portanto, não preciso voltar ao tema.
A diferença em relação ao que fiz aqui antes é apenas a extensão do período de tempo. No script que se segue, algumas novidades foram introduzidas (alunos de semestres anteriores não viram alguns itens simples).
Primeiramente, ensino a obter o valor de qualquer item do sumário dos resultados. Em segundo lugar, dou a dica para o cálculo do nível de significância para algumas distribuições (no caso, a Normal padronizada) e, terceiro, como alunos da faculdade já não choram e esperneiam por conta de um código de LaTex, dou também a dica do pacote stargazer.
É bom lembrar, contudo, que sem praticar em casa, nada disto adiantará. Você, que não é meu aluno em sala, se praticar, vai aprender mais do que o sujeito que vai até minha sala de aula, mas não treina em casa. Simples assim. Volto após o código.
# http://sites.google.com/site/shikidatimeseries.html (site da materia) # Blog do professor: https://gustibusgustibus.wordpress.com # Nepom: http://nepom.wordpress.com # Agora, ao que interessa. # previamente, instale os pacotes # install.packages("lmtest") # install.packages("sandwich") # Etc. Ou faça... # install.packages(c("lmtest", "sandwich","stargazer", "dynlm")) # script aula 19/08 dados<-read.table("C:/Users/cdshi_000/Documents/Meus Documentos/Meus Documentos/cursos/Econometria ii/funcao_consumo_anual.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE) head(dados) tail(dados) series <- ts(dados, start=c(1947), freq=1) head(series) tail(series) consumo<-series[,8] pib<-series[,7] plot(consumo, main="Consumo per capita em R$ de 2012") plot(pib, main="PIB per capita em R$ de 2012") consumolag=lag(consumo,-1) piblag=lag(pib,-1) cons=ts.intersect(consumo, consumolag) pib0 =ts.intersect(pib, piblag) pib0 f1<-(lm(cons[,1]~pib0[,1] + cons[,2])) # f2<-(lm(cons[,1]~pib0[,1] + cons[,2]-1)) summary(f1) library(sandwich) library(lmtest) f11<-coeftest(f1, vcov=NeweyWest) f11 # Sugestão: se você tem o Lyx instalado (um Latex freeware) # abra um novo arquivo (ctrl+N) e, em seguida, abra uma janela para codigos # Ctrl+L # Depois copie e cole o resultado do stargazer, retirando o que deve ser # retirado (consulte o Google, o monitor, etc) library(stargazer) stargazer(f1,f11) # Agora voltamos ao que interessa. # Vejamos a defasagem media e a mediana lambda<- coef(summary(f1))["cons[, 2]","Estimate"] lambda def_mediana<- (-log(2)/log(lambda)) def_mediana def_media <-(lambda/(1-lambda)) def_media # Outra forma de fazer esta regressao # sem necessitar de criar a interseção de colunas # com a variável e sua(s) defasagem(ns): o pacote dynlm library(dynlm) # não é preciso criar defasagens e a matriz x'x f1novo <-(dynlm(consumo~pib + L(consumo,1))) summary(f1novo) # para comparar: mesmíssimos resultados summary(f1) # Seguindo o livro, # vamos para o metodo das variáveis instrumentais. # Sugestao de Liviatan é usar Xt-1 como instrumento de Yt-1 # após o | substituir Yt-1 por seu instrumento e repetir os # outros regressores library("AER") inst<- ivreg(cons[,1]~pib0[,1]+cons[,2]|pib0[,1]+pib0[,2]) summary(inst) lambda1<- coef(summary(inst))["cons[, 2]","Estimate"] lambda1 def_mediana1<- (-log(2)/log(lambda1)) def_mediana1 def_media1 <-(lambda1/(1-lambda1)) def_media1 # reparou como o modelo deu problema? O coeficiente do consumo, agora, não # foi significativo (e seu sinal?) # autocorrelacao (teste h (não é um bom teste, mas aprenda como fazê-lo)) dwtest(inst) rho<-(1-(1.2526/2)) valfa2 <-((coef(summary(inst))["cons[, 2]", "Std. Error"]))^2 valfa2 h<-rho*(sqrt(inst$n/(1-inst$n*valfa2))) h # para 5%, normal padronizada... pnorm(1.645) # logo, para h: pnorm(h) # 1. claro, outra opção é o teste BG (fica como dever de casa: dica lmtest) # 2. no setor de fotocópias: pegue o material para R do semestre passado. # 3. repita os passos feitos aqui.
Bem, pessoal, é fácil fazer isto tudo e a sugestão de dever de casa é muito tranquila. Em caso de dúvidas, lembre-se que você pode sempre usar comandos simples como “?lm” (para saber mais sobre o comando lm) ou “??lm” (veja no que dá). Obviamente, sem executar a linha, nada acontecerá.
Outra opção é fazer a busca pelos manuais dos pacotes. Digamos, por exemplo, que eu queira saber mais sobre o pacote “lmtest”. Uma rápida busca nos levará a este endereço. Nele você encontrará não apenas o manual (cuja linguagem é padronizada) como também as chamadas vignettes (nem todo pacote a(s) tem(têm), ok?) que costumam ser úteis.
Você aprende por repetição e replicar exemplos destes manuais é sempre uma boa idéia. Repare que muitos deles já vêm com bases de dados (você não precisa importá-las) que são usados nos exemplos do manual do pacote e, bem, você entendeu.
Outra dica é procurar, neste blog (e, ocasionalmente, no do Nepom) pelos chamados “Momento R do Dia” (procure!). São dicas que dou sobre os mais diversos tópicos de R. Você tem que pesquisar e descobrir se há alguma dica útil. Claro, há sempre o StackOverflow.
É isto, pessoal.