Uncategorized

Outro exercício no R – boates e motéis (Teste J)

Em alguns posts anteiores, sobre numerário, usei os sub-índices do IPCA para ilustrar a idéia de numerário (você pode encontrá-los usando a caixa de busca no alto do blog).

Agora, vamos fazer outra brincadeira e praticar o R. Vamos olhar para os índices de preços de motéis e boates, ambos relativos ao IPCA. Primeiramente, vejamos os gráficos.

motel_real

 

boate_real

 

Ok, não parece haver problemas de não-estacionaridade na média de nenhuma delas. Obviamente, o leitor mais preocupado pode fazer os testes (o R tem uma boa biblioteca para isto). Mas nossa prática aqui é outra. Queremos ver como ver o gráfico de valores observados e previstos por um modelo e, também, queremos ver testes que comparem dois modelos distintos.

Então, vamos lá. Os dados, já carregados e transformados em séries de tempo foram, então, transformados em índices. Depois, normalizados pelo IPCA.

ipca.index<- (1+ipca/100)
motel.index<-(1+motel/100)
motel.real<-motel.index/ipca.index
boate.index<-(1+boate/100)
boate.real<-boate.index/ipca.index

Após dar uma olhada nos gráficos, resolvi testar estes modelos:

mod1 <- dynlm(motel.real ~ boate.real + L(motel.real))
mod2 <- dynlm(motel.real ~ boate.real + L(boate.real))

Repare que uso o pacote dynlm. Repare também que os modelos seriam idênticos, não fosse o fato de um deles usar como variável independente a primeira defasagem de motel.real e, o outro, a primeira defasagem de boate.real. Quando uso o pacote dynlm, posso usar o comando L(x,k) para colocar, na especificação da equação de regressão, a k-ésima defasagem da variável x.

Em seguida, carreguei o pacote lmtest que tem o teste que desejo ilustrar aqui. Vamos lá.

library(lmtest)
mod1 <- dynlm(motel.real ~ boate.real + L(motel.real))
mod2 <- dynlm(motel.real ~ boate.real + L(boate.real))

Caso você peça um sumário do modelo 1 (summary(mod1)), terá o seguinte resultado.

Time series regression with “ts” data:
Start = 1999(9), End = 2013(12)

Call:
dynlm(formula = motel.real ~ boate.real + L(motel.real))

Residuals:
Min               1Q               Median         3Q           Max
-0.071154     -0.006137     0.000340     0.006692     0.065225

Coefficients:
Estimate     Std. Error     t value     Pr(>|t|)
(Intercept)        1.13018   0.12933       8.739     2.25e-15 ***
boate.real         0.11918   0.11524      1.034     0.30252
L(motel.real)    -0.24960   0.07505     -3.326     0.00108 **

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

Residual standard error: 0.01652 on 169 degrees of freedom
Multiple R-squared: 0.06342, Adjusted R-squared: 0.05234
F-statistic: 5.722 on 2 and 169 DF, p-value: 0.00394

Claro, você pode ver o mesmo para o modelo 2. Bom, para verificar o ajuste dos modelos, graficamente:

plot(motel.real)
lines(fitted(mod1), col = 2)
lines(fitted(mod2), col = 4)

ajuste

 

Repare que ambos os modelos deram péssimos ajustes. Talvez o primeiro modelo (que usa a cor vermelha (col=2 no comando) seja o menos pior dos dois mas, honestamente, ambos os modelos estão bem distantes de uma reles noção visual de “bom ajuste”. Não importa. O ponto é: como comparar estes dois modelos? Devemos usar um teste de encompassing models. Os modelos são não-aninhados (um não é uma versão restrita do outro). O teste, de Davidson e McKinnon, está descrito aqui, já adaptado para R.

Vejamos um pouco da documentação:

To compare two non-nested models, the encompassing test fits an encompassing model which contains all regressors from both models such that the two models are nested within the encompassing model. A Wald test for comparing each of the models with the encompassing model is carried out by waldtest.

For further details, see the references.

Value

An object of class "anova" which contains the residual degrees of freedom in the encompassing model, the difference in degrees of freedom, Wald statistic (either "F" or "Chisq") and corresponding p value.

References

R. Davidson & J. MacKinnon (1993). Estimation and Inference in Econometrics. New York, Oxford University Press.

W. H. Greene (1993), Econometric Analysis, 2nd ed. Macmillan Publishing Company, New York.

W. H. Greene (2003). Econometric Analysis, 5th ed. New Jersey, Prentice Hall.

Esotérico? Então vamos ver o que ele faz:

encomptest(mod1, mod2)

Encompassing test

Model 1: motel.real ~ boate.real + L(motel.real)
Model 2: motel.real ~ boate.real + L(boate.real)
Model E: motel.real ~ boate.real + L(motel.real) + L(boate.real)
Res.Df Df F Pr(>F)
M1 vs. ME 168 -1 0.0513 0.82110
M2 vs. ME 168 -1 10.9072 0.00117 **

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

Outra forma é fazer:

jtest(mod1, mod2)

O resultado:

J test

Model 1: motel.real ~ boate.real + L(motel.real)
Model 2: motel.real ~ boate.real + L(boate.real)

Estimate    Std. Error   t value     Pr(>|t|)
M1 + fitted(M2)         0.60309    2.66278     0.2265       0.82110
M2 + fitted(M1)         0.99691    0.30186     3.3026       0.00117 **

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

O teste J de McKinnon, então, usa o primeiro modelo incluindo os valores estimados de motel.real do segundo modelo. Caso o coeficiente da variável estimada seja diferente de zero, as evidências seriam favoráveis ao segundo modelo. O oposto também é feito para se verificar se há evidências favoráveis para o primeiro modelo.

Dos resultados acima podemos ver que, no primeiro teste, não encontramos evidências favoráveis ao modelo 2 (mod2), mas, sim para o primeiro modelo (mod1). Na primeira linha do teste, a inclusão do valor ajustado de motel.real por meio de mod2 não apresentou uma coeficiente estatisticamente significativo (logo, a hipótese mais favorável é que o modelo 1 seja o melhor). Na segunda linha, ao incluirmos o valor ajustado gerado pelo modelo 1 no modelo 2, o resultado foi que seu coeficiente foi estatisticamente significativo, reforçando o resultado anterior. Em resumo, mod1 é o menos pior nesta história. 

Você que já estudou Econometria I, certamente deve ter se perguntado várias vezes como comparar dois modelos distintos que buscam explicar o mesmo fenômeno. Bem, um dos passos nesta longa caminhada é o teste J. Claro, no caso de séries de tempo, como aprendemos em Econometria II, não dá para fazer apenas isto (ou você já se esqueceu da questão envolvida na discussão de tendências deterministas e estocásticas?).

No final, boates, motéis, nada ficou muito esclarecido quanto a eles. Talvez eu devesse ter feito o exercício para o preço de pão francês e o da linguiça. Ou não. Vai saber…

p.s. No Greene, o teste está muito bem resumido (seção 7.10.2), mas Davidson & McKinnon é sempre um bom livro-texto…

Anúncios

2 comentários em “Outro exercício no R – boates e motéis (Teste J)

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